Первый запрос за пять минут
Интегрируйте нашу API без цензуры в ваш NSFW AI-рабочий процесс, обновив три значения конфигурации в существующем клиенте, совместимом с OpenAI. Это быстрое руководство охватывает аутентификацию, генерацию текста и потоковую передачу без дополнительных зависимостей.
Базовый URL и аутентификация
Наш API зеркально отображает интерфейс OpenAI v1, позволяя вам менять эндпоинты без изменения логики приложения. Используйте https://api.groknsfw.top/v1 в качестве базового URL. Для аутентификации требуется действительный API-ключ, передаваемый в заголовке Authorization в виде токена Bearer. Вы можете мгновенно сгенерировать этот ключ через вход в Google или по электронной почте в панели управления. Для одного аккаунта в один момент времени доступен только один активный ключ; выпуск нового ключа немедленно делает предыдущий недействительным. Эта модель с одним ключом упрощает контроль доступа для большинства сред разработки и QA.
Первый запрос
Отправьте стандартный запрос на завершение чата, чтобы проверить подключение. Идентификатор модели — uncensored, который обрабатывает отказ от контента иначе, чем стандартные модели. Ниже приведен базовый пример с использованием инструмента командной строки curl для проверки правильности вашего ключа и базового URL.
curl https://api.groknsfw.top/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'
Если вы получили ответ в формате JSON с полями choices и usage, ваша интеграция активна. Проверьте объект usage, чтобы увидеть потребление токенов для точного отслеживания биллинга.
Интеграция Python SDK
Используйте официальный пакет Python openai для взаимодействия с нашим эндпоинтом. Установите атрибуты base_url и api_key перед выполнением вызовов. Этот подход работает с любой библиотекой, поддерживающей схему OpenAI, что делает миграцию от других поставщиков простой.
from openai import OpenAI
client = OpenAI(base_url="https://api.groknsfw.top/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)
Этот фрагмент кода демонстрирует синхронный запрос. Для генерации NSFW-контента с высокой пропускной способностью рассмотрите возможность использования асинхронных клиентов для одновременной обработки нескольких запросов без блокировки основного потока.
Настройка Node.js SDK
Для приложений на JavaScript или TypeScript настройте SDK OpenAI на указание нашего базового URL. Это гарантирует, что ваш существующий клиентский код будет работать без изменений. Экосистема Node.js выигрывает от этой совместимости, позволяя быстро прототипировать NSFW-интерфейсы чатов.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.groknsfw.top/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);
Убедитесь, что вы используете последнюю версию SDK, поддерживающую пользовательские базовые URL. Объект конфигурации должен строго включать свойства apiKey и baseURL, чтобы избежать несоответствия эндпоинтов.
Потоковые ответы (SSE)
Включите генерацию токенов в реальном времени, установив stream: true в вашем запросе. API возвращает поток Server-Sent Events (SSE), доставляя токены по мере их генерации. Это снижает воспринимаемую задержку для конечных пользователей в приложениях чата.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Разбирайте события SSE, чтобы извлечь содержимое delta. Последний фрагмент потока содержит общую статистику usage, которую следует использовать для точного согласования биллинга. Потоковая передача не влияет на подсчет токенов или ценообразование.
Ограничения, ошибки и контекст
К вашим запросам применяются лимиты: 300 в минуту и 8 параллельных запросов на ключ. Максимальный размер тела запроса составляет 8 МБ, а контекстное окно поддерживает до 100 000 токенов. Ошибки возвращаются в стандартных форматах HTTP: 401 — недействительный ключ, 402 — недостаточно средств, 429 — превышен лимит запросов. Ошибки, связанные с кредитом, не влекут штрафов, но при достижении лимитов запросов необходимо снизить частоту запросов. Максимальный объём вывода на запрос — 32 000 токенов; если не указать max_tokens, по умолчанию используется 2 048 токенов.
Технические характеристики
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.groknsfw.top/v1 |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| ID модели | uncensored |
| JSON-режим | response_format: {"type": "json_object"} |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Лимит запросов | 300 запросов в минуту на ключ |
| Параллельные запросы | до 8 одновременно на ключ |
| Размер запроса | до 8 МБ |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Бонус | +5% от $50, +10% от $100 |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Вход | Google или e-mail и пароль |
| Ключи | один активный ключ на аккаунт; новый заменяет старый |
| Контент | контент для взрослых разрешён; сексуальный контент с несовершеннолетними запрещён |
Коды ошибок
Ошибки приходят в JSON с постоянным type; неудачные и отклонённые запросы не оплачиваются.
| Код | Тип | Что значит |
|---|---|---|
400 | bad_request | неверный JSON, пустые сообщения, неверный параметр или превышено окно контекста |
401 | missing_key · invalid_key · key_revoked | нет ключа, ключ неверный или заменён новым |
402 | no_credit | баланс пуст — пополните, работа продолжится сразу |
403 | content_blocked | сексуальный контент с несовершеннолетними — отказ, без оплаты |
404 | not_found | неизвестный эндпоинт |
413 | request_too_large | тело запроса больше 8 МБ |
429 | rate_limited · concurrency | больше 300/мин или 8 параллельно — подождите и повторите |
503 | upstream_busy | модель занята — повторите через несколько секунд |
Вопросы и ответы
Это официальный API Grok?
Нет, мы — независимый сервис, размещающий модель с открытыми весами, настроенную на ответы без цензуры. Мы используем тот же протокол API, что и OpenAI, но наша модель — не GPT-4, Grok и не модель другого вендора. Проверьте документацию вендора для получения сведений о конкретных моделях.
Как получить больше API-ключей?
Для одного аккаунта в один момент времени доступен только один активный API-ключ. Генерация нового ключа в панели управления немедленно делает предыдущий недействительным. Такой подход упрощает управление доступом для отдельных разработчиков и небольших команд.
Поддерживаете ли вы вызов функций?
Да, API поддерживает стандартный вызов функций через параметры <code>tools</code> и <code>tool_choice</code>. Вы также можете принудительно использовать вывод в формате JSON с помощью <code>response_format: { "type": "json_object" }</code> для генерации структурированных данных.
Ваш ключ — в одной форме от вас
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.