ИИ без цензуры для разработчиков: создавайте без отказов
ИИ без цензуры для разработчиков переносит правила контента из модели в ваше приложение. Это дает свободу и возлагает на вас задачу писать и применять эти правила.
Последнее обновление

Ключевые факты
- Пишите правила вашего продукта в системном промпте и проверяйте их в коде.
- Добавьте собственные проверки ввода и вывода, так как модель не сделает всё за вас.
- Сохраняйте идентификаторы запросов, количество токенов и хешированный идентификатор пользователя, а не полные разговоры, если они вам не нужны.
- Вы несете ответственность за своих пользователей и вашу юрисдикцию. Сексуальный контент с участием несовершеннолетних никогда не разрешается.
Что меняется, когда модель перестает отказывать
С обычным помощником поставщик решает, что приемлемо, а модель отказывает в остальном. С моделью без цензуры, настроенной на ответы без отказов по контенту для законного использования взрослыми, этот слой исчезает. ИИ без цензуры для разработчиков полезен для инструментов для фантастики, приложений-компаньонов, исследований поведения моделей и любых продуктов, где обычные отказы мешают законной работе.
То, что заменяет фильтр поставщика, — это ваш собственный дизайн. Вы решаете, кто может использовать приложение, что может писать модель и что делать, если что-то пошло не так. Эта статья охватывает четыре части этой работы: системный промпт, слой модерации, логирование и ваши обязанности.
Начните с системного промпта, который определяет правила
Системный промпт — ваше первое и самое дешевое средство контроля. Пишите его как короткую политику, простыми предложениями, и сохраняйте его стабильным между релизами, чтобы поведение было легко предсказать.
- Роль и контекст. Кто такой ассистент и для чего предназначен продукт.
- Аудитория. Укажите, что все пользователи и все персонажи — взрослые.
- Границы. Перечислите, что помощник не должен писать в вашем продукте, например контент с участием несовершеннолетних, реальных частных лиц или инструкции по причинению вреда другим.
- Формат. Длина, тон, язык, что делать, если задали вопрос вне темы.
SYSTEM = '''You are the narrator of an interactive fiction app for adult readers.
All characters are adults. Never write sexual content involving minors.
Do not write about real, named private individuals.
If a request is outside the story, say so briefly and return to the scene.
Keep replies under 200 words.'''
Системный промпт — это руководство, а не гарантия. Модель может отклоняться, а пользователи могут давить на неё. Именно поэтому существует следующий слой.
Постройте слой модерации вокруг модели
Проверяйте текст дважды: до отправки в модель и после получения ответа. Дешёвые правила отлавливают очевидные случаи, а второй вызов модели может оценить спорные моменты. JSON-режим позволяет легко распарсить результат.
import json
from openai import OpenAI
client = OpenAI(base_url="https://api.bestuncensored.com/v1", api_key="YOUR_KEY")
BLOCKLIST = ["example banned phrase"] # your own rules
JUDGE = '''Classify the text. Reply with JSON: {"verdict": "allow" or "block", "reason": "short"}.
Block if it sexualizes anyone under 18, or asks for real-world harm.'''
def judge(text):
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "system", "content": JUDGE}, {"role": "user", "content": text}],
response_format={"type": "json_object"},
temperature=0,
)
return json.loads(r.choices[0].message.content)
def safe_reply(user_text, system):
low = user_text.lower()
if any(b in low for b in BLOCKLIST) or judge(user_text)["verdict"] == "block":
return "That request is outside what this app allows."
r = client.chat.completions.create(
model="uncensored",
messages=[{"role": "system", "content": system}, {"role": "user", "content": user_text}],
)
out = r.choices[0].message.content
if judge(out)["verdict"] == "block":
return "That reply was withheld by the app's content rules."
return out
Судья использует токены так же, как и любой другой запрос: по цене $0,15 за 1 000 000 входных токенов и $0,50 за 1 000 000 выходных токенов, проверка на 300 токенов с вердиктом в 20 токенов стоит 300 × $0,15 / 1 000 000 + 20 × $0,50 / 1 000 000 = $0,000045 + $0,00001 = $0,000055. Две проверки на сообщение добавляют $0,00011, что незначительно по сравнению с ответом. Ни один фильтр не идеален, поэтому оставьте кнопку жалобы и проверяйте отмеченные элементы.
Логирование без накопления
Вам нужны логи для отладки, обработки жалоб на злоупотребления и контроля расходов. Вам не нужны все разговоры в открытом тексте, и их хранение создает риски для вас и ваших пользователей. Промпты, отправленные в этот API, не используются для обучения, но ваши собственные логи — ваша собственная ответственность.
Разумным умолчанием будет логгирование метаданных: время, хэшированный ID пользователя, заголовок ответа X-Request-Id, подсчёт токенов и результат модерации. Храните полный текст только для отмеченных элементов, с коротким сроком хранения.
import hashlib, logging
log = logging.getLogger("llm")
def logged_call(user_id, messages):
raw = client.chat.completions.with_raw_response.create(
model="uncensored", messages=messages
)
resp = raw.parse()
log.info(
"user=%s req=%s in=%s out=%s balance=%s",
hashlib.sha256(user_id.encode()).hexdigest()[:12],
raw.headers.get("x-request-id"),
resp.usage.prompt_tokens,
resp.usage.completion_tokens,
raw.headers.get("x-balance-usd"),
)
return resp.choices[0].message.content
Идентификатор запроса — это то, что вы указываете, если когда-либо свяжетесь со поддержкой по поводу конкретного вызова.
Обязанности, которые вы сохраняете
Это общая информация, а не юридическая консультация. Поговорите с юристом о вашем конкретном случае. Эти пункты применимы к большинству продуктов, построенных на модели без цензуры:
- Твёрдая линия. Сексуальный контент с участием несовершеннолетних строго запрещён на этом сервисе, и никакая системная инструкция не изменит этого правила. Проведите эту черту и в вашем продукте.
- Проверка возраста. Если ваш продукт содержит материалы для взрослых, проверяйте или ограничивайте доступ по возрасту в соответствии с тем, где вы работаете.
- Местное законодательство. Правила в отношении контента для взрослых, защиты данных и учёта записей различаются в разных странах и штатах. Они касаются вас и ваших пользователей, где бы ни работал API.
- Условия и конфиденциальность. Опубликуйте свои собственные условия и уведомление о конфиденциальности. Прочитайте и условия провайдера: условия и конфиденциальность.
- Ключи. Храните API-ключи на своем сервере, никогда в браузере или в сборке приложения.
Злоупотребления, жалобы и ваши собственные лимиты
Когда придут реальные пользователи, некоторые попробуют протолкнуть продукт за пределы ваших правил. Планируйте это с первого дня.
- Лимиты на пользователя. Ограничьте количество сообщений в день и запросов в минуту на один аккаунт. Это защитит ваш бюджет и замедлит автоматические злоупотребления. Ваши собственные лимиты должны быть ниже лимитов API: полный ключ позволяет 300 запросов в минуту на всех пользователей.
- Кнопка жалобы. Дайте пользователям возможность отметить ответ. Сохраняйте ID запроса и текст отмеченного диалога и проверяйте очередь по расписанию.
- Эскалация. Решите заранее, что происходит после повторных нарушений: предупреждение, временная блокировка, бан. Напишите это в своих условиях.
- Гигиена ключей. После пополнения аккаунта вы можете создать до 5 именованных ключей, поэтому используйте по одному на каждую среду. Никогда не передавайте ключ в клиентском коде. Сгенерируйте новый ключ на странице ключей, если он мог быть скомпрометирован; старый ключ перестаёт работать сразу.
Ваша очередь также покажет, где слаба системная инструкция. Когда один и тот же тип отмеченного вывода появляется три раза, измените промпт или фильтр, затем запустите набор тестов заново, чтобы убедиться, что ничего не сломалось. Относитесь к промптам как к коду: храните их в системе контроля версий и фиксируйте, для чего было внесено каждое изменение.
Планируйте лимиты и сбои
В продакшен-коде нужен backoff (экспоненциальная задержка повторов). Полный ключ позволяет 8 параллельных запросов и 300 запросов в минуту. При превышении лимита API возвращает HTTP 429 с кодом rate_limited или concurrency, а при временной перегрузке — 429 с заголовком Retry-After: 5. Соблюдайте этот заголовок. Если вы делаете вызов модели-судьи и вызов ответа на каждое сообщение, оба они учитываются в лимитах, поэтому настраивайте очередь с учётом удвоенного количества запросов.
Неудачные или отклонённые запросы не тарифицируются, поэтому повторные попытки при ошибках ничего не стоят. В документации перечислены параметры, а всё можно опробовать с помощью бесплатного пробного баланса со страницы API-ключа. По опциям в этом сегменте см. сравнение вариантов ИИ без цензуры.
Проверка перед запуском
До прихода реальных пользователей пройдите один сценарий как атакующий. Попробуйте заставить приложение произвести что-то, что ваши правила запрещают, спрашивая напрямую, через ролевую игру, разбивая запрос на несколько ходов и вставляя текст, содержащий инструкции. Запишите, что проскочило, и исправьте это на правильном слое.
- Если модель игнорирует правило в системном промпте, уточните формулировку и добавьте проверку в коде.
- Если проверка блокирует слишком много законного контента, ослабьте правило или добавьте путь разрешения и измерьте частоту ложных блокировок на выборке реальных промптов.
- Если проблема проявляется только в длинных чатах, тестируйте с полной историей, поскольку правила размываются по мере роста контекста. Контекстное окно на 100 000 токенов даёт возможность держать правила в начале и повторять короткое напоминание в конце.
Повторяйте этот обзор всякий раз, когда вы меняете промпт, фильтр или настройку модели. Храните тестовые случаи в файле и запускайте их как автоматическую проверку, чтобы изменение, которое нарушает правило, приводило к сбою до выпуска.
Дополнительные руководства
Технический FAQ
Получите ваш API-ключ
Зарегистрируйтесь, получите ключ и обновите URL эндпоинта. Просто.
Убирает ли модель без цензуры необходимость в модерации?
- Нет. Она убирает отказы вендора, так что правила становятся вашими. Добавьте правила системного промпта и проверки ввода и вывода, которые подходят для вашего продукта.
Могу ли я использовать второй вызов модели как фильтр?
- Да. Используйте JSON-режим с короткой инструкцией и низкой температурой и разберите вердикт. Каждая проверка стоит небольшое количество токенов.
Используются ли мои промпты для обучения?
- Нет. Промпты не используются для обучения.
Что никогда не разрешено?
- Сексуальный контент с участием несовершеннолетних. Сервис предназначен для законного использования взрослыми.
Нужно ли сохранять полные разговоры?
- Только если у вас есть четкая причина. Метаданных, таких как ID запроса и количество токенов, обычно достаточно, а полный текст сохраняется только для отмеченных элементов.