|
@@ -606,36 +606,42 @@ class BaseAssistantApplicationRunner(AppRunner):
|
|
|
for message in messages:
|
|
|
result.append(UserPromptMessage(content=message.query))
|
|
|
agent_thoughts: list[MessageAgentThought] = message.agent_thoughts
|
|
|
- for agent_thought in agent_thoughts:
|
|
|
- tools = agent_thought.tool
|
|
|
- if tools:
|
|
|
- tools = tools.split(';')
|
|
|
- tool_calls: list[AssistantPromptMessage.ToolCall] = []
|
|
|
- tool_call_response: list[ToolPromptMessage] = []
|
|
|
- tool_inputs = json.loads(agent_thought.tool_input)
|
|
|
- for tool in tools:
|
|
|
- # generate a uuid for tool call
|
|
|
- tool_call_id = str(uuid.uuid4())
|
|
|
- tool_calls.append(AssistantPromptMessage.ToolCall(
|
|
|
- id=tool_call_id,
|
|
|
- type='function',
|
|
|
- function=AssistantPromptMessage.ToolCall.ToolCallFunction(
|
|
|
+ if agent_thoughts:
|
|
|
+ for agent_thought in agent_thoughts:
|
|
|
+ tools = agent_thought.tool
|
|
|
+ if tools:
|
|
|
+ tools = tools.split(';')
|
|
|
+ tool_calls: list[AssistantPromptMessage.ToolCall] = []
|
|
|
+ tool_call_response: list[ToolPromptMessage] = []
|
|
|
+ tool_inputs = json.loads(agent_thought.tool_input)
|
|
|
+ for tool in tools:
|
|
|
+ # generate a uuid for tool call
|
|
|
+ tool_call_id = str(uuid.uuid4())
|
|
|
+ tool_calls.append(AssistantPromptMessage.ToolCall(
|
|
|
+ id=tool_call_id,
|
|
|
+ type='function',
|
|
|
+ function=AssistantPromptMessage.ToolCall.ToolCallFunction(
|
|
|
+ name=tool,
|
|
|
+ arguments=json.dumps(tool_inputs.get(tool, {})),
|
|
|
+ )
|
|
|
+ ))
|
|
|
+ tool_call_response.append(ToolPromptMessage(
|
|
|
+ content=agent_thought.observation,
|
|
|
name=tool,
|
|
|
- arguments=json.dumps(tool_inputs.get(tool, {})),
|
|
|
- )
|
|
|
- ))
|
|
|
- tool_call_response.append(ToolPromptMessage(
|
|
|
- content=agent_thought.observation,
|
|
|
- name=tool,
|
|
|
- tool_call_id=tool_call_id,
|
|
|
- ))
|
|
|
-
|
|
|
- result.extend([
|
|
|
- AssistantPromptMessage(
|
|
|
- content=agent_thought.thought,
|
|
|
- tool_calls=tool_calls,
|
|
|
- ),
|
|
|
- *tool_call_response
|
|
|
- ])
|
|
|
+ tool_call_id=tool_call_id,
|
|
|
+ ))
|
|
|
+
|
|
|
+ result.extend([
|
|
|
+ AssistantPromptMessage(
|
|
|
+ content=agent_thought.thought,
|
|
|
+ tool_calls=tool_calls,
|
|
|
+ ),
|
|
|
+ *tool_call_response
|
|
|
+ ])
|
|
|
+ if not tools:
|
|
|
+ result.append(AssistantPromptMessage(content=agent_thought.thought))
|
|
|
+ else:
|
|
|
+ if message.answer:
|
|
|
+ result.append(AssistantPromptMessage(content=message.answer))
|
|
|
|
|
|
return result
|