51cowork API文档
打开文档导航

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
凭据
环境变量
01

统一环境变量

Terminalbash
export COWORK_GATEWAY_URL="https://api.51cowork.com"
export COWORK_API_KEY="<key-from-dashboard>"
export COWORK_MODEL="<model-from-gateway>"
02

cURL

OpenAI Chat Completionsbash
curl "$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 Messagesbash
curl "$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"}]
  }'
03

Python

OpenAI SDK · pip install openaipython
import 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 anthropicpython
import 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)
04

TypeScript / JavaScript

OpenAI SDK · npm install openaitypescript
import 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/sdktypescript
import 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)
05

在 SDK 中使用流式输出

使用对应 SDK 的 streaming API,并逐个消费事件或 chunk。设置连接超时和读取超时,确保用户取消时能中止上游请求。

Protocol smoke testbash
curl -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默认写入日志。
  • 连接中断后谨慎重试,避免产生重复调用和费用。
06

进入生产前

  • 通过 Secret Manager 或部署平台注入 Key。
  • 设置请求超时、取消信号和有限重试。
  • 记录自己的业务请求 ID,并关联控制台中的 request_id。
  • 为用户输入设置合理长度与内容边界。
  • 监控余额和错误率,额度不足前主动补充。