| @@ -151,6 +151,11 @@ And answer according to the language of the user's question. | |||
| if chain_output: | |||
| inputs['context'] = chain_output | |||
| context_params = OutLinePromptTemplate.from_template(template=chain_output).input_variables | |||
| if context_params: | |||
| for context_param in context_params: | |||
| if context_param not in inputs: | |||
| inputs[context_param] = '{' + context_param + '}' | |||
| prompt_inputs = {k: inputs[k] for k in prompt_template.input_variables if k in inputs} | |||
| prompt_content = prompt_template.format( | |||
| @@ -210,8 +215,16 @@ And answer according to the language of the user's question. | |||
| rest_tokens = llm_constant.max_context_token_length[memory.llm.model_name] \ | |||
| - memory.llm.max_tokens - curr_message_tokens | |||
| rest_tokens = max(rest_tokens, 0) | |||
| history_messages = cls.get_history_messages_from_memory(memory, rest_tokens) | |||
| human_message_prompt += "\n\n" + history_messages | |||
| histories = cls.get_history_messages_from_memory(memory, rest_tokens) | |||
| # disable template string in query | |||
| histories_params = OutLinePromptTemplate.from_template(template=histories).input_variables | |||
| if histories_params: | |||
| for histories_param in histories_params: | |||
| if histories_param not in human_inputs: | |||
| human_inputs[histories_param] = '{' + histories_param + '}' | |||
| human_message_prompt += "\n\n" + histories | |||
| human_message_prompt += query_prompt | |||