RU ▾
Получить API-ключ

Лучшая Abliterated LLM для ролевой игры: руководство по настройке API

Abliterated — это большие языковые модели, в которых убраны механизмы отказа, что позволяет модели отвечать на вопросы по спорным, взрослым или узкоспециализированным темам без срабатывания фильтра контента. Такой подход даёт разработчикам полный контроль над тоном и границей знаний модели, что особенно ценно для программирования, ролевых игр и креативного письма, где стандартные ограничения могут блокировать полезный вывод.

Сцена с масками и светящимися пузырями чата, подключенными к терминалу кода, представляющая ролевую игру через API

Ключевые моменты

  • Ролевая игра ломается, когда модель отказывается или читает лекцию прямо во время сцены, поэтому поведение при отказе важнее сырых показателей бенчмарков.
  • Окно на 100 000 токенов вмещает длинную карточку персонажа плюс часы истории чата.
  • SillyTavern подключается через свой пользовательский источник, совместимый с OpenAI, с базовым URL, ключом и идентификатором модели uncensored.
  • Сессия из 50 ходов со средним промптом на 6 000 токенов стоит около $0,05.

Что делает модель хорошей для ролевой игры

Ролевая игра — сложное испытание для языковой модели. Ей нужно удерживать голос на протяжении сотен сообщений, помнить события трёх сцен назад, оставаться в характере, когда сюжет становится мрачным, и никогда не выходить из роли, чтобы объяснить себя. Стандартная модель-помощник чаще всего терпит неудачу в последнем пункте. Она пишет хороший абзац, а затем добавляет оговорку или отказывается от сюжетного поворота, который является простой выдумкой.

Abliterated-модель или модель без цензуры настроена на устранение этих отказов. Это помогает, но это лишь одна из пяти черт, на которые стоит обратить внимание, прежде чем выбрать поставщика:

  • Поведение при отказе. Следует ли она диалогу злодея или морально серой сцене без комментариев?
  • Длина контекста. Поместятся ли карточка персонажа, заметки о мире и история чата в один запрос?
  • Последовательность. Сохраняет ли персонаж одни и те же речевые привычки в течение долгой сессии?
  • Контроль сэмплирования. Можете ли вы изменить температуру, top_p, штрафы и стоп-последовательности?
  • Потоковая передача. Появляется ли текст токен за токеном, чтобы ответ ощущался как разговор?

Никто не может честно назвать одного победителя для каждого стиля истории. Важен вкус, и два писателя будут по-разному оценивать одну и ту же модель. Практичный ответ — прогнать свои сцены через кандидата и оценить результат самостоятельно.

Что этот API даёт для ролевой игры

Сервис использует одну модель с открытыми весами, размещенную независимым поставщиком и настроенную на ответы без отказов в контенте для законного использования взрослыми. Идентификатор модели — uncensored. Нет маршрутизации между поставщиками, поэтому голос, который вы протестировали в понедельник, — это тот же голос, который вы получите в пятницу.

Потребность в ролевой игреЧто вы получаете
Долгая память100 000 токенов контекста, промпт плюс завершение
Эффект живого набораПотоковая передача по SSE с stream: true
Контроль стилятемпература, top_p, стоп, сид и оба штрафа передаются
Поддержка клиентовСовместимо с OpenAI, поэтому SillyTavern и аналогичные инструменты работают при изменении URL
КонфиденциальностьПромпты не используются для обучения

Действует одно жёсткое ограничение, которое не подлежит обсуждению: запрет на сексуальный контент с участием несовершеннолетних. Держите ваших персонажей и сценарии в рамках законного использования для взрослых. Подробности о семействе моделей доступны на странице моделей abliterated.

Подключение SillyTavern за пять шагов

