如何綁定模型專屬工具
提供者對於格式化工具模式採用不同的慣例。例如,OpenAI 使用如下格式
type
:工具的類型。在撰寫本文時,這始終是"function"
。function
:包含工具參數的物件。function.name
:要輸出的模式名稱。function.description
:要輸出的模式的高階描述。function.parameters
:您要提取的模式的巢狀詳細資訊,格式為 JSON 模式 字典。
如果需要,我們也可以將此模型特定格式直接綁定到模型。這是一個範例
from langchain_openai import ChatOpenAI
model = ChatOpenAI()
model_with_tools = model.bind(
tools=[
{
"type": "function",
"function": {
"name": "multiply",
"description": "Multiply two integers together.",
"parameters": {
"type": "object",
"properties": {
"a": {"type": "number", "description": "First integer"},
"b": {"type": "number", "description": "Second integer"},
},
"required": ["a", "b"],
},
},
}
]
)
model_with_tools.invoke("Whats 119 times 8?")
API 參考文檔:ChatOpenAI
AIMessage(content='', additional_kwargs={'tool_calls': [{'id': 'call_mn4ELw1NbuE0DFYhIeK0GrPe', 'function': {'arguments': '{"a":119,"b":8}', 'name': 'multiply'}, 'type': 'function'}]}, response_metadata={'token_usage': {'completion_tokens': 17, 'prompt_tokens': 62, 'total_tokens': 79}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': 'fp_c2295e73ad', 'finish_reason': 'tool_calls', 'logprobs': None}, id='run-353e8a9a-7125-4f94-8c68-4f3da4c21120-0', tool_calls=[{'name': 'multiply', 'args': {'a': 119, 'b': 8}, 'id': 'call_mn4ELw1NbuE0DFYhIeK0GrPe'}])
這在功能上等同於 bind_tools()
方法。