直接使用 Anthropic 消息 API 并向模型提供多个工具,可以通过 tool_choice 字段中的 setting
disable_parallel_tool_use=true
来指示模型一次仅调用一个工具。
我正在使用 LangGraph,我希望能够做同样的事情 - 指示模型一次仅选择一个工具。
下面是我的代码的核心。 我省略了工具方法定义和提示,因为它们不直接相关。
model = ChatAnthropic(model="claude-3-5-sonnet-20241022")
tools = [search_word_forms, search_dictionaries, WordDetermination]
model_with_tools = model.bind_tools(tools, tool_choice="any")
response = model_with_tools.invoke(state["messages"])
使用这个框架,我如何指示模型禁用并行工具的使用?
查看Langchain的ChatAnthropic文档:https://python.langchain.com/api_reference/anthropic/chat_models/langchain_anthropic.chat_models.ChatAnthropic.html#langchain_anthropic.chat_models.ChatAnthropic.bind_tools
您可以将包含
type
或 disable_parallel_tool_use
等选项的字典作为 tool_choice
的 bind_tools
参数。
所以示例代码如下:
model = ChatAnthropic(model="claude-3-5-sonnet-20241022")
tool_choice = {
"type": "any" if tool_call_only else "auto",
"disable_parallel_tool_use": not enable_parallel_tool_calls,
}
model_with_tools = model.bind_tools(tools, tool_choice=tool_choice)