Совместимость с OpenAI
У codexkey есть OpenAI-совместимый эндпоинт /v1/chat/completions: через него модели Claude доступны из OpenAI SDK и любого OpenAI-совместимого клиента.
Эндпоинт
http
POST https://api.codexkey.ru/v1/chat/completionsАутентификация
Ключ передаётся стандартным заголовком Authorization: Bearer:
http
Authorization: Bearer sk_cdx_YOUR_KEYТело запроса
| Параметр | Тип | Обязательный | Описание |
|---|---|---|---|
model | string | Да | ID модели (например, claude-sonnet-5). |
messages | array | Да | Массив сообщений; у каждого role ("system", "user" или "assistant") и content. |
temperature | number | Нет | Температура сэмплирования, от 0 до 1. |
max_tokens | integer | Нет | Максимум генерируемых токенов. |
stream | boolean | Нет | Включить стриминг через SSE. |
Маппинг полей
codexkey сам переводит запросы и ответы между форматами 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.codexkey.ru/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer sk_cdx_YOUR_KEY" \
-d '{
"model": "claude-sonnet-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.codexkey.ru/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-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)