跳到主要內容
Open In ColabOpen on GitHub

[已停用] 實驗性 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)

此頁面是否對您有幫助?