SDKs
cURL、Python 与 TypeScript
示例使用当前公开网关 https://api.51cowork.com 和官方风格 SDK 的自定义 Base URL 能力。模型仍通过 /v1/models 动态选择。
OpenAI SDK 的 Base URL 使用 https://api.51cowork.com/v1;Anthropic SDK 使用 https://api.51cowork.com。API Key 来自控制台,模型 ID 来自 /v1/models。
- HTTP
- cURL
- Python
- openai / anthropic
- TypeScript
- openai / @anthropic-ai/sdk
- 凭据
- 环境变量
统一环境变量
Terminal
bashexport COWORK_GATEWAY_URL="https://api.51cowork.com"
export COWORK_API_KEY="<key-from-dashboard>"
export COWORK_MODEL="<model-from-gateway>"cURL
OpenAI Chat Completions
bashcurl "$COWORK_GATEWAY_URL/v1/chat/completions" \
-H "Authorization: Bearer $COWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"messages": [{"role": "user", "content": "Hello"}]
}'Anthropic Messages
bashcurl "$COWORK_GATEWAY_URL/v1/messages" \
-H "x-api-key: $COWORK_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"max_tokens": 256,
"messages": [{"role": "user", "content": "Hello"}]
}'Python
OpenAI SDK · pip install openai
pythonimport os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["COWORK_API_KEY"],
base_url=os.environ["COWORK_GATEWAY_URL"].rstrip("/") + "/v1",
)
result = client.chat.completions.create(
model=os.environ["COWORK_MODEL"],
messages=[{"role": "user", "content": "Hello"}],
)
print(result.choices[0].message.content)Anthropic SDK · pip install anthropic
pythonimport os
from anthropic import Anthropic
client = Anthropic(
api_key=os.environ["COWORK_API_KEY"],
base_url=os.environ["COWORK_GATEWAY_URL"],
)
message = client.messages.create(
model=os.environ["COWORK_MODEL"],
max_tokens=256,
messages=[{"role": "user", "content": "Hello"}],
)
print(message.content[0].text)TypeScript / JavaScript
OpenAI SDK · npm install openai
typescriptimport OpenAI from 'openai'
const client = new OpenAI({
apiKey: process.env.COWORK_API_KEY,
baseURL: `${process.env.COWORK_GATEWAY_URL?.replace(/\/$/, '')}/v1`,
})
const result = await client.chat.completions.create({
model: process.env.COWORK_MODEL!,
messages: [{ role: 'user', content: 'Hello' }],
})
console.log(result.choices[0]?.message.content)Anthropic SDK · npm install @anthropic-ai/sdk
typescriptimport Anthropic from '@anthropic-ai/sdk'
const client = new Anthropic({
apiKey: process.env.COWORK_API_KEY,
baseURL: process.env.COWORK_GATEWAY_URL,
})
const message = await client.messages.create({
model: process.env.COWORK_MODEL!,
max_tokens: 256,
messages: [{ role: 'user', content: 'Hello' }],
})
console.log(message.content)在 SDK 中使用流式输出
使用对应 SDK 的 streaming API,并逐个消费事件或 chunk。设置连接超时和读取超时,确保用户取消时能中止上游请求。
Protocol smoke test
bashcurl -N "$COWORK_GATEWAY_URL/v1/chat/completions" \
-H "Authorization: Bearer $COWORK_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "'"$COWORK_MODEL"'",
"stream": true,
"messages": [{"role": "user", "content": "Count to five"}]
}'- 不要先等待完整响应再转发给前端,否则失去流式收益。
- 不要把事件内容、Prompt 或完整 Key默认写入日志。
- 连接中断后谨慎重试,避免产生重复调用和费用。
进入生产前
- 通过 Secret Manager 或部署平台注入 Key。
- 设置请求超时、取消信号和有限重试。
- 记录自己的业务请求 ID,并关联控制台中的 request_id。
- 为用户输入设置合理长度与内容边界。
- 监控余额和错误率,额度不足前主动补充。
