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中的消息列表。

这段代码是一个适配器,将单个示例转换为可以输入到聊天模型中的消息列表。

每个示例的消息列表对应于:

  1. HumanMessage: 包含应从中提取内容的内容。

  2. AIMessage: 包含从模型中提取的信息

  3. 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]