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