Телеграм-бот для демонстрации сервисов Yandex Cloud AI Studio
https://github.com/all-mute/yc-ai-tg-demo
Описание
Этот проект представляет собой Telegram-бота, который позволяет использовать сервисы Yandex Cloud:
-
Search API Generative answer - сервис получения ответов на вопросы по документам, размещенным в интернете
-
AI Assistants - сервис для создания и использования AI-ассистентов с возможностью получения ответов на вопросы по внутренним приматным документам (На скрине для примера используется книга "Республика" Платона)
через интерфейс телеграм-бота. Требуется предвартельная настройка.
Описание команд
/start
- Начинает работу с ботом и приветствует пользователя./help
- Предоставляет информацию о возможностях бота и его командах./searchapi
- Выполняет поиск через Search API. Пользователь должен ввести запрос после команды./searchapi_contextual
- Выполняет поиск через Search API с учетом контекста текущего треда и записью в негг. Пользователь должен ввести запрос после команды./new_thread
- Создает новый поток для чата, позволяя пользователю начать новый разговор с ботом.
Примеры взаимодействия с ботом:
До начала установки
- Зарегистрируйте бота в Telegram BotFather и получите токен. (вве дите команду
/newbot
и следуйте инструкциям) - Зарегистрируйтесь в Yandex Cloud и создайте сервисный аккаунт с ролями
ai.assistant.editor
,ai.languageModels.user
иsearch-api.executor
. как это сделать? как это сделать (2)? - Получите API ключ и идентификатор папки в Yandex Cloud. как это сделать?
- Убедитесь, что у вас установлен Python 3.10 или выше. как это сделать?
- (Не обязательно) Убедитесь, что у вас установлен Docker и Docker Compose. как это сделать (1)? как это сделать (2)?
- (Для использования Search API) Зарегистрируйтесь в сервисе SearchAPI
Подготовка к запуску
- Клонируйте репозиторий:
git clone <URL_репозитория>
cd <имя_папки>
Или скачайте архив с проектом и распакуйте его в любую директорию.
-
Создайте директорию для данных RAG:
mkdir knowledge/<имя_директории>
В директории должны быть файлы с данными в формате .txt, .pdf, .docx
-
Создайте файл
.env
в корневой директории проекта и заполните его следующими переменными окружения:# Telegram
TELEGRAM_TOKEN=<токен вашего бота, полученный от BotFather>
# Yandex Cloud
YC_API_KEY=<API ключ вашего сервисного аккаунта>
YC_FOLDER_ID=<идентификатор папки вашего сервисного аккаунта>
# Search API, подробнее: https://yandex.cloud/ru/docs/search-api/concepts/generative-response#parametry-zaprosa
SERP_SITE=
SERP_HOST=
SERP_URL=
# Настройки бота
BOT_NAME=<имя вашего бота>
DATA_DIR=<имя директории с данными для RAG> -
Запустите скрипт для создания индекса:
python create_rag_index.py
Запуск
-
Если хотите протестировать бота в локальной среде разработки, установите зависимости:
pip install -r requirements.txt
и запустите бота:
python main.py
-
Если хотите запустить бота в контейнере:
docker-compose up -d --build
Лицензия MIT
Авторы merkulov.ai, drybalko, Sergei Zolotov