Совместимость с OpenAI
Claudexia предоставляет OpenAI-совместимый эндпоинт /v1/chat/completions, позволяющий использовать OpenAI SDK или любой OpenAI-совместимый клиент с моделями Claude.
Эндпоинт
http
POST https://api.claudexia.tech/v1/chat/completionsАутентификация
Используйте стандартный заголовок Authorization: Bearer:
http
Authorization: Bearer sk_cdx_YOUR_KEYТело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | ID модели (например, claude-sonnet-4-20250514). |
messages | array | Да | Массив сообщений с role ("system", "user", "assistant") и content. |
temperature | number | Нет | Температура сэмплирования (0–1). |
max_tokens | integer | Нет | Максимум генерируемых токенов. |
stream | boolean | Нет | Включить стриминг через SSE. |
Маппинг полей
Claudexia автоматически преобразует между форматами OpenAI и Anthropic:
| Поле OpenAI | Эквивалент Anthropic | Примечания |
|---|---|---|
messages[role="system"] | system | Системные сообщения извлекаются и отправляются как параметр system. |
max_tokens | max_tokens | Прямой маппинг. |
temperature | temperature | Прямой маппинг. |
stop | stop_sequences | Принимает строку или массив. |
choices[0].message | content | Контент ответа оборачивается в формат OpenAI. |
choices[0].finish_reason | stop_reason | end_turn → stop, max_tokens → length. |
Пример cURL
bash
curl https://api.claudexia.tech/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_cdx_YOUR_KEY" \
-d '{
"model": "claude-sonnet-4.5",
"max_tokens": 1024,
"messages": [
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Hello!"}
]
}'Пример на Python (OpenAI SDK)
python
from openai import OpenAI
client = OpenAI(
api_key="sk_cdx_YOUR_KEY",
base_url="https://api.claudexia.tech/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-4.5",
max_tokens=1024,
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Explain quantum computing in one paragraph."},
],
)
print(response.choices[0].message.content)