Skip to content

ИИ Собеседник для telegram на python с SpeechKit

License

Notifications You must be signed in to change notification settings

karukador/SPEECHKIT_BOT

Repository files navigation

ИИ Собеседник для telegram на python с SpeechKit

Алгоритм работы бота:

  • бот принимает текстовое или голосовое сообщение
  • если получен текст, он отправляется в качестве промта в YandexGPT
  • если получено голосовое сообщение:
  • оно расшифровывается в текст с помощью SpeechKit
  • бот отправляет текст в качестве запроса в YandexGPT
  • сгенерированный YandexGPT ответ бот направит в SpeechKit для превращения текста в голос
  • бот присылает пользователю ответ в том же формате, в котором пользователь присылал запрос: текст в ответ на текст, голос в ответ на голос

Файлы папки проекта

  • bot.py — код бота
  • database.py — код для работы с базой данных
  • speechkit.py — код для работы со SpeechKit
  • yandex_gpt.py — код для работы с Yandex GPT
  • validators.py — функции для проверки лимитов
  • config.py — файл для хранения полезных констант проекта
  • creds.py — файл для хранения данных учётной записи
  • text.py — файл с текстовыми сообщениями бота
  • requirements.txt — файл с зависимостями
  • README.md — описание и инструкция к проекту

Размещение бота на сервере

Что вам понадобится:

  • Приватный SSH ключ
  • Имя пользователя сервера
  • IP сервера
  • Ссылка для клонирования бота, в данном случае: git clone https://github.com/karukador/SPEECHKIT_BOT

Шаг 1. Подключение к удаленному серверу

  • Получите приватный ключ для доступа к серверу
  • Используя ключ, подключитесь к удаленному серверу с помощью команды:
    ssh -i "\путь\к\ключу" <username>@<ip>
  • При первом подключении подтвердите свои действия командой yes

Шаг 2. Подготовка сервера к запуску проекта

  • Установите пакетный менеджер pip:
    sudo apt install python3-pip -y
  • Если при установке появится окно - нажмите Tab, затем Enter
  • Установите утилиту tmux для запуска проекта в фоне:
    sudo apt install tmux -y
  • Если при установке появится окно - нажмите Tab, затем Enter

Шаг 3. Установка и запуск бота на сервере

  • Перейдите/создайте и перейдите в директорию, в которой хотите разместить бота на сервере (необязательно)
  • Выполните команду клонирования репозитория:
    git clone https://github.com/karukador/SPEECHKIT_BOT
  • Перейдите в склонированный проект командой:
    cd SPEECHKIT_BOT
  • Установите все необходимые библиотеки с помощью pip и нашего файлика requirements.txt:
    pip install -r requirements.txt
  • Перейдите в папку creds:
    cd creds
  • Зайдите в файл folder_id.txt:
    nano folder_id.txt  
  • В открытом окне запишите ваш folder id
  • Выйдите, используя сочетание клавиш CTRL+X
  • Для подтверждения изменений нажмите y
  • Повторите аналогичные действия для файла bot_token.txt
  • Запустите бота командой:
    python3 bot.py  
  • Такой запуск продлится до закрытия терминала
  • Остановите бота сочетанием клавиш CTRL+C

Шаг 4. Запуск бота в фоне с помощью tmux

  • Запустите установленную на 2 шаге утилиту tmux c помощью команды:
    tmux
  • В новом открывшемся терминале снова запустите бота командой:
    python3 bot.py
  • Теперь можно закрыть терминал - бот продолжит работу.

Шаг 5. Остановка бота запущенного с помощью tmux

Чтобы выключить запущенного через tmux бота, нужно заново подключиться по ssh к удалённой машине и выполнить команду

tmux ls

Она выведет все активные запуски tmux, например:

0: 1 windows (created Sun Jan 21 20:31:54 2024)
  • Эта запись показывает, во сколько был запущен бот. После этого можно выполнить команду, чтобы выключить бота с заданным номером:
tmux kill-session -t <номер_бота>
  • Если был запущен только один бот, то его выключит команда:
tmux kill-session -t 0

About

ИИ Собеседник для telegram на python с SpeechKit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages