- Nsfwchat
- NSFW Chat: Начало работы: Интеграция LLM без цензуры
NSFW Chat: Начало работы: Интеграция LLM без цензуры
Интегрируйте наше API LLM без цензуры, используя стандартные эндпоинты, совместимые с OpenAI. В этом руководстве описаны аутентификация, форматы запросов и потоковая передача для генерации текста в больших объемах.
Базовый URL и аутентификация
Используйте выделенный базовый URL для всех запросов. Аутентификация основана на одном API-ключе, созданном при регистрации. Включите ключ в заголовок Authorization как токен Bearer. Ваш ключ отображается сразу после создания. У каждой учетной записи есть один активный ключ; генерация нового заменяет старый.
Базовый URL: https://api.nsfwchat.cc/v1. Дополнительные маршрутизаторы или прокси не требуются. Эта настройка работает с любым клиентом, совместимым с OpenAI, путем изменения базового URL и API-ключа.
Завершение чата
Отправляйте текстовые промпты на эндпоинт POST /v1/chat/completions. Идентификатор модели — uncensored. Этот эндпоинт принимает стандартные сообщения чата и возвращает сгенерированный текст. Он не поддерживает эмбеддинги, изображения или аудио. Модель настроена на ответы без цензуры для законного контента для взрослых.
Убедитесь, что ваш полезный груз содержит идентификатор модели и историю сообщений. API обрабатывает текстовый ввод и возвращает текстовый вывод напрямую.
curl https://api.nsfwchat.cc/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."}]
}'
SDK для Python
Используйте официальный SDK OpenAI для Python для интеграции. Установите base_url на наш эндпоинт API и укажите свой API-ключ. SDK автоматически выполняет сериализацию и обработку ошибок. Настройте параметры, такие как temperature и top_p, чтобы управлять случайностью вывода.
Инициализируйте клиент, указав ключ и базовый URL. Вызовите chat.completions.create() с идентификатором модели и сообщениями. Этот подход сокращает объем шаблонного кода для простых задач генерации текста.
from openai import OpenAI
client = OpenAI(base_url="https://api.nsfwchat.cc/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)
SDK для Node.js
SDK OpenAI для Node.js работает так же, как версия для Python. Настройте клиент, указав пользовательский базовый URL и свой API-ключ. Используйте метод chat.completions.create для отправки запросов.
Этот метод идеален для интеграции на стороне сервера. SDK управляет пулом соединений и повторными попытками. Установите модель в значение uncensored, чтобы обеспечить ответы без цензуры. Передавайте сообщения в виде массива объектов с ролями и содержимым.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.nsfwchat.cc/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);
Потоковые ответы
Включите потоковую передачу, установив 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)
Лимиты запросов и ошибки
Соблюдайте лимиты запросов, чтобы избежать прерывания службы. API позволяет 300 запросов в минуту и 8 параллельных запросов на ключ. Максимальный размер тела запроса — 8 МБ. Статус 401 указывает на недействительный или отсутствующий API-ключ. Статус 429 указывает на превышение лимита запросов.
Контекстное окно составляет 100 000 токенов для промпта и завершения вместе. Если вы превысите этот лимит, запрос будет отклонён. Обрезания не происходит; убедитесь, что ваш ввод помещается в окно. Статус 402 указывает на недостаточный предоплаченный баланс. Ошибки и отклонения не расходуют кредит.
Технические характеристики
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| ID модели | uncensored |
| Авторизация | Authorization: Bearer YOUR_KEY |
| Base URL | https://api.nsfwchat.cc/v1 |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| JSON-режим | response_format: {"type": "json_object"} |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Размер запроса | до 8 МБ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Параллельные запросы | до 8 одновременно на ключ |
| Лимит запросов | 300 запросов в минуту на ключ |
| Срок действия | оплаченный баланс не сгорает, без подписки |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Пополнение | USDT (TRC20) или USDC (Base), любая целая сумма от $10 до $500 |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Бонус | +5% от $50, +10% от $100 |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Ключи | один активный ключ на аккаунт; новый заменяет старый |
| Вход | 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 вызов функций?
Да, API поддерживает вызов функций через параметры <code>tools</code> и <code>tool_choice</code>. Вы можете определить инструменты в запросе, и модель вернет структурированный JSON для их использования. Эта функция работает со стандартными клиентами, совместимыми с OpenAI.
Каков размер контекстного окна?
Контекстное окно составляет 100 000 токенов, объединяя промпт и ответ модели. Максимальный объём вывода на запрос — 32 000 токенов или 2 048, если <code>max_tokens</code> не задан. Запросы, превышающие это окно, отклоняются.
Как обрабатываются ошибки?
В ответах об ошибках содержатся код статуса и сообщение. Код <code>401</code> означает, что API-ключ недействителен. Код <code>429</code> означает, что вы превысили лимит запросов. Код <code>402</code> указывает на недостаточный предоплаченный баланс. Ошибки не расходуют ваш токен-кредит.
Ваш ключ — в одной форме от вас
Создайте учетную запись, скопируйте ключ, измените базовый URL. Вот и вся настройка.