📌 本文概述:本教程系统介绍 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 方案
depends_on加condition: service_healthy这个写法我之前一直不知道,解决了我数据库还没启动应用就挂的问题。