SillyTavern может общаться с любым эндпоинтом, совместимым с OpenAI. Метки меню немного меняются между версиями, но поток тот же.

  1. Создайте аккаунт и получите ключ на странице API-ключ. Новые пользователи могут получить $0,50 пробного баланса одним кликом, сроком на 7 дней, без привязки карты.
  2. В SillyTavern откройте значок плагина (API Connections) и установите тип API в Chat Completion.
  3. Выберите источник Custom (OpenAI-compatible).
  4. Введите https://api.abliterated.cc/v1 как URL эндпоинта и вставьте свой ключ в поле API key.
  5. Введите uncensored как идентификатор модели, затем нажмите Connect. Зеленый статус означает, что запрос к /v1/models выполнен успешно.

Если подключение не удалось, сначала проверьте URL. Он должен заканчиваться на /v1 без дополнительного пути и без дополнительного /chat/completions. Клиент добавляет эту часть сам.

Рекомендуемые начальные настройки

Температура от 0,8 до 1,0 дает живой стиль письма. Держите top_p около 0,9. Добавьте небольшой штраф за частоту, около 0,2, если ответы начинают повторять одни и те же фразы. Установите размер контекста, близкий к реальному окну, но оставьте место для ответа. Затем настройте на ощупь после нескольких сцен.

Создание собственного цикла ролевых игр на Python

Если вы пишете собственный интерфейс или бота Discord, SDK OpenAI достаточно. Этот скрипт сохраняет полную историю, потоково передает ответ и предотвращает написание моделью ваших строк за вас.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.abliterated.cc/v1",
    api_key="YOUR_KEY",
)

system = (
    "You are Mara, a smuggler captain in a sea-faring fantasy setting. "
    "Write in third person, past tense, two short paragraphs per reply. "
    "Never write the actions or words of the player character."
)
history = [{"role": "system", "content": system}]

while True:
    user = input("> ")
    history.append({"role": "user", "content": user})

    stream = client.chat.completions.create(
        model="uncensored",
        messages=history,
        temperature=0.9,
        top_p=0.9,
        frequency_penalty=0.2,
        stop=["\nPlayer:"],
        stream=True,
    )
    reply = ""
    for chunk in stream:
        if chunk.choices and chunk.choices[0].delta.content:
            piece = chunk.choices[0].delta.content
            reply += piece
            print(piece, end="", flush=True)
    print()
    history.append({"role": "assistant", "content": reply})

Этот же вызов работает из Node, curl или любого другого клиента OpenAI. Меняются только базовый URL, ключ и идентификатор модели. Быстрый старт в документации показывает каждый вариант.

Написание карточки персонажа, которой может следовать модель

Большинство проблем качества ролевых игр — это проблемы промптов. Размытая карточка создает размытого персонажа. Хорошая карточка укладывается в 300–600 токенов и охватывает четыре вещи: кто такой персонаж, как он говорит, чего он хочет прямо сейчас и чего он никогда не должен делать.

Конкретика побеждает поэтичность. Сравните «Мара загадочна и опасна» с «Мара отвечает на вопросы вопросами, никогда не называет свое настоящее имя незнакомцам и держит одну руку рядом с ножом, когда кто-то стоит за ней». Вторая строка дает модели поведение, которое она может воспроизвести на каждом ходу.

  • Образец голоса. Добавьте две-три строки примерного диалога. Модели надежнее имитируют ритм и словарный запас из примеров, чем из прилагательных.
  • Правила формата. Укажите лицо, время, длину и следует ли использовать звездочки для действий. Модели теряют форматирование, если им не сказать об этом один раз четко.
  • Состояние сцены. Поместите текущее место, время и открытые нити в конец промпта, где недавняя информация имеет наибольшее влияние.
  • Границы. Если в истории участвуют только взрослые, укажите это в карточке. Фраза вроде «все персонажи — взрослые» делает сеттинг однозначным для вас и для всех, кто читает логи.

Исправление плоских, зацикленных или навязчивых персонажей

Эти проблемы обычно проявляются после первого часа, и вот как их исправить.

Персонаж повторяется

Фразы возвращаются каждые несколько ответов. Установите frequency_penalty на 0,3 и presence_penalty на 0,1, немного увеличьте температуру на 0,1 и проверьте, не содержит ли ваш рекап или пример диалога эту фразу. Модель копирует то, что видит.

