Claude API 入门指南:快速上手大模型应用开发

👤 云小白 📅 2026-05-10 🔄 2026-05-12 更新 👁 9,821 阅读 ⏱ 约 15 分钟
Docker 容器化 云运维 DevOps
📌 本文概述:本教程系统介绍 Anthropic Claude API 的接入方法、消息格式、系统提示设计,流式输出与 Function Calling 等核心功能,配套 Python 与 Node.js 示例代码,适合有一定编程基础的开发者快速上手大模型应用开发。

1. Claude API 简介

Claude 是 Anthropic 公司推出的新一代大语言模型,提供 Haiku(高速)、Sonnet(均衡)、Opus(高质量)三个档位。通过 messages API 可实现对话、补全、代码生成、多轮对话等能力,支持 200K Token 上下文窗口。

相比 GPT-4,Claude 在安全性、指令遵循和长文本理解方面有优势,适合构建企业级 AI 应用。

2. 环境准备与 SDK 安装

首先注册 Anthropic Console 并获取 API Key(注意:Key 不要提交到 GitHub):

bash
# Python SDK
pip install anthropic

# Node.js SDK
npm install @anthropic-ai/sdk

设置环境变量(推荐)或直接在代码中传入:

bash
export ANTHROPIC_API_KEY="sk-ant-..."

3. 发送第一条消息

python
import anthropic

client = anthropic.Anthropic()

message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "介绍一下 Claude API 的核心特点"}]
)
print(message.content[0].text)

4. 系统提示与角色设定

通过 system 参数为 Claude 设定专业角色:

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=2048,
    system="你是一位资深 Python 导师,回答简洁、代码示例丰富、注重最佳实践",
    messages=[{"role": "user", "content": "解释 Python 装饰器并给出例子"}]
)
print(message.content[0].text)

5. 流式输出

使用 stream=True 获取实时打字效果,提升用户体验:

python
with client.messages.stream(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "用 Python 写一个快速排序"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

6. Function Calling 工具调用

Claude 支持 Tool Use,让模型主动调用外部函数获取实时数据:

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    tools=[{
        "name": "get_weather",
        "description": "获取指定城市的天气",
        "input_schema": {
            "type": "object",
            "properties": {"city": {"type": "string", "description": "城市名"}},
            "required": ["city"]
        }
    }],
    messages=[{"role": "user", "content": "北京今天天气怎么样?"}]
)
print(message.content[0].text)
print(message.tool_calls)

7. 多模态与附件(Vision)

Claude 3+ 支持图片理解,通过 type: "image" 发送图片 URL 或 base64:

python
message = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{
        "role": "user",
        "content": [
            {"type": "text", "text": "分析这张截图中的错误信息"},
            {"type": "image", "source": {"type": "url", "url": "https://example.com/screenshot.png"}}
        ]
    }]
)

8. 费用控制与最佳实践

  • 💰 选择合适的模型:简单任务用 Haiku,复杂推理用 Opus,Sonnet 性价比最高
  • 📏 精确 max_tokens:设置为预期最大长度 + 缓冲,避免无谓费用
  • 🔇 系统提示精简:只写必要约束,不写长篇背景,避免浪费 Token
  • 🗑️ 控制上下文长度:超过 32K 时考虑摘要或 RAG 方案

💬 评论 (共 8 条)

  • 🧑
    前端小王 2026-05-11 14:32
    写得非常清晰!多阶段构建这个技巧很实用,之前构建 Node.js 镜像都有 1GB 多,用了这个方法直接缩到 150MB。
  • 👩
    运维小李 2026-05-11 16:45
    Compose 的 depends_oncondition: service_healthy 这个写法我之前一直不知道,解决了我数据库还没启动应用就挂的问题。
  • 🧑‍💻
    张同学 2026-05-12 09:17
    请问生产环境推荐直接用 Docker Compose 还是上 Kubernetes?项目规模不大,三四个服务。
  • 👤
    云小白(作者) 2026-05-12 10:03
    @张同学 三四个服务规模用 Compose 完全够用,简单易维护。K8s 更适合需要高可用、自动扩缩容的大规模场景,复杂度也高很多,建议团队规模和服务量上来之后再考虑迁移。