Перейти к содержанию

Совместим с OpenAI

API, совместимый с OpenAI, как прямая замена

Оставьте SDK OpenAI и свой код. Поменяйте три значения (базовый URL, ключ и модель), и ваши chat completions будут работать на двух необцензурированных моделях, которые ничего не сохраняют. Ниже: переключение на Python, JavaScript и curl и точный список поддерживаемого.

Проверено 29 октября 2026 г.

значения, которые нужно поменять в коде
3
необязательных полей запроса передаются дальше
15
маршрута, включая chat completions
4
чтобы проверить с sk-nokeep-test
$0

Три значения

Базовый URL
https://nokeep.ai/v1
Ключ API
sk-nokeep-test (free) or your sk-nokeep-… key
Модель
deepseek-v4.1-flash-uncensored

Официальные SDK OpenAI читают базовый URL и ключ из окружения, так что во многих проектах переключение вообще не требует правок кода:

Shell
export OPENAI_BASE_URL="https://nokeep.ai/v1"
export OPENAI_API_KEY="sk-nokeep-…"

Затем замените имя модели там, где вы её вызываете. Все остальные строки остаются.

На Python, JavaScript и curl

import os
from openai import OpenAI

client = OpenAI(
    base_url="https://nokeep.ai/v1",
    api_key=os.environ["NOKEEP_API_KEY"],
)

reply = client.chat.completions.create(
    model="deepseek-v4.1-flash-uncensored",
    messages=[{"role": "user", "content": "Write a haiku about moving house."}],
)
print(reply.choices[0].message.content)

Стриминг, инструменты, вывод JSON и картинки работают так же, как в формате самого OpenAI. Библиотеки и фреймворки, построенные на SDK OpenAI, принимают тот же базовый URL и ключ. Сначала попробуйте вызов прямо здесь:

Попробуйте здесь, бесплатно

Это отправит настоящий запрос в API с тестовым ключом. Ответ — одна фиксированная строка, ничего не стоит.

Что поддерживается

ФункцияПоддерживается
POST /v1/chat/completions, целиком или потокомДа, обе модели
GET /v1/models и GET /v1/models/{id}Да, с длиной контекста, самым длинным ответом и ценой за токен
Роли: system, developer, user, assistant, toolДа
Вызовы инструментов: tools, tool_choiceДа. У GLM tool_choice принимает только auto или none.
reasoning_effortDeepSeek: none, low, high, max. GLM: low, high.
Картинки как части image_url, ссылки или data URLdeepseek-v4.1-flash-uncensored, до 10 на запрос
response_format, temperature, top_p, stop, seed, штрафыdeepseek-v4.1-flash-uncensored
stream_options.include_usage, max_tokens, max_completion_tokensДа
Закэшированный вход в usage.prompt_tokens_details.cached_tokensДа, списывается по цене кэша

Каждое поле, модель за моделью: Chat completions.

Что не поддерживается

Не поддерживаетсяЧто вы получите
Другие эндпоинты: embeddings, images, audio, files, batch, moderations, API Responses и Assistants, устаревшие completions404 not_found, с перечислением четырёх маршрутов, которые есть
n со значением, отличным от 1400 unsupported_n
reasoning_effort, который модель не принимает400 invalid_reasoning_effort, с перечислением тех, что принимает
Именованная функция или required как tool_choice на glm-5.3-flash-uncensored400 unsupported_tool_choice
Картинки для glm-5.3-flash-uncensored; части с аудио или видео для любой модели400 unsupported_input, с названием модели, которая читает картинки
Больше 10 картинок или больше 2,000 сообщений400 too_many_images, 400 invalid_messages
Поля, которые не принимает ни одна модель, например logprobs, logit_bias, user или storeОтбрасываются и перечисляются в заголовке x-nokeep-ignored

Ничего неподдерживаемого не угадывается и не меняется молча: запрос либо отклоняется с кодом, либо его неиспользованные поля перечисляются в заголовке. Каждый код и его решение описаны в Ошибки.

Небольшие различия, которые стоит знать

  • usage.nokeep_credits показывает, сколько стоил запрос, а заголовки x-nokeep-credits и x-nokeep-balance сообщают это в целом ответе.
  • Оплата идёт предоплаченными кредитами: 1,000 — это $1, от $5, и они не сгорают. Отклонённый запрос ничего не стоит.
  • Лимит: 120 запросов в минуту на ключ. Ответ 429 содержит Retry-After.
  • Хост GLM может быть занят в часы пик; занятый запрос отвечает 503 busy с Retry-After: 5 и ничего не стоит.

Вопросы

Нужно ли менять код, чтобы переключиться?

Только базовый URL, ключ и имя модели. С официальными SDK первые два могут браться из OPENAI_BASE_URL и OPENAI_API_KEY в окружении.

Работает ли это с приложениями, которые принимают свой эндпоинт OpenAI?

Да. Любое приложение с настройкой OpenAI-совместимого или пользовательского эндпоинта работает. Руководства: SillyTavern, Open WebUI, а агенты для кода — на странице агентов для кода.

Какие модели OpenAI можно вызывать?

Никакие: формат — OpenAI, а модели — deepseek-v4.1-flash-uncensored и glm-5.3-flash-uncensored. GET /v1/models перечисляет все идентификаторы.

Есть ли эндпоинт embeddings?

Пока нет. API обслуживает chat completions, список моделей и маршрут статуса. Новые маршруты появятся в журнале изменений.

Что происходит с полями, которые вы не поддерживаете?

Они отбрасываются и перечисляются в заголовке x-nokeep-ignored, так что вы видите, что именно не использовано. Значения, которые меняют смысл запроса, например n больше 1, вместо этого отклоняются с 400.