以编程方式使用文档

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

该包装器可从 langchain-anthropic 包获取,它还需要可选依赖项 defusedxml 来解析 llm 的 XML 输出。

注意:这是一个测试功能,将被 Anthropic 正式的工具调用实现所取代,但在此期间可用于测试和实验。

pip install -qU langchain-anthropic defusedxml
from langchain_anthropic.experimental import 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)