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