Ответы становятся всё длиннее

Длинные ответы обучают модель тому, что длинные ответы — это норма. Удалите несколько из них из истории, повторно укажите правило длины и установите max_tokens на допустимый предел. Поле необязательное, поэтому оно работает как ограничение только при его задании.

Модель решает, что делает ваш персонаж

Добавьте жёсткое правило в системное сообщение и последовательность остановки для префикса имени вашего персонажа, как в скрипте выше. Если вы используете фронтенд, убедитесь, что он форматирует историю с теми же тегами имени.

История замирает

Дайте персонажу цель и дедлайн. «Ей нужна карта, пока не переменится прилив» создаёт движение. Персонаж, которому ничего не нужно, ждёт ваших действий, и сцена провисает.

Сохранение связности длинных историй

Окно в 100 000 токенов велико, но многомесячная кампания его превысит. Подумайте об этом заранее.

  • Закрепите главное. Держите карточку персонажа и текущую цель сцены в начале системного сообщения, где они никогда не будут обрезаны.
  • Резюмируйте старые ходы. Каждые 30–40 сообщений просите модель сжать самую старую часть чата в краткий рекап, а затем замените эти сообщения рекапом.
  • Используйте список лора. Храните имена, места и обещания в коротком блоке, который обновляете каждый ход. Модели чаще забывают мелкую деталь из 80 сообщений назад, чем факт, указанный в последнем промпте.
  • Используйте seed при отладке. Когда вы меняете промпт, фиксированный seed делает сравнение более корректным.

Частая ошибка: модель говорит за вашего персонажа. Исправьте это в системном промпте прямым правилом и подкрепите последовательностью остановки, как указано выше. Ещё одна проблема: каждый ответ начинается одинаково. Немного повысьте температуру и добавьте частотное ограничение.

Стоимость сессии

Тарифы: $0,15 за 1 млн входных токенов и $0,50 за 1 млн выходных токенов, оплата с предоплаченного баланса. Ролевая игра требует много входных данных, так как на каждом ходу отправляется вся история, поэтому входная сторона доминирует.

Возьмём сессию на 50 ходов. Средний промпт содержит 6 000 токенов (карточка персонажа плюс история), а каждый ответ составляет около 250 токенов.

  • Входные данные: 50 x 6 000 = 300 000 токенов, что составляет 0,3 x $0,15 = $0,045
  • Выходные данные: 50 x 250 = 12 500 токенов, что составляет 0,0125 x $0,50 = $0,00625
  • Итого: $0,05125, примерно пять центов

Пополнение на $20 покрывает примерно 390 сессий такого размера. Пополнения принимаются от $20 до $500 целыми суммами, с бонусом +5% от $50, +10% от $100 и +15% от $200. Баланс не сгорает, а за неудачные или отклонённые запросы не списываются средства. Вы можете оплатить криптовалютой (USDT в сети TRC20, USDC в сети Base). Полная информация на странице с ценами.

Вопросы и ответы

Существует ли единственная лучшая abliterated LLM для ролевых игр?

Нет. Предпочтения различаются в зависимости от жанра и стиля письма. Протестируйте кандидата в своих сценах, используя пробный баланс $0,50, прежде чем принять решение.

Можно ли использовать его с SillyTavern?

Да. Выберите Chat Completion, затем источник Custom (OpenAI-compatible), введите базовый URL и ваш ключ, а в качестве идентификатора модели укажите uncensored.

Разрешает ли он любой контент?

Модель настроена на ответы без отказов по контенту для законного использования взрослыми. Сексуальный контент с участием несовершеннолетних всегда запрещён.

Сколько истории я могу отправить?

Контекстное окно составляет 100 000 токенов, которые делятся между промптом и завершением.

Ваш ключ — всего в одной форме

Создайте аккаунт, скопируйте ключ, измените базовый URL. Это вся настройка.