[已停用] 實驗性 Anthropic 工具封裝器
警告
Anthropic API 官方正式支援工具呼叫,因此不再需要此變通方案。請使用 ChatAnthropic,搭配 langchain-anthropic>=0.1.15
。
本筆記本展示如何使用 Anthropic 實驗性封裝器,使其具備工具呼叫和結構化輸出功能。它遵循 Anthropic 的 指南。
此封裝器可從 langchain-anthropic
套件取得,並且還需要選用相依套件 defusedxml
,以便解析來自 llm 的 XML 輸出。
注意:這是一個 Beta 功能,將被 Anthropic 的正式工具呼叫實作取代,但在這段期間,它對於測試和實驗很有用。
%pip install -qU langchain-anthropic defusedxml
from langchain_anthropic.experimental import ChatAnthropicTools
API 參考文檔:ChatAnthropicTools
工具綁定
ChatAnthropicTools
公開了 bind_tools
方法,可讓您將 Pydantic 模型或 BaseTools 傳遞給 llm。
from pydantic import BaseModel
class Person(BaseModel):
name: str
age: int
model = ChatAnthropicTools(model="claude-3-opus-20240229").bind_tools(tools=[Person])
model.invoke("I am a 27 year old named Erick")
AIMessage(content='', additional_kwargs={'tool_calls': [{'function': {'name': 'Person', 'arguments': '{"name": "Erick", "age": "27"}'}, 'type': 'function'}]})
結構化輸出
ChatAnthropicTools
也實作了 with_structured_output
規範,用於提取數值。注意:這可能不如明確提供工具呼叫的模型穩定。
chain = ChatAnthropicTools(model="claude-3-opus-20240229").with_structured_output(
Person
)
chain.invoke("I am a 27 year old named Erick")
Person(name='Erick', age=27)