langchain_core.utils.function_calling
.tool_example_to_messages¶
- langchain_core.utils.function_calling.tool_example_to_messages(input: str, tool_calls: List[BaseModel], tool_outputs: Optional[List[str]] = None) List[BaseMessage] [source]¶
将一个示例转换为可以输入到LLM中的消息列表。
这段代码是一个适配器,将单个示例转换为可以输入到聊天模型中的消息列表。
每个示例的消息列表对应于:
HumanMessage: 包含应从中提取内容的内容。
AIMessage: 包含从模型中提取的信息
ToolMessage: 包含确认消息,告知模型已正确请求了一个工具。
ToolMessage是必需的,因为一些聊天模型是针对代理而不是用于提取的情况进行了超优化。
- 参数:
input: 字符串,用户输入 tool_calls: List[BaseModel],表示为Pydantic BaseModel的工具调用列表 tool_outputs: Optional[List[str]],工具调用输出的列表。
不需要提供。如果未提供,将插入一个占位符值。
- 返回:
一个消息列表
示例:
from typing import List, Optional from langchain_core.pydantic_v1 import BaseModel, Field from langchain_openai import ChatOpenAI class Person(BaseModel): '''关于一个人的信息。''' name: Optional[str] = Field(..., description="人的姓名") hair_color: Optional[str] = Field( ..., description="如果已知,人的头发颜色" ) height_in_meters: Optional[str] = Field( ..., description="以米为单位的身高" ) examples = [ ( "海洋辽阔而蔚蓝。它超过了20,000英尺的深度。", Person(name=None, height_in_meters=None, hair_color=None), ), ( "Fiona从法国远行到了西班牙。", Person(name="Fiona", height_in_meters=None, hair_color=None), ), ] messages = [] for txt, tool_call in examples: messages.extend( tool_example_to_messages(txt, [tool_call]) )
- Parameters
input (str) –
tool_calls (List[BaseModel]) –
tool_outputs (Optional[List[str]]) –
- Return type
List[BaseMessage]