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