mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 03:32:23 +08:00
fix: missing variables in agent prompt (#2395)
This commit is contained in:
parent
5e145c1c22
commit
e1a9e0ac29
|
@ -222,6 +222,7 @@ class AssistantApplicationRunner(AppRunner):
|
|||
conversation=conversation,
|
||||
message=message,
|
||||
query=query,
|
||||
inputs=inputs,
|
||||
)
|
||||
elif agent_entity.strategy == AgentEntity.Strategy.FUNCTION_CALLING:
|
||||
assistant_fc_runner = AssistantFunctionCallApplicationRunner(
|
||||
|
|
|
@ -20,6 +20,7 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner):
|
|||
def run(self, conversation: Conversation,
|
||||
message: Message,
|
||||
query: str,
|
||||
inputs: Dict[str, str],
|
||||
) -> Union[Generator, LLMResult]:
|
||||
"""
|
||||
Run Cot agent application
|
||||
|
@ -35,6 +36,11 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner):
|
|||
if 'Observation' not in app_orchestration_config.model_config.stop:
|
||||
app_orchestration_config.model_config.stop.append('Observation')
|
||||
|
||||
# override inputs
|
||||
inputs = inputs or {}
|
||||
instruction = self.app_orchestration_config.prompt_template.simple_prompt_template
|
||||
instruction = self._fill_in_inputs_from_external_data_tools(instruction, inputs)
|
||||
|
||||
iteration_step = 1
|
||||
max_iteration_steps = min(self.app_orchestration_config.agent.max_iteration, 5) + 1
|
||||
|
||||
|
@ -108,7 +114,7 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner):
|
|||
tools=prompt_messages_tools,
|
||||
agent_scratchpad=agent_scratchpad,
|
||||
agent_prompt_message=app_orchestration_config.agent.prompt,
|
||||
instruction=app_orchestration_config.prompt_template.simple_prompt_template,
|
||||
instruction=instruction,
|
||||
input=query
|
||||
)
|
||||
|
||||
|
@ -300,6 +306,18 @@ class AssistantCotApplicationRunner(BaseAssistantApplicationRunner):
|
|||
system_fingerprint=''
|
||||
), PublishFrom.APPLICATION_MANAGER)
|
||||
|
||||
def _fill_in_inputs_from_external_data_tools(self, instruction: str, inputs: dict) -> str:
|
||||
"""
|
||||
fill in inputs from external data tools
|
||||
"""
|
||||
for key, value in inputs.items():
|
||||
try:
|
||||
instruction = instruction.replace(f'{{{{{key}}}}}', str(value))
|
||||
except Exception as e:
|
||||
continue
|
||||
|
||||
return instruction
|
||||
|
||||
def _extract_response_scratchpad(self, content: str) -> AgentScratchpadUnit:
|
||||
"""
|
||||
extract response from llm response
|
||||
|
|
Loading…
Reference in New Issue
Block a user