API для разработчиков
OpenAI-совместимый API: подключите модели Ketner к Cursor, Continue или своему коду. Подойдёт любая библиотека, которая умеет менять базовый адрес OpenAI.
API-ключи
Ключ действует от имени вашего аккаунта и тратит ваши кредиты.
Войдите, чтобы создавать ключи и управлять ими.
ВойтиАдрес API
https://ketner.org/v1Укажите его как base URL в клиенте OpenAI. Авторизация: заголовок Authorization: Bearer и ваш ключ.
Модели
- auto
- ketner-mini
- ketner-pro
- claude-haiku-5.5
- deepseek-v4.1-flash
- minimax-m3.1-flash
- glm-5.3-flash
- qwen3.8-flash
- gpt-5.6-luna-pro
- qwen3.8-27b
- gemini-3.7-flash
- gpt-6.1-terra
- glm-5.3
- qwen3.8-max
- kimi-k3.1
- gpt-6.1-sol
- claude-opus-5.5
- claude-sonnet-5.5
- gpt-6-astra
- grok-4.7
- gemini-4-argon
- gpt-5.6-sol
- gpt-5.6-terra
Передайте id в поле model. auto выбирает модель сам.
Быстрый старт
Один запрос к чату на cURL, Python или JavaScript.
curl https://ketner.org/v1/chat/completions \
-H "Authorization: Bearer ketner_sk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "auto",
"messages": [{"role": "user", "content": "Напиши функцию на Python, которая проверяет, что строка — палиндром"}]
}'Подключение к редактору
Cursor и Continue работают с любым OpenAI-совместимым адресом.
Cursor
- Откройте Settings → Models.
- В разделе OpenAI API Key вставьте ваш ключ и включите Override OpenAI Base URL.
- В поле адреса укажите
https://ketner.org/v1. - Добавьте модель по id, например
ketner-proилиclaude-sonnet-5.5, и нажмите Verify.
Continue (VS Code, JetBrains)
Добавьте модели в ~/.continue/config.yaml:
models:
- name: Ketner Pro
provider: openai
model: ketner-pro
apiBase: https://ketner.org/v1
apiKey: ketner_sk_...
- name: Claude Sonnet 5.5 (Ketner)
provider: openai
model: claude-sonnet-5.5
apiBase: https://ketner.org/v1
apiKey: ketner_sk_.../v1/chat/completions
Чат и инструменты
Формат OpenAI Chat Completions: обычные ответы, поток (SSE) и вызов функций (tools). Цикл «модель → инструмент → результат» выполняет ваш клиент.
Параметры тела
| Параметр | Тип | Описание |
|---|---|---|
modelобязательный | string | id модели из списка или auto |
messagesобязательный | array | Сообщения с ролями system, user, assistant и tool |
tools | array | Функции, которые модель может вызвать |
tool_choice | string | object | auto, none, required или конкретная функция По умолчанию: |
stream | boolean | Ответ потоком (SSE), в конце data: [DONE] По умолчанию: |
max_tokens | integer | Предельная длина ответа |
temperature | number | Температура, от 0 до 2 |
top_p | number | Nucleus sampling, от 0 до 1 |
stop | string | array | До 4 строк, на которых модель остановится |
seed | integer | Зерно для повторяемых ответов (если модель умеет) |
frequency_penalty, presence_penalty | number | Штрафы за повторы, от −2 до 2 По умолчанию: |
response_format | object | json_object или json_schema: ответ строго в JSON |
stream_options | object | {"include_usage": true} — отдельный кусок с расходом перед [DONE] |
Пример с вызовом функции
curl https://ketner.org/v1/chat/completions \
-H "Authorization: Bearer ketner_sk_..." \
-H "Content-Type: application/json" \
-d '{
"model": "ketner-pro",
"messages": [{"role": "user", "content": "Прочитай src/app.ts и найди ошибку"}],
"tools": [{
"type": "function",
"function": {
"name": "read_file",
"description": "Прочитать файл проекта",
"parameters": {
"type": "object",
"properties": {"path": {"type": "string"}},
"required": ["path"]
}
}
}]
}'Ответ в JSON
response_format с json_schema заставляет модель отвечать по вашей схеме, json_object — любым корректным JSON. Удобно для извлечения данных и интеграций.
import json, os
from openai import OpenAI
client = OpenAI(base_url="https://ketner.org/v1", api_key=os.environ["KETNER_API_KEY"])
reply = client.chat.completions.create(
model="ketner-pro",
messages=[{"role": "user", "content": "Отзыв: «Доставили быстро, но коробка мятая»"}],
response_format={
"type": "json_schema",
"json_schema": {
"name": "review",
"strict": True,
"schema": {
"type": "object",
"properties": {
"sentiment": {"type": "string", "enum": ["positive", "neutral", "negative"]},
"issues": {"type": "array", "items": {"type": "string"}},
},
"required": ["sentiment", "issues"],
"additionalProperties": False,
},
},
},
)
print(json.loads(reply.choices[0].message.content))Ошибки
{"error": {"message", "type", "code"}}. 401 — неверный или отозванный ключ, 403 — API закрыт: нужны купленные кредиты, 429 — слишком много запросов, повторите через Retry-After секунд. У каждого ответа есть заголовок X-Request-Id — назовите его поддержке, если что-то пошло не так./v1/models
Список моделей
Возвращает модели в формате OpenAI. Поле available показывает, открыт ли вашему аккаунту API: без купленных кредитов он закрыт.
curl https://ketner.org/v1/models \
-H "Authorization: Bearer ketner_sk_..."