API без фильтров: первый запрос за пять минут
API без фильтров можно попробовать за пять минут, если у вас уже установлен Python. Вам нужен ключ, две изменённые настройки в SDK OpenAI и один запрос. После этого системный промпт и потоковая передача превращают его в чат-бота.

Ключевые моменты
- Наша LLM без цензуры реже отказывает в темах, что делает её идеальной для ролевых игр и творческого письма без неожиданных блокировок контента.
- Цены строго по факту использования: $0,15 за 1 млн входных токенов и $0,50 за 1 млн выходных токенов, без ежемесячных базовых сборов.
- Интеграция беспроблемна, так как API использует стандартные эндпоинты OpenAI, требуя только изменения базового URL.
- Пополнение криптой через USDT или USDC включает бонусный баланс, а промпты никогда не используются для обучения ваших данных.
Минуты 1–2: получение ключа
Перейдите на страницу API-ключа и зарегистрируйтесь через Google или по электронной почте и паролю. После регистрации на странице ключа появится кнопка для получения пробного баланса: $0,50 на человека, срок действия — 7 дней, карта не требуется.
Скопируйте ключ и поместите его в переменную окружения. Ключ в файле, который вы случайно закоммитите, — самый частый способ потерять баланс.
# model ID for later requests: uncensored
export UF_API_KEY="paste-your-key-here"
pip install openaiПробный ключ позволяет выполнять 2 параллельных запроса и 60 запросов в минуту. Этих лимитов достаточно для этого руководства.
Минута 3: первый запрос
Сервис совместим с OpenAI, поэтому официальный SDK работает сразу после изменения base_url и ключа. Идентификатор модели — uncensored.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Give me three names for a cyberpunk bar."}],
)
print(resp.choices[0].message.content)
print("tokens in/out:", resp.usage.prompt_tokens, resp.usage.completion_tokens)Запустите его с помощью python first.py. Список имен и количество токенов означают, что всё работает. Если видите ошибку аутентификации, проверьте переменную. Если соединение не устанавливается, убедитесь, что базовый URL заканчивается на /v1.
Ответ следует формату чата OpenAI: список choices с сообщением, блок usage с количеством токенов и, в этом формате, причина завершения, указывающая, почему генерация остановилась. Ответ, который был обрезан, обычно означает, что значение max_tokens было низким. Что касается стоимости, запрос с 500 входными токенами и 300 выходными токенами стоит $0.000075 + $0.00015 = $0.000225. Пять запросов в этом руководстве стоят в общей сложности около одной десятой цента, поэтому пробный кредит практически не затрачивается.
Минута 4: добавление системного промпта и настроек
Обычный запрос даёт голос помощника по умолчанию. Для чат-бота добавьте системное сообщение, определяющее персонажа, и передайте настройки сэмплирования, подходящие ему.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
raw = client.chat.completions.with_raw_response.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor. Stay in character. Keep replies under 80 words."},
{"role": "user", "content": "Can you get me across the border tonight?"},
],
temperature=0.9,
top_p=0.95,
max_tokens=200,
seed=7,
)
resp = raw.parse()
print(resp.choices[0].message.content)
print("balance:", raw.headers.get("x-balance-usd"))
print("request id:", raw.headers.get("x-request-id"))temperatureиtop_pконтролируют разнообразие. Более высокие значения дают более живой, менее предсказуемый текст.seedупрощает повторение тестов. Он передаётся дальше, поэтому используйте его для сравнения изменений промпта.max_tokensнеобязателен. Без него завершение может использовать оставшуюся часть окна в 100 000 токенов.- Заголовок баланса показывает ваш оставшийся баланс после каждого вызова.
Здесь промпт — это и есть продукт. Держите его кратким и конкретным. Скажите, кто персонаж, как он говорит, в чём история и какой должна быть длина. Всё это помещается в системное сообщение один раз, и вы отправляете его снова с каждым запросом, так как API ничего не помнит между вызовами.
Минута 5: потоковая передача
Потоковая передача выводит текст по мере его генерации. Это изменение в одном слове в запросе, плюс цикл для чтения фрагментов.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
stream = client.chat.completions.create(
model="uncensored",
stream=True,
messages=[
{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor."},
{"role": "user", "content": "Tell me about the worst job you ever took."},
],
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
print()Потоковый запрос занимает один из ваших слотов параллельных запросов до завершения потока. С пробным ключом два открытых потока уже используют все слоты, и третий запрос возвращает HTTP 429 с кодом concurrency. Подождите и попробуйте снова.
Если вы хотите подтвердить использование после потока, последний фрагмент включает блок usage.
Выбирайте значения сэмплирования с планом
Параметры сэмплирования меняют характер бота больше, чем ожидают большинство пользователей. Начните со значений ниже и изменяйте их по одному.
| Цель | Настройка | Почему |
|---|---|---|
| Живое повествование | temperature 0,9–1,0, top_p 0,95 | Больше разнообразия между запусками |
| Последовательный персонаж | temperature 0,6–0,7 | Меньше сюрпризов |
| Повторяемые тесты | seed фиксирован, temperature 0 | Один промпт даёт один тип ответа |
| Меньше повторений | Штраф за частоту или присутствие около 0,3 | Предотвращает зацикливание |
| Обрезка ответа по маркеру | stop со строкой | Останавливает генерацию при появлении маркера |
Параметры temperature и top_p влияют на разнообразие, а штрафы передаются модели. Измените одно значение, запустите один и тот же промпт пять раз и прочитайте пять ответов, прежде чем менять следующий параметр.
Превратите это в диалог
API не хранит историю. Чтобы Rook помнил контекст, ведите список и добавляйте в него обе стороны после каждого хода.
import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
)
messages = [{"role": "system", "content": "You are Rook, a smuggler with a dry sense of humor."}]
def talk(text):
messages.append({"role": "user", "content": text})
r = client.chat.completions.create(model="uncensored", messages=messages)
answer = r.choices[0].message.content
messages.append({"role": "assistant", "content": answer})
return answer
print(talk("Where are we headed?"))
print(talk("And what did I just ask you?"))Второй вопрос работает только потому, что первый обмен включён в список. Именно поэтому стоимость чата растёт с длиной: каждый ход отправляет всё заново. В разделе анализ стоимости и компромиссов этот эффект рассматривается подробно, а на странице тарифов указаны ставки: $0,15 и $0,50 за 1 млн токенов.
Два предупреждения по мере роста списка. Первое — стоимость: длинные истории повышают цену каждого хода. Второе — контекстное окно: 100,000 токенов на промпт и ответ — это много, но ролевая игра, длящаяся неделями, может его исчерпать. Удаляйте самые старые реплики, оставляя системное сообщение, или заменяйте их кратким саммари.
Распространённые проблемы и дальнейшие шаги
| Проблема | Вероятная причина | Исправление |
|---|---|---|
| Ошибка аутентификации | Неверный или пустой ключ | Выведите длину переменной, удалите пробелы |
| Не найдено | В базовом URL отсутствует /v1 | Используйте точный базовый URL с этой страницы |
429 rate_limited | Более 60 запросов в минуту (пробный период) | Уменьшите частоту запросов или используйте полный ключ (300 в минуту) |
429 с Retry-After: 5 | Временная перегрузка | Подождите 5 секунд и повторите попытку |
| Странные или однообразные ответы | Слабый системный промпт | Добавьте голос, сеттинг, ограничение по длине |
Неудачные или отклонённые запросы не оплачиваются. Для дальнейших шагов прочитайте документацию API по инструментам и JSON-режиму. Модель поддерживает только текст, поэтому изображений, аудио или эмбеддингов нет. Пополнение от $20 до $500 криптовалютой (USDT в сети TRC20 или USDC в сети Base), и баланс никогда не истекает. Вы несёте ответственность за доступ только для взрослых и модерацию всего, что вы строите поверх этой модели.
Если проблема не описана в таблице, сведите запрос к минимальному рабочему случаю: одно сообщение пользователя, без системного промпта, без дополнительных параметров. Затем постепенно добавляйте параметры, пока ошибка не появится. Почти все проблемы при первой интеграции возникают из-за опечатки в URL, ключа с пробелом в конце или неверной структуры списка messages.
Обработка ошибок в коде
Скрипт, работающий один раз, — это не бот. Добавьте повторную попытку для случаев, когда API указывает ждать.
import os, time
from openai import OpenAI, RateLimitError
client = OpenAI(
base_url="https://api.chatbotunfiltered.com/v1",
api_key=os.environ["UF_API_KEY"],
max_retries=0,
)
def ask(messages, tries=4):
for i in range(tries):
try:
r = client.chat.completions.create(model="uncensored", messages=messages)
return r.choices[0].message.content
except RateLimitError:
time.sleep(5 * (i + 1))
raise RuntimeError("still rate limited after retries")SDK генерирует RateLimitError при HTTP 429. При временной перегрузке API возвращает заголовок Retry-After: 5, поэтому подождать пять секунд — правильный первый шаг. При повторяющихся ошибках concurrency ставьте запросы в очередь на своей стороне, а не ускоряйте повторные попытки.
Дополнительные руководства
Часто задаваемые вопросы
Является ли API чат-бота без фильтров тем же, что и API OpenAI?
Протокол одинаковый, поэтому SDK OpenAI работает. Модель другая: модель с открытыми весами от независимого провайдера, настроенная на ответы без отказов по контенту для законного использования взрослыми.
Какой базовый URL и модель использовать?
Базовый URL https://api.chatbotunfiltered.com/v1 и идентификатор модели uncensored.
Нужно ли платить, чтобы попробовать?
Нет. Пробный баланс $0,50 не требует данных для оплаты. Платные пополнения только криптовалютой.
Можно ли использовать потоковую передачу?
Да. Установите stream в true. Потоковый запрос занимает слот параллельных запросов до завершения потока.
Как посмотреть баланс?
Прочитайте заголовок X-Balance-USD в любом ответе или вызовите GET /v1/balance.
Получите API-ключ мгновенно
Зарегистрируйтесь, скопируйте ключ, обновите базовый URL. Настройка завершена.