Source code for langchain.agents.format_scratchpad.openai_functions
import json
from typing import List, Sequence, Tuple
from langchain_core.agents import AgentAction, AgentActionMessageLog
from langchain_core.messages import AIMessage, BaseMessage, FunctionMessage
def _convert_agent_action_to_messages(
agent_action: AgentAction, observation: str
) -> List[BaseMessage]:
"""将代理动作转换为消息。
此代码用于从代理动作重构原始的AI消息。
参数:
agent_action:要转换的代理动作。
返回:
对应于原始工具调用的AIMessage。
"""
if isinstance(agent_action, AgentActionMessageLog):
return list(agent_action.message_log) + [
_create_function_message(agent_action, observation)
]
else:
return [AIMessage(content=agent_action.log)]
def _create_function_message(
agent_action: AgentAction, observation: str
) -> FunctionMessage:
"""将代理动作和观察转换为函数消息。
参数:
agent_action:代理发送的工具调用请求
observation:工具调用的结果
返回:
与原始工具调用对应的FunctionMessage
"""
if not isinstance(observation, str):
try:
content = json.dumps(observation, ensure_ascii=False)
except Exception:
content = str(observation)
else:
content = observation
return FunctionMessage(
name=agent_action.tool,
content=content,
)
# Backwards compatibility
format_to_openai_functions = format_to_openai_function_messages