| 步驟 | 操作 | 官方地址 |
|---|---|---|
| 1. 注冊(cè)賬號(hào) | Anthropic Console | 需國際信用卡 |
| 2. 獲取 Key | Dashboard → API Keys → Create | 前綴 sk-ant- |
| 3. 國內(nèi)加速 | 使用 CometAPI 中轉(zhuǎn),支持人民幣 & 微信 | 單價(jià)更低 |
| 4. 安裝 SDK | pip install anthropic>=0.34.0 |
PyPI |
OpenAI chat.completions,支持 system / user / assistant / tool 四角色。 費(fèi)用 = 輸入 tokens × 0.000015 USD + 輸出 tokens × 0.000075 USD
例:一次 1K 輸入 500 輸出 ≈ 0.0525 USD。
import anthropic, os, json, time
from dotenv import load_dotenv
load_dotenv()
client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
def chat_stream(user_id, user_input, history: list):
system = f"You are a helpful e-commerce assistant. VIP level: {get_vip(user_id)}."
messages = [{"role":"system","content":system}] + history + [{"role":"user","content":user_input}]
with client.messages.stream(model="claude-opus-4-1-20250805", max_tokens=1024, messages=messages) as stream:
for text in stream.text_stream:
yield text
def get_vip(uid):
# 偽代碼:從 Redis 讀取
return {"uid_42":"gold"}.get(uid,"normal")
# ========== Flask Demo ==========
from flask import Flask, request, Response
app = Flask(__name__)
@app.route("/chat/ < uid > ", methods=["POST"])
def api_chat(uid):
user_input = request.json["msg"]
history = json.loads(request.json.get("history","[]"))
def generate():
for chunk in chat_stream(uid, user_input, history):
yield f"data: {chunk}\n\n"
return Response(generate(), mimetype="text/event-stream")
if __name__ == "__main__":
app.run(port=5000)
前端使用 EventSource 即可實(shí)現(xiàn)打字機(jī)效果。
Claude 4.1 原生支持 Function Calling,可把外部 API 當(dāng)“插件”調(diào)用。
{
"name": "get_weather",
"description": "獲取城市天氣",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
tools 字段 tool_calls messages 前端只需 10 行 JavaScript:
const es = new EventSource("/chat/uid_42");
es.onmessage = e = > document.getElementById("answer").innerHTML += e.data;
React 可直接套用 Vercel AI SDK:
import { useChat } from "ai/react";
const { messages, input, handleInputChange, handleSubmit } = useChat({api: "/chat/uid_42"});
FROM python:3.11-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY app.py .
CMD ["gunicorn", "-k", "uvicorn.workers.UvicornWorker", "app:app", "-b", "0.0.0.0:8000"]
structlog + JSON → Loki claude_total_tokens、claude_latency_seconds version: "3.9"
services:
api:
build: .
environment:
ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}
ports:
- "8000:8000"
redis:
image: redis:7-alpine
| 省錢技巧 | 效果 | 實(shí)現(xiàn)方式 |
|---|---|---|
| Prompt 緩存 | 輸入費(fèi)用 ?90 % | "prompt_caching": true(官方 Beta) |
| 批處理 | 總費(fèi)用 ?50 % | AWS Bedrock Batch 或 CometAPI Batch |
| 模型降級(jí) | 費(fèi)用 ?75 % | 簡(jiǎn)單任務(wù)用 claude-sonnet-4-1 |
| 本地緩存 | 費(fèi)用 ?40 % | Redis 緩存常見問答 |
示例:
| 報(bào)錯(cuò) | 原因 | 解決 |
|---|---|---|
| 401 | API Key 錯(cuò)誤 | 檢查 ANTHROPIC_API_KEY 環(huán)境變量 |
| 429 | 限速 | 指數(shù)退避 + Batch 請(qǐng)求 |
| 400 | 超過 200 K | 分段 + LangChain 摘要 |
| 輸出截?cái)?/td> | max_tokens 太小 |
動(dòng)態(tài)計(jì)算剩余 token |
| 指標(biāo) | Claude 4.1 Opus |
|---|---|
| 最大上下文 | 200 K token |
| 代碼能力 | SWE-bench 74.5 % |
| 函數(shù)調(diào)用 | ? 原生支持 |
| 流式輸出 | ? |
| 價(jià)格 | $0.015 / 1K in, $0.075 / 1K out |
| 國內(nèi)可用 | ? CometAPI 中轉(zhuǎn) |
從 3 行腳本到生產(chǎn)級(jí)微服務(wù),這篇萬字長(zhǎng)文已覆蓋 90 % 落地場(chǎng)景。現(xiàn)在就把 GitHub 倉庫 克隆下來,用 5 分鐘跑通 Demo,再用 30 分鐘上線你的 AI 產(chǎn)品吧!