跳至主要内容

Claude Sonnet 3.5 API 教程:Anthropic API 快速上手

要通过 Claude 3.5 Sonnet API 进行连接,请从 Anthropic 获取您的 API 密钥,安装 anthropic Python 库,并使用它向 Claude 3.5 Sonnet 发送请求并接收响应。
· 8分钟 阅读

使用 AI 探索

Anthropic 近期发布了 Claude 3.5 Sonnet,这是一款功能强大的模型,在多项基准测试中优于 GPT-4o 和 Gemini Pro 1.5。

Claude 3.5 Sonnet 的视觉推理能力尤其出色,您可能希望通过 Claude 3.5 Sonnet 的 API 将其用于您的开发流程。

在本文中,我将帮助您开始使用 Claude 3.5 Sonnet 的 API,并提供通过 Anthropic 的 API 使用 Claude 3.5 Sonnet 的分步指南。

如果您想先了解 Claude 3.5 Sonnet 的概况,推荐阅读这篇文章:什么是 Claude 3.5 Sonnet。

什么是 Claude 3.5 Sonnet?

Claude 3.5 Sonnet 是 Anthropic 开发的大型语言模型。它属于更大的 Claude 3.5 系列——Anthropic 将在今年晚些时候发布 Claude 3.5 Opus 和 Claude 3.5 Haiku。

与 GPT-4o、Gemini 1.5 Pro 或 Llama-400b 等其他模型相比,Claude 3.5 Sonnet 在图像理解与生成方面有显著提升,并在多项基准测试中表现强劲,尤其是在编码与推理任务上。

Claude 3.5 Sonnet 基准测试

此外,它引入了名为 Artifacts 的新功能,用于在对话中加强信息管理。您可以在这篇Claude Sonnet 3.5 入门文章中进一步了解 Artifacts。

Claude 3.5 Sonnet API:如何连接 Anthropic API

要开始使用 Claude 3.5 Sonnet API,您需要注册 Anthropic 的 API 账户并配置 Anthropic 客户端。让我们一步一步来。

获取 API 访问权限

步骤 1:注册

访问 Anthropic 控制台并创建账户。您需要提供基本信息并验证邮箱。

步骤 2:API 密钥

账户创建完成后,前往 Get API keys 部分,点击 Create Key 以生成您的 API 密钥。

获取 Anthropic 的 Claude 3.5 Sonnet 的 API 密钥

为 Anthropic 的 Claude 3.5 Sonnet 创建 API 密钥

配置您的环境

要初始化 Anthropic 客户端,首先需要按如下方式安装 anthropic 库:

pip install anthropic

安装完成后,使用您的 API 密钥初始化 Anthropic 客户端。

import anthropic
# Create an instance of the Anthropics API client
client = anthropic.Anthropic(api_key='your_api_key_here')  

安装好 anthropic 库并用您的 API 初始化 Anthropic 客户端后,我们就可以开始探索 Claude 3.5 Sonnet 的功能了。

Claude API:Messages API 与 Text Completions API

Claude 3.5 Sonnet 的 API 提供了强大的功能,尤其是 Messages API,专为创建丰富而动态的交互而设计。

请注意,Text Completions API 现已被视为旧版。虽然它提供基础的补全功能,但缺乏 Messages API 的高级功能和灵活性。

我们鼓励用户迁移到 Messages API,以获得更强的功能和未来支持。

另外,目前无法通过 API 访问 Artifacts。要与 Artifacts 交互,您需要使用 Claude.ai 提供的网页界面,该界面完全支持编辑、引用和下载由 Claude 3.5 Sonnet 生成的内容。

Claude 3.5 Sonnet API:Messages API

Messages API 允许您发送带有文本或图像内容的结构化输入消息列表,使模型能够生成对话中的下一条消息。

该 API 同时支持单轮查询和无状态的多轮对话。

要创建一条消息,您可以使用 anthropic Python 库并调用 messages.create 方法,传入所需参数。关键参数包括模型、消息,以及用于控制输出的各类可选设置。

必需参数

我们来看看必需参数:

  • model:要使用的模型(例如,"claude-3-5-sonnet-20240620")。
  • messages:输入消息列表。每条消息必须包含角色("user" 或 "assistant")和内容。

撰写本文时,通过 Anthropic API 可用的模型如下所示:

