ИИ Собеседник для 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
- Получите приватный ключ для доступа к серверу
- Используя ключ, подключитесь к удаленному серверу с помощью команды:
ssh -i "\путь\к\ключу" <username>@<ip>
- При первом подключении подтвердите свои действия командой
yes
- Установите пакетный менеджер
pip:sudo apt install python3-pip -y
- Если при установке появится окно - нажмите Tab, затем Enter
- Установите утилиту
tmuxдля запуска проекта в фоне:sudo apt install tmux -y
- Если при установке появится окно - нажмите Tab, затем Enter
- Перейдите/создайте и перейдите в директорию, в которой хотите разместить бота на сервере (необязательно)
- Выполните команду клонирования репозитория:
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
- Запустите установленную на 2 шаге утилиту tmux c помощью команды:
tmux
- В новом открывшемся терминале снова запустите бота командой:
python3 bot.py
- Теперь можно закрыть терминал - бот продолжит работу.
Чтобы выключить запущенного через 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