51cowork APIДокументация
Открыть навигацию

SDKs

cURL, Python и TypeScript

Примеры используют текущий публичный шлюз https://api.51cowork.com и стандартную настройку Base URL в SDK. Модель по-прежнему выбирается динамически через /v1/models.

Краткий ответ

OpenAI SDK использует 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

Streaming в SDK

Используйте streaming API библиотеки и обрабатывайте события по одному. Настройте таймауты и отменяйте upstream при отмене пользователем.

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 или полный ключ по умолчанию.
  • Осторожно повторяйте разорванный поток, чтобы не создать дубликат и расход.
06

Перед production

  • Передавайте ключ через Secret Manager или платформу развёртывания.
  • Задайте таймаут, отмену и ограниченные повторы.
  • Создавайте бизнес-ID запроса и связывайте его с request_id в панели управления.
  • Ограничивайте длину и содержание пользовательского ввода.
  • Следите за балансом и ошибками, пополняйте заранее.