Облачная платформаEvolution

Подключение ИИ из Foundation Models к nocode Telegram-боту на основе Container Apps или Notebooks

Эта статья полезна?

С помощью этого руководства вы запустите приложение n8n в Container Apps или в Notebooks. На базе этого приложения создадите Telegram-бота, который будет интегрирован с сервисом Foundation Models.

С помощью Foundation Models вы сможете отправлять запросы в различные AI-модели и обрабатывать пользовательские запросы.

В рамках этого сценария мы будем оценивать эмоциональный окрас сообщения пользователя.

Вы будете использовать следующие сервисы:

  • Artifact Registry для хранения, совместного использования и управления Docker-образами, Deb-пакетами, RPM-пакетами, Helm-чартами и файлами любого типа (generic).

  • Container Apps — сервис для запуска контейнерных приложений в облаке. Не требует знания Kubernetes и создания виртуальных машин.

  • Notebooks — сервис для запуска сред ML и работы DS-специалистов в ноутбуках на платформе Evolution.

  • Object Storage — объектное S3-хранилище с бесплатным хранением файлов объемом до 15 ГБ. Будет использоваться в качестве хранилища для контейнера.

  • Foundation Models — сервис для доступа к API популярных фундаментальных моделей машинного обучения с открытым исходным кодом.

  • n8n — платформа с открытым кодом для автоматизации рабочих процессов и интеграции сервисов. Подходит для экспериментов и пет-проектов.

Шаги:

Перед началом работы

Если вы уже зарегистрированы, войдите под своей учетной записью.

1. Подготовьте среду

  1. Подготовьте среду, если не сделали этого ранее.

  2. Убедитесь, что у вас есть доступ к Foundation Models.

  3. Убедитесь, что баланс в личном кабинете положительный. Если он нулевой или отрицательный — пополните баланс. Небольшое количество запросов в Foundation Models будет стоить не больше рубля, подробнее — в тарифах.

2. Создайте Telegram-бота с помощью n8n и Container Apps

Выполните сценарий, описанный в практическом руководстве Создание Telegram-бота без написания кода с помощью n8n и Container Apps или Notebooks.

Внимание

Тестовый образ n8n создан в версии n8n@1.117.3. Если вы создаете и разворачиваете кастомный образ, рекомендуется использовать версию n8n 1.117.3 для стабильной работы образа с Container Apps и Foundation Models.

3. Удалите шаг отправки сообщения пользователю

Бот будет отправлять ответ от LLM-модели. Поэтому отправка ботом пользователю его же сообщения больше не нужна. Удалите последний шаг SEND A TEXT MESSAGE в созданном рабочем процессе.

4. Добавьте и настройте клиент OpenAI для подключения к Foundation Models

  1. Справа от действия Send a chat action нажмите +.

  2. На вкладке справа в поле поиска введите Basic LLM и выберите Basic LLM Chain в результатах поиска.

  3. В выпадающем списке Source for prompt выберите Define below.

  4. В поле Prompt (User Message) введите:

    {{ $('Telegram Trigger').item.json.message.text }}
  5. В блоке Chat Messages (if Using a Chat Model) введите два сообщения:

    1. Для создания первого сообщения нажмите Add prompt.

    2. В выпадающем списке Type Name or ID выберите User.

    3. В поле Message Type выберите Text.

    4. В поле Message введите:

      {{ $('Telegram Trigger').item.json.message.text }}
    5. Для создания второго сообщения нажмите Add prompt.

    6. В выпадающем списке Type Name or ID выберите System.

    7. В поле Message укажите промпт:

    You are an expert in text sentiment analysis. When solving a task, FIRST think step-by-step in private to reach your answer. Do NOT reveal these private thoughts. Instead, output ONLY a JSON object with three keys: 1. "result" – one of: "positive", "negative", "neutral" 2. "confidence" – number between 0 and 1 (e.g. 0.87). Calibrate it so the three classes are equally likely a priori. 3. "explanation" – a brief, public rationale (1-3 sentences) that cites the pivotal phrases.Use Russian language to provide explanation. Follow the format of the few-shot examples exactly: nothing before or after the JSON. Don't use json
    ../_images/basic_llm_node.webp
    Примечание

    С помощью промта модель анализирует эмоциональный окрас сообщения и возвращает ответ в формате JSON. Он содержит три поля:

    • result — результат оценки эмоционального окраса сообщения: негативный, нейтральный или позитивный;

    • confidence — уверенность в оценке от 0 до 1;

    • explanation — объяснение оценки.

  6. Внизу рядом с Model нажмите на значок +.

    Откроется список Language Models.

  7. В поле поиска введите openai и выберите Open AI Chat Model.

  8. В выпадающем списке в поле Credential to connect with выберите + Create new credential.

  9. В поле API Key введите API-ключ, полученный на этапе подготовки среды.

  10. В поле Organization ID (optional) введите идентификатор вашего проекта.

  11. В поле Base URL введите https://foundation-models.api.cloud.ru/v1.

  12. Нажмите Save и закройте окно учетных данных OpenAI.

  13. Раскройте выпадающий список Model, выберите By ID и введите название модели openai/gpt-oss-120b.

  14. В разделе Options нажмите Add option, введите Response и выберите Response Format.

  15. В выпадающем списке Response Format выберите JSON.

    ../_images/n8n_model_params.webp
  16. Нажмите Back to canvas.

  17. Чтобы выполнить шаг в тестовом режиме, выберите Basic LLM Chain.

  18. Сверху нажмите Execute step.

  19. Нажмите Back to canvas.

5. Отправьте ответ модели в Telegram-бот

Добавьте новое действие для стартового триггера Telegram:

  1. Справа от действия, добавленного на шаге 4, нажмите +.

  2. На вкладке справа в поле поиска введите telegram и выберите Telegram.

  3. В списке выберите Send a text message.

  4. В окне свойств действия измените наименование действия на Отправляем ответ.

  5. В поле Chat ID вставьте:

    {{ $('Telegram Trigger').item.json.message.chat.id }}
  6. В поле Text вставьте:

    Эмоциональный окрас сообщения --- {{ $json.result }}
    Объяснение решения --- {{ $json.explanation }}
  7. Нажмите Add Field и выберите Reply To Message ID.

  8. Слева найдите раздел Telegram Trigger и перетащите оттуда параметр message | message_id в поле добавленного параметра Reply To Message ID.

    ../_images/n8n_send_text_message.webp
  9. Нажмите Test step.

    Справа вы увидите тело отправленного сообщения, а в Telegram-бот должно прийти тестовое сообщение с ответом.

  10. Нажмите Back to canvas.

    Вы увидите следующую цепочку действий:

    ../_images/n8n_chain.webp

6. Проверьте работу бота

  1. Сверху проверьте, что переключатель находится в состоянии Active.

  2. Перейдите в Telegram-бот и отправьте любой вопрос. Должен вернуться ответ от подключенной LLM.

Результат

Вы создали Telegram-бота в Container Apps или Notebooks, который интегрирован с сервисом Foundation Models и может отправлять запросы в различные AI-модели. Решение можно использовать для автоматического уведомления о новых комментариях на сайте и об их эмоциональном окрасе.