瀏覽代碼

Fix: move pre prompt to user massasge in chat mode (#126)

John Wang 2 年之前
父節點
當前提交
e8e8f9e97d
共有 1 個文件被更改,包括 10 次插入8 次删除
  1. 10 8
      api/core/completion.py

+ 10 - 8
api/core/completion.py

@@ -157,11 +157,6 @@ And answer according to the language of the user's question.
         else:
         else:
             messages: List[BaseMessage] = []
             messages: List[BaseMessage] = []
 
 
-            if pre_prompt:
-                # append pre prompt as system message
-                system_message = PromptBuilder.to_system_message(pre_prompt, inputs)
-                messages.append(system_message)
-
             human_inputs = {
             human_inputs = {
                 "query": query
                 "query": query
             }
             }
@@ -170,7 +165,7 @@ And answer according to the language of the user's question.
 
 
             if chain_output:
             if chain_output:
                 human_inputs['context'] = chain_output
                 human_inputs['context'] = chain_output
-                human_message_prompt = """Use the following CONTEXT as your learned knowledge.
+                human_message_instruction = """Use the following CONTEXT as your learned knowledge.
 [CONTEXT]
 [CONTEXT]
 {context}
 {context}
 [END CONTEXT]
 [END CONTEXT]
@@ -180,9 +175,16 @@ When answer to user:
 - If you don't know when you are not sure, ask for clarification. 
 - If you don't know when you are not sure, ask for clarification. 
 Avoid mentioning that you obtained the information from the context.
 Avoid mentioning that you obtained the information from the context.
 And answer according to the language of the user's question.
 And answer according to the language of the user's question.
+"""
+                if pre_prompt:
+                    human_inputs.update(inputs)
+                    human_message_instruction += pre_prompt + "\n"
 
 
-Q:{query}
-A:"""
+                human_message_prompt = human_message_instruction + "Q:{query}\nA:"
+            else:
+                if pre_prompt:
+                    human_inputs.update(inputs)
+                    human_message_prompt = pre_prompt + "\n" + human_message_prompt
 
 
             # construct main prompt
             # construct main prompt
             human_message = PromptBuilder.to_human_message(
             human_message = PromptBuilder.to_human_message(