- BrainTools - https://www.braintools.ru -

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

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

Оглавление

  1. Введение [1]

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

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

  4. API [4]

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

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

  7. Ссылки [7]


Введение

Этот проект представляет собой Telegram-бота, который взаимодействует с AnythingLLM — инструментом для работы с языковыми моделями (LLM), в нашем случае используется как инструмент для загрузки документов и создания RAG архива. AnythingLLM имеет интеграцию и взаимодействует с LM Studio, инструментом для локальной загрузки файлов для обучения [8] модели. В моем 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/

второй способ через терминал, стоит обратить внимание [9] на тип авторизации 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 [10]


Ссылки


2025 Moscow. TG @clockber [13]

Автор: kon_ov

Источник [14]


Сайт-источник BrainTools: https://www.braintools.ru

Путь до страницы источника: https://www.braintools.ru/article/16491

URLs in this post:

[1] Введение: #Head

[2] Архитектура проекта: #Archi

[3] Настройка окружения: #Arround

[4] API: #API

[5] Примеры использования: #Samples

[6] Заключение: #Concl

[7] Ссылки: #Links

[8] обучения: http://www.braintools.ru/article/5125

[9] внимание: http://www.braintools.ru/article/7595

[10] https://github.com/KonstantinovK/telegrambot_rag.git: https://github.com/KonstantinovK/telegrambot_rag.git

[11] Документация python-telegram-bot: https://docs.python-telegram-bot.org/

[12] Как запустить RAG-файл на Llama 3.1: https://www.youtube.com/watch?v=Zot6DepayZM&t=627s

[13] @clockber: https://www.braintools.ru/users/clockber

[14] Источник: https://habr.com/ru/articles/920802/?utm_campaign=920802&utm_source=habrahabr&utm_medium=rss

www.BrainTools.ru

Rambler's Top100