Как стать автором
Обновить

Telegram-бот с интеграцией AnythingLLM + LM Studio

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.7K

Оглавление

  1. Введение

  2. Архитектура проекта

  3. Настройка окружения

  4. API

  5. Примеры использования

  6. Заключение

  7. Ссылки


Введение

Этот проект представляет собой Telegram-бота, который взаимодействует с AnythingLLM — инструментом для работы с языковыми моделями (LLM), в нашем случае используется как инструмент для загрузки документов и создания RAG архива. AnythingLLM имеет интеграцию и взаимодействует с LM Studio, инструментом для локальной загрузки файлов для обучения модели. В моем MVP бот предоставляет доступ к ИИ-модели только авторизованным пользователям, простая защита паролем, самое главное что все отрабатывается локально без передачи файлов сторонним сервисам, что делает его удобным решением для команд, которые хотят использовать ИИ в своих рабочих процессах.


Архитектура проекта

Проект состоит из следующих компонентов:

  1. Telegram-бот: Обрабатывает команды и сообщения от пользователей.

  2. AnythingLLM: Создание RAG архива, обработка запросов к языковой модели.

  3. LM Studio: Backend для обработки запросов ИИ моделью.

  4. Python-скрипт: Связывает Telegram-бота и AnythingLLM, обрабатывает авторизацию и запросы.

Схема взаимодействия

Пользователь --> Telegram-бот --> Python-скрипт --> AnythingLLM --> LM Studio --> Ответ --> Пользователь

Настройка окружения

1. Установка зависимостей

Убедитесь, что у вас установлен Python 3.8 или выше. Затем установите необходимые зависимости:

Copy

pip install python-telegram-bot requests

2. Настройка Telegram-бота

  1. Откройте Telegram и найдите бота BotFather.

  2. Создайте нового бота с помощью команды /newbot.

  3. Сохраните токен, который BotFather предоставит вам.
    731334xxxx:AAFKLc947b-b26Qnkpiv5ysz-jxxxxx_X_X

3. Настройка AnythingLLM

Убедитесь, что AnythingLLM запущен и доступен по API. В нашем примере мы используем эндпоинт для доступа к чату:

http://localhost:3001/api/v1/workspace/mit_rag/chat

При создании workspace в AnythingLLM, использовали название MIT_RAG (для API используется нижний регистр: mit_rag)

Есть много примеров по настройке и связке LM Studio и AnythingLLM в Youtube. Подробно на этом останавливаться не буду.

Проверить доступность API AnythingLLM можно двумя способами, в первом через обычный браузер, смотрим доступность документации

http://localhost:3001/api/docs/

второй способ через терминал, стоит обратить внимание на тип авторизации Bearer, без его прямого указания API присылает ответы Not found, либо No valid api key found.

curl -H 'Authorization: Bearer 0T6J029-6EP49KR-N5E0PDJ-BC351R6' http://localhost:3001/api/v1/workspaces

4. Настройка переменных окружения

Создайте файл .env и добавьте в него следующие переменные:

TELEGRAM_TOKEN=YOUR_TELEGRAM_BOT_TOKEN
ANYTHINGLLM_API_URL=http://localhost:3001/api/v1/workspace/mit_rag/chat
ANYTHINGLLM_API_TOKEN=YOUR_ANYTHINGLLM_API_TOKEN
AUTH_PASSWORD=7777

API

1. Telegram-бот

  • Команда /start: Запускает бота и запрашивает пароль для авторизации.

  • Команда /cancel: Отменяет текущую сессию авторизации.

  • Обработка текстовых сообщений: После авторизации пользователь может отправлять сообщения, которые будут обрабатываться AnythingLLM.

2. AnythingLLM

  • Эндпоинт POST /api/v1/workspace/{slug}/chat: Принимает JSON-запрос с полями:

    • message: Текст сообщения.

    • mode: Режим работы (query или chat).

    • sessionId: Идентификатор сессии (опционально).

    • attachments: Вложения (опционально).


Примеры использования

1. Запуск бота

Запустите бота с помощью команды:

python mitbot_v1.py

2. Авторизация

  1. Пользователь запускает бота командой /start.

  2. Бот попросит ввести пароль:

Привет! Я бот-помощник аналитической команды MIT. Чтобы получить доступ к общению со мной, введи пароль, который ты наверняка знаешь :)
  1. Пользователь вводит пароль:

7777
  1. Бот подтверждает авторизацию:

Авторизация успешна! Теперь ты можешь задавать вопросы.

3. Взаимодействие с ИИ

  1. Пользователь задаёт вопрос:

Привет, как дела?
  1. Бот отвечает:

Привет! У меня всё отлично, а у тебя?

Заключение

Документация демонстрирует, как создать Telegram-бота с интеграцией AnythingLLM+LM Studio. Такой бот может быть полезен для команд, которые хотят использовать ИИ в своих рабочих процессах, обеспечивая при этом безопасность и контроль доступа.

Проект на гите: https://github.com/KonstantinovK/telegrambot_rag.git


Ссылки


2025 Moscow. TG @clockber

Теги:
Хабы:
+1
Комментарии2

Публикации

Работа

Data Scientist
53 вакансии

Ближайшие события