Перейти к основному содержимому

Телеграм-бот для демонстрации сервисов Yandex Cloud AI Studio

https://github.com/all-mute/yc-ai-tg-demo

Описание

Этот проект представляет собой Telegram-бота, который позволяет использовать сервисы Yandex Cloud:

  • Search API Generative answer - сервис получения ответов на вопросы по документам, размещенным в интернете alt text

  • AI Assistants - сервис для создания и использования AI-ассистентов с возможностью получения ответов на вопросы по внутренним приматным документам (На скрине для примера используется книга "Республика" Платона) alt text alt text

через интерфейс телеграм-бота. Требуется предвартельная настройка.

Описание команд

  • /start - Начинает работу с ботом и приветствует пользователя.
  • /help - Предоставляет информацию о возможностях бота и его командах.
  • /searchapi - Выполняет поиск через Search API. Пользователь должен ввести запрос после команды.
  • /searchapi_contextual - Выполняет поиск через Search API с учетом контекста текущего треда и записью в негг. Пользователь должен ввести запрос после команды.
  • /new_thread - Создает новый поток для чата, позволяя пользователю начать новый разговор с ботом.

Примеры взаимодействия с ботом:

До начала установки

  1. Зарегистрируйте бота в Telegram BotFather и получите токен. (введите команду /newbot и следуйте инструкциям)
  2. Зарегистрируйтесь в Yandex Cloud и создайте сервисный аккаунт с ролями ai.assistant.editor, ai.languageModels.user и search-api.executor. как это сделать? как это сделать (2)?
  3. Получите API ключ и идентификатор папки в Yandex Cloud. как это сделать?
  4. Убедитесь, что у вас установлен Python 3.10 или выше. как это сделать?
  5. (Не обязательно) Убедитесь, что у вас установлен Docker и Docker Compose. как это сделать (1)? как это сделать (2)?
  6. (Для использования Search API) Зарегистрируйтесь в сервисе SearchAPI

Подготовка к запуску

  1. Клонируйте репозиторий:
    git clone <URL_репозитория>
    cd <имя_папки>

Или скачайте архив с проектом и распакуйте его в любую директорию.

  1. Создайте директорию для данных RAG:

    mkdir knowledge/<имя_директории>

    В директории должны быть файлы с данными в формате .txt, .pdf, .docx

  2. Создайте файл .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>
  3. Запустите скрипт для создания индекса:

    python create_rag_index.py

Запуск

  • Если хотите протестировать бота в локальной среде разработки, установите зависимости:

    pip install -r requirements.txt

    и запустите бота:

    python main.py
  • Если хотите запустить бота в контейнере:

    docker-compose up -d --build

Лицензия MIT

Авторы merkulov.ai, drybalko, Sergei Zolotov