Аутентификация и базовый URL
Наш API спроектирован как готовая замена для существующих клиентов OpenAI. Вам нужно изменить только две вещи в конфигурации: базовый URL и API-ключ. Базовый URL для этого сервиса — https://api.uncensoredgpt.top/v1. Вы можете сгенерировать свой API-ключ сразу после входа через Google или email в панели управления. Номер телефона не требуется, ключ отображается один раз при создании.
Убедитесь, что вы надежно храните ключ. Если вы его потеряете, вы можете сгенерировать новый в панели управления, что сделает предыдущий ключ недействительным. Эта простая настройка позволяет подключиться к нашей AI API без цензуры с использованием стандартных библиотек без кастомных адаптеров.
Эндпоинт Chat Completions
Основная функциональность доступна через стандартный POST /v1/chat/completions эндпоинт. Этот эндпоинт принимает текстовый ввод и возвращает текстовый вывод, поддерживая как синхронные, так и асинхронные запросы. Вам не нужно беспокоиться о маршрутизации или агрегации моделей; мы предоставляем одну высокопроизводительную модель без цензуры, настроенную на генерацию неограниченного контента.
При отправке запроса вы должны указать ID модели как uncensored. Эта модель с открытыми весами размещена на наших собственных серверах, отдельно от GPT, Claude или других моделей поставщиков. Она создана для ответов без отказов по контенту для законного использования для взрослых, что делает её идеальной для NSFW или спорных тем.
Чтобы начать, вы можете протестировать эндпоинт с помощью простой команды cURL. Замените YOUR_API_KEY на ваш фактический ключ.
curl https://api.uncensoredgpt.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."}]
}'
Потоковые ответы (SSE)
Для приложений реального времени API поддерживает Server-Sent Events (SSE). Потоковая передача позволяет получать токены по мере их генерации, обеспечивая лучший пользовательский опыт для интерфейсов чата. Когда вы устанавливаете stream: true в запросе, API возвращает поток чанков, а не один полный ответ.
Каждый чанк содержит частичный текст, а последний чанк включает статистику использования токенов для расчетов. Эта функция особенно полезна для приложений, требующих немедленной обратной связи. Вы можете обработать поток на предпочитаемом языке с помощью соответствующего SDK.
Вот пример того, как инициировать потоковый запрос с помощью cURL:
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 поддерживает вызов функций, позволяя вашему приложению взаимодействовать с внешними инструментами и сервисами. Вы можете определить список функций в параметре tools, и модель ответит вызовом функции, если это уместно. Это полезно для создания агентов или приложений, которым нужно выполнять определенные действия.
Вы можете контролировать поведение модели с помощью tool_choice, который можно установить в auto, none или указать конкретный ID функции. Модель вернет имя функции и аргументы в ответе, которые вы затем можете выполнить в своем приложении.
Вот пример на Python, демонстрирующий, как использовать функцию вызова функций с OpenAI-совместимым SDK:
from openai import OpenAI
client = OpenAI(base_url="https://api.uncensoredgpt.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)
Настройка JSON-режима
Если вам нужен структурированный вывод, вы можете включить JSON-режим, установив параметр response_format в {"type": "json_object"}. Это указывает модели генерировать вывод, соответствующий синтаксису валидного JSON. Это особенно полезно для приложений, которым нужно программно обрабатывать ответ.
При использовании JSON-режима модель будет избегать добавления маркдаун-разметки или дополнительного текста вокруг объекта JSON. Это гарантирует, что ваш парсер может напрямую потреблять ответ без дополнительных шагов очистки. Это надежный способ получить структурированные данные от LLM.
Вот пример на Node.js, показывающий, как настроить клиент для JSON-режима:
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.uncensoredgpt.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);
Параметры: Temperature и Top P
Вы можете управлять случайностью и креативностью ответов модели с помощью параметров temperature и top_p. Параметр temperature регулирует температуру выборки: низкие значения делают вывод более детерминированным, а высокие — более креативным. Параметр top_p управляет ядерной выборкой, ограничивая модель рассмотрением только топ p вероятностной массы токенов.
Другие поддерживаемые параметры включают последовательности stop, seed для воспроизводимости и штрафы за presence_penalty и frequency_penalty. Эти параметры позволяют тонко настраивать поведение модели под ваш конкретный случай использования.
Понимание этих параметров критически важно для оптимизации качества вашего сгенерированного текста. Экспериментируйте с различными значениями, чтобы найти правильный баланс для вашего приложения.
Характеристики API
Все реальные лимиты и возможности API в одном месте — сверьте их до пополнения.
| Параметр | Значение |
|---|---|
| Формат API | совместим с OpenAI: любой OpenAI SDK работает — замените base URL и ключ |
| Эндпоинты | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.uncensoredgpt.top/v1 |
| Авторизация | Authorization: Bearer YOUR_KEY |
| ID модели | uncensored |
| Потоковая передача | да — server-sent events, последний фрагмент содержит расход токенов |
| Параметры | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Вызов функций | да — tools, tool_choice; ответ содержит tool_calls, в том числе в потоке; результат — сообщением role: tool |
| JSON-режим | response_format: {"type": "json_object"} |
| Максимум ответа | до остатка окна в 100 000 токенов; max_tokens необязателен (отдельного лимита нет) |
| Контекстное окно | 100 000 токенов (вход и ответ вместе) |
| Размер запроса | до 8 МБ |
| Лимит запросов | 300 запросов в минуту на ключ |
| Параллельные запросы | до 8 одновременно на ключ |
| Заголовки ответа | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Цена | $0,25 за 1 млн входных токенов · $1,00 за 1 млн выходных |
| Пробный баланс | $0,50 на 7 дней, без карты · Пробный ключ: 2 параллельных запроса, 60 в минуту; полные лимиты (8 и 300) после первого пополнения |
| Оплата | предоплаченный баланс по фактическому расходу; ошибки и отказы бесплатны |
| Пополнение | 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 | модель занята — повторите через несколько секунд |
Вопросы и ответы
Что произойдет, если превысить лимит запросов?
Если вы превысите лимит в 300 запросов в минуту или 8 одновременных запросов, вы получите ошибку 429 Too Many Requests. Ваш API-ключ ограничен 8 одновременными подключениями, поэтому убедитесь, что ваше приложение корректно обрабатывает параллельные запросы, чтобы не достичь этого лимита.
Почему возникает ошибка 402?
Ошибка 402 означает, что ваш предоплаченный баланс исчерпан. Поскольку мы используем модель с предоплаченными токенами, вам необходимо пополнить аккаунт, чтобы продолжить использование API. Ошибки и отказы не расходуют кредиты, поэтому вы платите только за успешное использование токенов.
Каков предел контекстного окна?
Модель поддерживает контекстное окно на 100 000 токенов, включая промпт и завершение. Максимальный вывод на запрос составляет 32 000 токенов или 2 048 токенов, если вы не указали значение max_tokens. Это позволяет генерировать длинные тексты и выполнять сложные задачи рассуждения.
Ваш ключ — в одной форме от вас
Создайте аккаунт, скопируйте ключ, измените базовый URL. Вот и вся настройка.