ソースを参照

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

John Wang 1 年間 前
コミット
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:
             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 = {
                 "query": query
             }
@@ -170,7 +165,7 @@ And answer according to the language of the user's question.
 
             if 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}
 [END CONTEXT]
@@ -180,9 +175,16 @@ When answer to user:
 - If you don't know when you are not sure, ask for clarification. 
 Avoid mentioning that you obtained the information from the context.
 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
             human_message = PromptBuilder.to_human_message(