通过 Anthropic API 可用的 Claude 模型

可选参数

可选参数包括:

  • max_tokens:生成的最大 token 数。
  • temperature:控制回复的随机性。
  • stop_sequences:使模型停止生成的自定义文本序列。
  • stream:是否以流式方式增量返回响应。
  • system: 提供上下文与指令的系统提示词。
  • tools:模型可使用的工具定义。
  • top_k:对每个后续 token 仅从排名前 K 的选项中采样,用于去除概率较低的“长尾”响应。
  • top_p:使用核采样(nucleus sampling),基于累积概率达到指定阈值来截断不太可能的选项。

Claude 3.5 Sonnet API:使用场景

现在我们已经了解了相关参数,接下来使用 Python 与 anthropic 库来探索 Messages API 的实际用例:

单条消息请求

以下展示如何发起单条消息请求:

response = client.messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello, world"}]
)

多轮对话

现在我们来发起一次多轮对话:

response = client.messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=512,
    messages=[
        {"role": "user", "content": "Hello there."},
        {"role": "assistant", "content": "Hi, I'm Claude. How can I help you?"},
        {"role": "user", "content": "Can you explain LLMs in plain English?"}
    ]
)

包含图像内容

从 Claude 3 系列模型开始,您可以在消息中包含图像内容。

response = client.messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=512,
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": "image/jpeg",
                        "data": "media_file"
                    }
                },
                {
                    "type": "text",
                    "text": "What is in this image?"
                }
            ]
        }
    ]
)

使用系统提示词与停止序列

以下展示如何使用系统提示词与停止序列:

response = client.messages.create(
    model="claude-3-5-sonnet-20240620",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Write a short story."}],
    system="You are a creative writing assistant.",
    stop_sequences=["The end."],
    temperature=0.9
)

工具定义

您可以为模型定义在交互中可用的工具,包括指定工具名称、描述和输入模式(schema)。

# Define the request parameters
model = "claude-3-5-sonnet-20240620"
messages = [{"role": "user", "content": "What's the S&P 500 at today?"}]
tools = [
    {
        "name": "get_stock_price",
        "description": "Get the current stock price for a given ticker symbol.",
        "input_schema": {
            "type": "object",
            "properties": {
                "ticker": {
                    "type": "string",
                    "description": "The stock ticker symbol, e.g., AAPL for Apple Inc."
                }
            },
            "required": ["ticker"]
        }
    }
]
# Create a message with the defined parameters
response = client.messages.create(
    model=model,
    messages=messages,
    tools=tools
)

结语

在本指南中,我们介绍了如何连接 Anthropic 的 API 以使用 Claude 3.5 Sonnet 模型。我们涵盖了关键环节,如环境配置、身份验证,以及如何使用 Messages API 完成各类任务。

无论您是在构建聊天机器人、内容生成器,还是其他任何由 AI 驱动的应用,Claude 3.5 Sonnet 都可能是不错的选择。

想要进一步了解 Claude Sonnet 以及它与 ChatGPT 的对比,请查看以下文章:

FAQs

Anthropic 的旧版 Text Completions API 与新版 Messages API 有哪些主要区别?

Text Completions API 提供基础的文本补全功能,而 Messages API 则提供更高级的能力,例如进行多轮对话、整合图像、使用系统提示词与工具。Messages API 面向更具互动性与动态性的场景;相比之下,Text Completions API 更适合基础文本生成。Anthropic 建议新项目使用 Messages API,并将现有项目从 Text Completions API 迁移过来。

我可以直接通过 Claude 3.5 Sonnet API 使用 Artifacts 吗?

目前,Artifacts 还不能通过 API 直接访问。您可以在 Claude.ai 的网页界面中与 Artifacts 交互,该界面支持编辑、引用以及下载由 Claude 生成的内容。不过,Anthropic 未来可能会为 Artifacts 增加 API 支持。

Ryan Ong

作者

Ryan Ong

Ryan 是一名首席数据科学家,专注于使用大型语言模型构建 AI 应用。他是伦敦帝国理工学院自然语言处理与知识图谱方向的博士候选人,并在该校获得了计算机科学硕士学位。除数据科学之外,他还撰写每周的 Substack 时事通讯 The Limitless Playbook,分享来自全球顶尖思想家的一个可操作理念,并不时撰写关于核心 AI 概念的文章。

主题