| @@ -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 | |||
| ) | |||