Skip to content

Twitch-стример на базе OpenAI GPT API с профилированием пользователей.

License

Notifications You must be signed in to change notification settings

hiimluck3r/ChatGPTStreamer

Repository files navigation

ChatGPTStreamer [KomutoAI]

enter image description here Twitch-стример, созданный на базе OpenAI GPT-3.5 API с профилированием пользователей из чата.

Зависимости

  • Python 3
  • PyTorch
  • OpenAI
  • Sound Device
  • Transliterate
  • num2words
  • twitch-chat-irc
  • Silero

Установка

Установите все необходимые зависимости и следующие файлы:

  • users_data - достаточно создать пустой каталог в корневом каталоге.
  • .env - сюда вы занесете название своего канала и api-key от OpenAI.
  • backup_trainingdata_messagelist.json - начальные системные установки, которые объясняют GPT контекст диалога.
  • blacklist.txt - список банвордов, которые мы будем цензурить.

Для изменения поведения бота меняйте установки в backup_trainingdata_messagelist.json. Примеры ответов и бэкапа можете найти в users_data.

Структура .env файла

Установите его в корневой каталог.

openai_api_key = #ваш api-ключ openai
token = #если хотите подключить бота на отслеживание сообщений от своего имени
channel = komuto_ai #имя вашего канала на твиче

Принцип работы

Данный бот лишь принимает сообщения из чата и отправляет ответ в виде текста, который впоследствии озвучивается посредством SileroTTS. Для самого стриминга вам нужен OBS или любое другое ПО, которое позволяет стримить на Twitch. Бот может принимать сообщения с Twitch чата и вне стрима.

При получении нового сообщения (установленный лимит для строки - 150 символов, можно изменить в функции check_comment) из чата, содержащего слово "комуто" в любом регистре (меняется там же), бот делает проверку на существование пользователя в users_data.

Если такового пользователя нет, то создаем его в .json и вносим первичные инструкции из backup_trainingdata_messagelist.json.

Впоследствии usernamehere.json будет обновляться и включать в себя сообщения, которые отправил пользователь, а также ответы самого GPT.

В силу лимита на запрос в OpenAI API (4000 для GPT-3.5 и 32000 для GPT-4) может возникнуть переполнение инструкций, в таком случае бот делает следующее:

  1. Переводит имеющийся файл в backup_username.json
  2. Создает новый файл username.json и задает ему исходные инструкции
  3. В username.json вносятся последние два сообщения пользователя и два ответа на них
  4. Далее используется username.json (бэкап можно хранить для памяти/чтобы почитать на досуге)

Субтитры выводятся в следующем формате:

*Сообщение пользователя*?*Ответ GPT*

subs.txt можно использовать как текстовый источник в OBS, обновляется вместе с полученными сообщениями.

About

Twitch-стример на базе OpenAI GPT API с профилированием пользователей.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages