Claude API 是目前最强大的通用 LLM 之一,接入方式比想象中简单。本文覆盖从注册到调通第一个 API 的完整流程,以及生产环境需要注意的关键配置。
环境准备
1# 安装官方 SDK2npm install @anthropic-ai/sdk3 4# 或使用 Python5pip install anthropic获取 API Key:Anthropic Console → API Keys → Create Key
第一个请求
1import Anthropic from '@anthropic-ai/sdk'2 3const client = new Anthropic()4 5const message = await client.messages.create({6 model: 'claude-sonnet-4-20250514',7 max_tokens: 1024,8 messages: [9 {10 role: 'user',11 content: '用 Python 写一个快速排序函数'12 }13 ]14})15 16console.log(message.content[0].text)关键参数说明:
| 参数 | 作用 | 建议值 |
|---|---|---|
max_tokens | 最大输出 token 数 | 按需求设置,太小会截断回答 |
temperature | 创造性控制 | 0.7(精确任务设 0.1-0.3) |
top_p | 采样策略 | 通常不与 temperature 同用 |
System Prompt 的正确用法
System prompt 用于设定 AI 的角色和行为规则,是最重要的配置:
1const message = await client.messages.create({2 model: 'claude-sonnet-4-20250514',3 max_tokens: 1024,4 system: `你是公司内部的技术文档助手。5规则:6- 用中文回答7- 代码部分必须标注语言8- 遇到不确定的问题,如实说明,不要编造`,9 messages: [...]10})System prompt 的最佳实践:
- 放在最前面,不要放在对话中间
- 具体且可执行,避免模糊描述
- 限制范围,明确 AI 能做什么不能做什么
多轮对话的上下文管理
Claude 的 messages API 要求你维护完整的对话历史:
1const conversationHistory = [2 { role: 'user', content: '什么是向量数据库?' },3 { role: 'assistant', content: '向量数据库是...' },4 { role: 'user', content: '它和传统数据库的区别是什么?' }5]6 7await client.messages.create({8 messages: conversationHistory9})上下文长度注意: Claude 3.5 支持 200K token 上下文,但实际使用中超过 100K token 后响应质量会下降。对于长文档场景,建议:
- 先用 embedding 模型提取摘要
- 再把摘要送入 Claude 做分析
- 而不是直接把整篇文档塞进去
流式输出
对于长文本生成,流式输出可以显著降低感知延迟:
1const stream = await client.messages.stream({2 model: 'claude-sonnet-4-20250514',3 max_tokens: 2048,4 messages: [{ role: 'user', content: '写一篇关于微服务的文章' }]5})6 7for await (const event of stream) {8 if (event.type === 'content_block_delta') {9 process.stdout.write(event.delta.text)10 }11}生产环境注意事项
1. 重试机制
LLM API 有偶发性错误,务必实现重试:
1async function callClaude(payload, retries = 3) {2 for (let i = 0; i < retries; i++) {3 try {4 return await client.messages.create(payload)5 } catch (err) {6 if (i === retries - 1) throw err7 await sleep(1000 * Math.pow(2, i)) // 指数退避8 }9 }10}2. Rate Limiting
Claude API 有 RPM(每分钟请求数)和 TPM(每分钟 token 数)限制。注册标准账户默认 RPM=50,TPM=100000。需要更高的配额可以在 Console 申请。
3. 成本控制
Claude 按输出 token 计费,监控方法:
1const usage = message.usage2console.log(`Input: ${usage.input_tokens}, Output: ${usage.output_tokens}`)3console.log(`Cost: $${(usage.output_tokens * 3.5 / 1e6).toFixed(4)}`) // Sonnet 价格总结
Claude API 的核心是「构建高质量的上下文」。System prompt 给 AI 定身份,messages 数组维护对话历史,max_tokens 防止成本失控。理解这三个概念,就能用好 Claude。
SDK 的上手成本很低,但真正拉开差距的是「如何设计 prompt 结构」和「如何管理上下文长度」——这些是接下来需要持续优化的方向。
