NoassTavern

Ссылка на актуальную версию

https://tavernikof.github.io/NoAssTavern/
Github: https://github.com/Tavernikof/NoAssTavern

Что это?

Это новый фронтенд, вдохновленный глупой таверной, но заточенный чисто под безжоп. Основная мотивация - исправить то что плохо сделано в таверне и добавить новый функционал. Для работы не нужен бекенд, поэтому запускается чисто через браузер (есть некоторые ограничения, об этом ниже).
На данный момент это очень сырая версия и подходит для тех, кто умеет в редактирование пресетов или хотя бы на базовом уровне понимает, как работает лоботомит. Хотя покумить уже можно и сейчас, базовые настройки в наличии

Основные отличия:

  • НОДЫ. Да-да, ты не ослышался, влажная мечта уже здесь
  • Жирные чаты. Ближайший аналог FatPresets, но без ограничений таверны. Внутри чата хранится история сообщений, информация о всех персонажах и настройки пресета. (настройки прокси остаются глобальными и не хранятся вместе с чатом).
  • Редактор промптов. Позволяет более очевидно контролировать, что уйдет в запросе

Что умеет на данный момент:

  • Базовые вещи: карточки персонажей, персоны, чаты, пресеты, прокси
  • Бекенды: Клод, Гемини, OpenAI (в теории должно поддерживаться все совместимые)
  • Внешние блоки

Что НЕ умеет на данный момент:

  • Мобильная версия
  • Саммари (силлипидор не украдет твой саммари, если его нет)
  • Лорбуки
  • Регексовская магия
  • Плагины и темы

Как начать

Окей, для начала потребуется некоторые базовые настройки:

  1. Добавить настройки подключения.

Не бойся, твой токен никто не украдет, все хранится в браузере

  1. Добавить карточки персонажей и персоны
    Персоны больше не нужны. Вместо этого создавай свою карточку прямо тут.

Для карточек, которые будут использоваться как персоны, в описании все равно надо указывать {{char}}

  1. Создать чат

  1. Готово, вы восхитительны!

В любой момент можно добавить/удалить участников, изменить настройки промптов.
!Внимание! если стереть сохраненную в чате карточку (которая отмечена пометкой current), то она удалится без возможности восстановления

(1) В блоке настройки персон отображаются все добавленные в данный момент карточки. Галочки отвечают за активность карточек. Иконкой отмечена карточка текущего юзера.

Confusing moment

Для карточки юзера действуют особые правила в отношении переменных. При ее обработке автоматически заменяются {{char}} > {{user}} и {{description}} > {{persona}}.
Если в карточке персонажа написано что-то вроде {{char}} hates {{user}}, то{{char}} всегда будет указывать на имя карточки, а {{user}} на другую карточку.

(2) Impersonate - маленький хелпер, который позволяет быстро сменить префксс юзера и стоп-стринги. Удобно если хочется быстро написать какое-то сообщение за другого персонажа, не пердолясь с настройками карточки
(3) Рычаги - прямо как в таверне. (Одна из немногих вещей, которая была сразу хорошо сделана)

Настройки генерации

В основе генерации лежит нодовый интерфейс. По умолчанию существуют 3 процесса, каждый из них запускается, при определенных действиях:

  1. Main. Нажатие кнопки "отправить" на последнем сообщение юзера
  2. Generate. Создание нового свайпа
  3. Translate. После редактирования сообщения
  4. Дополнительно можно создать любое количество процессов, все они будут работать как внешние блоки

Ноды


На данный момент существует всего 4 вида нод. Вот они слева направо:

  1. Create message. Создает пустое сообщение с указанной ролью
  2. Generate. Запускает генерацию с выбранным промптом на последней выбранной ноде. По умолчанию генерация происходит для выбранного сообщения, но если в процессе создаются новые сообщения через Create message, то все последующие манипуляции будут происзодиться с последним созданным сообщением.
  3. Translate. Переводит сообщение на нужный язык через я.переводчик. Чекбокс "Overwrite original message" нужен для обработки флоу: пишешь сообщение на русском - нажимаешь отправить - русское сообщение переводится на английский и подставляется вместо русского. Короче поведение аналогично таверне.
  4. Run scheme. Запускает другой процесс из текущего. Берегись лупов, защиты от дурака нет

Промпты

За основу взят пресет соляночника и адаптирован под нужный формат https://rentry.co/noass4anon2

Низкий поклон и поцелуй в пузико

Можно попробовать импортировать пресет из таверны, но функционал работает криво и подходит только как отправная точка, чтобы не копировать тексты руками

Промпты представляют из себя совокупность 3 сущностей из таверны: пресет + апи + прокси.
Редактор промптов максимально приближен к тому, как формируется запрос в апи:

  • Редактор разбит на сообщения. Каждое сообщение будет преобразовано в сообщение в апи, если оно не пустое.
  • Внутри редактора можно выделять текст в отдельные блоки, которые используются как "рычаги" в чате. Если текст не выделен в блок, то он всегда будет добавлен
  • Для динамического контента работают переменные, их поведение аналогично таверне

Переменные

Переменная Описание
{{user}} Имя юзера
{{persona}} Описание юзера
{{char}} Имя персонажа
{{description}} Описание персонажа
{{scenario}} Сценарий
{{personality}} Персона (хз кому оно вообще надо)
{{history}} История сообщений<br/>asd
{{external}} Внешний блок
{{lastUserMessage}} Последнее сообщение юзера
{{random}} Случайное значение из списка

Confusing moment #2

Если в чате несколько карточек персонажей, то {{char}} и {{description}} можно использовать с аргументами, чтобы обратиться к конкретной карточке, например {{char:1}}, индексы начинаются от 1 и карточка юзера учитывается в нумерации.

Использование history отличается от таверны. Задавая аргументы, можно брать диапазон сообщений, таким образом можно делать аналог in-chat блоков с глубиной. Пара примеров:
{{history}} - все сообщения
{{history:1:10}} {{history::10}} - последние 10 сообщений
{{history:11}} - все сообщения начиная с 11
{{history:7:10}} - последние 4 сообщения начиная с 7

Полный пример. Делаем аналог current_info на глубине 7:

1
2
3
{{history:8}} // Все остальные сообщения
{{external:current_info}} // Внешний блок
{{history:1:7}} // Последние 7 сообщений

Ограничения

  • Нет бекенда и хранение всей инфы происходит в браузере. Из-за этого что-то может пропадать, если на девайсе мало свободного места. В планах добавить импорт/экспорт и синхронизацию с облачными хранилищами (все лежит в IndexedDB со всеми вытекающими последствиями)
  • Запросы к прокси идут напрямую из браузера и из-за этого могут не работать некоторые прокси и не работает google translate, вместо него для переводов используется яндекс (чертовы CORS, можно решить через прокси типо CORS Anywhere, но гонять прокси через прокси другой прокси - отдельный вид извращений)

Контакты

Не стесняйся заводить ишью и слать ПР если ты КОДЕР
Github: https://github.com/Tavernikof/NoAssTavern
Почта: sick_kind@proton.me

Edit
Pub: 13 Jul 2025 22:11 UTC
Edit: 24 Jul 2025 22:37 UTC
Views: 174