| if chain_output: | if chain_output: | ||||
| inputs['context'] = 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_inputs = {k: inputs[k] for k in prompt_template.input_variables if k in inputs} | ||||
| prompt_content = prompt_template.format( | prompt_content = prompt_template.format( | ||||
| rest_tokens = llm_constant.max_context_token_length[memory.llm.model_name] \ | rest_tokens = llm_constant.max_context_token_length[memory.llm.model_name] \ | ||||
| - memory.llm.max_tokens - curr_message_tokens | - memory.llm.max_tokens - curr_message_tokens | ||||
| rest_tokens = max(rest_tokens, 0) | 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 | human_message_prompt += query_prompt | ||||