[已停用] 實驗性 Anthropic 工具封裝器
警告
Anthropic API 官方正式支援工具呼叫,因此不再需要此變通方案。請使用 ChatAnthropic 並搭配 langchain-anthropic>=0.1.15
。
本筆記本展示如何使用 Anthropic 的實驗性封裝器,使其具備工具呼叫和結構化輸出功能。此封裝器遵循 Anthropic 在此處的指南 here
此封裝器可從 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
spec 規格,用於提取數值。注意:這可能不如明確提供工具呼叫的模型穩定。
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)
相關
- 聊天模型概念指南 conceptual guide
- 聊天模型操作指南 how-to guides