Базовый URL и аутентификация
API Unrestricted AI размещён по адресу https://api.unrestrictedai.top/v1. Он следует структуре завершений чата OpenAI, что позволяет использовать существующие SDK OpenAI, просто обновив значение base_url и указав свой API-ключ. Вам нужен только один активный ключ на аккаунт, и он предоставляет немедленный доступ к модели без цензуры. Аутентификация осуществляется через заголовок Authorization со схемой Bearer. Убедитесь, что ваш ключ хранится в безопасности, так как он контролирует расход предоплаченного баланса. В отличие от сервисов по подписке, вы платите только за обработанные токены, а ошибки и отказы тарифицируются как нулевое количество токенов.
Ваш первый запрос
Отправьте стандартный запрос завершения чата для проверки соединения. Идентификатор модели всегда uncensored. Этот эндпоинт принимает текстовый ввод и возвращает текстовый вывод, поддерживая до 100 000 токенов в контекстном окне. Если вы не укажете max_tokens, API по умолчанию установит 2048 выходных токенов. Этот простой POST-запрос демонстрирует основную функциональность: отправку промпта и получение сгенерированного ответа без фильтров контента для законных взрослых или спорных тем.
Интеграция через Python SDK
Использование официальной библиотеки OpenAI Python — самый быстрый способ интеграции. Укажите клиенту базовый URL и передайте ключ. Приведенный ниже код показывает базовый синхронный запрос. Этот подход автоматически обрабатывает парсинг JSON, позволяя напрямую обращаться к содержимому ответа в переменных Python. Это идеально подходит для бэкенд-сервисов или пакетной обработки, где задержка потоковой передачи менее критична, чем простота кода.
Интеграция через Node.js SDK
Для сред JavaScript настройте клиент OpenAI Node.js на наш эндпоинт. Асинхронная природа Node.js хорошо сочетается со временем отклика API. Укажите базовый URL правильно, и SDK обработает форматирование запроса. Помните, что этот API не поддерживает эндпоинты для изображений, аудио или встраиваний, поэтому придерживайтесь текстовых завершений. Этот метод подходит для веб-серверов или граничных функций, где необходимо внедрять ответы LLM без цензуры в динамический контент.
Потоковые ответы
Включите потоковую передачу, установив stream: true в запросе. API возвращает данные через Server-Sent Events (SSE), позволяя получать токены в реальном времени. Метрики использования токенов и тарификации включаются в последний чанк потока. Это снижает воспринимаемую задержку для конечных пользователей, особенно для длинных выводов. Потоковая передача рекомендуется для чат-интерфейсов, где немедленный рендеринг текста улучшает пользовательский опыт. Отслеживайте последний чанк для подсчета общего количества токенов, чтобы точно отслеживать предоплаченный баланс.
Ограничения, ошибки и контекст
Каждый API-ключ ограничен 300 запросами в минуту и 8 параллельными запросами. Тело запроса не должно превышать 8 МБ. Распространенные ошибки включают 401 для недействительных ключей, 402 при исчерпании предоплаченного баланса и 429 для лимитов запросов. Контекстное окно поддерживает 100 000 токенов всего, включая промпт и завершение. Если вы превысите эти ограничения, реализуйте экспоненциальное замедление. Баланс не сгорает, а такие ошибки, как двойные списания, обрабатываются на странице Поддержки, гарантируя сохранение предоплаченной стоимости на неопределенный срок.
cURL
curl https://api.unrestrictedai.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."}]
}'Python
from openai import OpenAI
client = OpenAI(base_url="https://api.unrestrictedai.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)Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.unrestrictedai.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);Потоковая передача
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)