|
@@ -125,13 +125,17 @@ class Completion:
|
|
|
pre_prompt = PromptBuilder.process_template(pre_prompt) if pre_prompt else pre_prompt
|
|
|
if mode == 'completion':
|
|
|
prompt_template = OutLinePromptTemplate.from_template(
|
|
|
- template=("Use the following pieces of [CONTEXT] to answer the question at the end. "
|
|
|
- "If you don't know the answer, "
|
|
|
- "just say that you don't know, don't try to make up an answer. \n"
|
|
|
- "```\n"
|
|
|
- "[CONTEXT]\n"
|
|
|
- "{context}\n"
|
|
|
- "```\n" if chain_output else "")
|
|
|
+ template=("""Use the following CONTEXT as your learned knowledge:
|
|
|
+[CONTEXT]
|
|
|
+{context}
|
|
|
+[END CONTEXT]
|
|
|
+
|
|
|
+When answer to user:
|
|
|
+- If you don't know, just say that you don't know.
|
|
|
+- 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 chain_output else "")
|
|
|
+ (pre_prompt + "\n" if pre_prompt else "")
|
|
|
+ "{query}\n"
|
|
|
)
|
|
@@ -153,38 +157,36 @@ class Completion:
|
|
|
else:
|
|
|
messages: List[BaseMessage] = []
|
|
|
|
|
|
- system_message = None
|
|
|
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
|
|
|
+ }
|
|
|
+
|
|
|
+ human_message_prompt = "{query}"
|
|
|
|
|
|
if chain_output:
|
|
|
- # append context as system message, currently only use simple stuff prompt
|
|
|
- context_message = PromptBuilder.to_system_message(
|
|
|
- """Use the following pieces of [CONTEXT] to answer the users question.
|
|
|
-If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
|
|
-```
|
|
|
+ human_inputs['context'] = chain_output
|
|
|
+ human_message_prompt = """Use the following CONTEXT as your learned knowledge.
|
|
|
[CONTEXT]
|
|
|
{context}
|
|
|
-```""",
|
|
|
- {'context': chain_output}
|
|
|
- )
|
|
|
-
|
|
|
- if not system_message:
|
|
|
- system_message = context_message
|
|
|
- else:
|
|
|
- system_message.content = context_message.content + "\n\n" + system_message.content
|
|
|
+[END CONTEXT]
|
|
|
|
|
|
- if system_message:
|
|
|
- messages.append(system_message)
|
|
|
+When answer to user:
|
|
|
+- If you don't know, just say that you don't know.
|
|
|
+- 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.
|
|
|
|
|
|
- human_inputs = {
|
|
|
- "query": query
|
|
|
- }
|
|
|
+Q:{query}
|
|
|
+A:"""
|
|
|
|
|
|
# construct main prompt
|
|
|
human_message = PromptBuilder.to_human_message(
|
|
|
- prompt_content="{query}",
|
|
|
+ prompt_content=human_message_prompt,
|
|
|
inputs=human_inputs
|
|
|
)
|
|
|
|