Skip to main content
Open In ColabOpen on GitHub

[已弃用] 实验性 Anthropic 工具封装器

警告

The Anthropic API 正式支持工具调用,因此此工作程序不再需要。请使用 ChatAnthropiclangchain-anthropic>=0.1.15

这个笔记本展示了如何使用一个实验性的围绕Anthropic的包装器,使其具备工具调用和结构化输出的能力。它遵循了Anthropic的指南这里

来自langchain-anthropic包,同时也需要可选依赖项defusedxml来解析llm输出的XML内容。

注:这是一个beta功能,将在Anthropic的正式工具调用实现取代,但在Meanwhile,它对于测试和实验是有用的。

%pip install -qU langchain-anthropic defusedxml
from langchain_anthropic.experimental import ChatAnthropicTools

工具绑定

ChatAnthropicTools 暴露了一个 bind_tools 方法,允许您将 Pydantic 模型或 BaseTools 传递给语言模型。

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)