跳到主要內容

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

此頁面是否對您有幫助?