1_Configuration

Dotenv configuration

В корневой папке проекта лежит .env.example файл с большинством важных настроек и переменных (он в той же папке, где README.md). Его надо переименовать в .env.

Там есть разделы и переменные, их нужно просмотреть и настроить, где-то приведены ссылки и инструкции прямо там. Нужные комментарии там уже даны, следуйте прямо инструкциям из .env.example при настройке.

Для первого запуска достаточно настроить только НЕОБХОДИМЫЕ переменные, затем можете продолжить на этапе кастомизации.

1. Персонаж и его имена

Имена больше не задаются в .env — они переехали в конфиг персонажа. В .env указывается только, какого персонажа запускать:

NETTYAN_CHARACTER_NAME="Worshiper"

Это имя подпапки в resources/Characters/. Скопируйте Worshiper под своим названием и правьте копию — так эталонный персонаж останется целым.

Сами имена лежат в resources/Characters/<ваш_персонаж>/char_config.yml:

Names:
  Default: Worshiper          # основное имя персонажа
  Minecraft: Worshiper        # игровой ник, под ним он считает сообщения своими
  Aliases:                    # как его ещё зовут в чате — по ним он узнаёт обращение
    - Worshiper
    - Воршипер
    - Поклонник

Socials:
  TwitchChannelName: worshiper

GodUsers:                     # «свои»: вы и сокомандники, их персонаж слушает особо
  - Worshiper
  - SomeGodUser

Поменяйте Names под своего персонажа, а в GodUsers добавьте свой ник. Если канала на Twitch пока нет, TwitchChannelName можно оставить как есть.

2. LLM

Пока пропустим звуковые устройства и настройку STT, к ним можно вернуться на этапе кастомизации.

Настройка LLM моделей и ключей API. Без этого ваш персонаж не сможет работать.

Я рекомендую для теста подключить API ключ Mistral, у него хорошие бесплатные лимиты и работает без сервиса смены интернет-региона, просто регайтесь по РФ номеру.

Название LLM в целом указано, на сайте Mistral есть и другие модели, можете потыкать, особенно если выбивает ошибку лимитов.

CORE_LLM_MODEL_NAME="mistral/pixtral-large-latest"
VISION_LLM_MODEL_NAME="mistral/pixtral-large-latest"
# filter
MistralApiKey=""
MISTRAL_API_KEY = ""
# Codestralcodestral/codestral-latest
# CORE_LLM_MODEL_NAME="codestral/codestral-latest"
CODESTRAL_API_KEY = ""

Если захотите LLM по-мощнее и у вас есть сервис смены интернет-региона, можете подключать других провайдеров, надо просто сменить CORE_LLM_MODEL_NAME на нужный и указать соответствующий API ключ сервиса, всё есть если поскроллить ниже, там я накидал шаблоны разных сервисов, например, гугловский Gemini достаточно стабильный и тоже есть хорошие бесплатные лимиты.

Также есть варик локально запускать LLM если у вас Mac 16G+ или VRAM 8G+, см. программу LM Studio. Нужно запустить программу, скачать LLM, запустить в нём локальный сервер, и в конфиге дать адрес и путь.

Вот инструкция по локальному запуску и подключению LLM: Local LLM. Ещё раз: не хватает ресурсов компа - не лезьте сюда!

3. Распознавание речи (STT)

# "parakeet" (по умолчанию, в Docker) или "fasterwhisper_local"
STT_BACKEND="parakeet"
PARAKEET_API_URL="http://127.0.0.1:22233/v1/audio/transcriptions"
PARAKEET_LANGUAGE="ru"

При parakeet должен быть поднят контейнер из docker-compose.stt.yml. При fasterwhisper_local вместо этого работают FASTER_WHISPER_MODEL_NAME и STT_COMPUTE_DEVICE (cpu или cuda).

4. Синтез речи (TTS)

TTS_ENDPOINT_URL="http://127.0.0.1:22231/"

Один и тот же адрес и для Fish TTS, и для Simple TTS — какой контейнер подняли, тот и отвечает. Пустая строка полностью отключает озвучку.

5. Звуковые устройства

Секция sound devices: указывается полное название устройства вашего виртуального аудиокабеля. Осторожно с направлениями — здесь OUTPUT ведёт себя как микрофон, а INPUT как колонки, в .env.example про это есть пометка.

6. База данных

Логин и пароль PostgreSQL берутся из .env.postgres (шаблон — .env.postgres.example). Значения должны совпадать с теми, что стоят в docker-compose.yml, иначе скрипт не достучится до базы.

7. API площадок

Пока настраивается только Twitch — ключи в соответствующей секции .env.

Финал

Вы завершили Конфигурацию, можете вернуться в содержание и оттуда перейти к ИСПОЛЬЗОВАНИЮ (Usage).