Как стать автором
Обновить
118.77
Amvera
Amvera — облако для хостинга IT-приложений

Установка и настройка Flowise AI для создания RAG-агентов

Время на прочтение6 мин
Количество просмотров2K

Всем привет!

Это очередная статья из цикла, где мы разбираем различные способы применения ИИ-агентов с RAG — методом оптимизации работы и вывода LLM агента благодаря добавлению в контекст базы знаний. Проще говоря, мы даём модели какой-то объём знаний, по которому она способна работать. Это может быть как документ, по которому будет вестись поиск релевантных данных, так и база данных.

Использование подхода может быть полезно в различных задачах. Такая модель сможет работать с актуальными для вас данными, даже если память самой LLM ограничивается на неактуальных данных какого-нибудь 2022 года.

Сегодня будет рассматриваться очередной веб-интерфейс для взаимодействия с ИИ. И это будет FlowiseAI. Я постараюсь наглядно показать установку и работу с ним так, чтобы смог разобраться даже новичок.

FlowiseAI

Flowise — это один из самых удобных интерфейсов для простой сборки приложений с использованием LLM без написания кода. Он поддерживает различные LLM-раннеры, такие как Ollama и API, совместимые с OpenAI, со встроенным механизмом вывода для RAG.

Помимо интеграций с OpenAI и Ollama, Flowise предлагает встроенные инструменты для поиска в интернете с помощью SearXNG, Google PSE, Brave Search, Serpstack, Serper, Serply, DuckDuckGo, SearchAPI, Bing, и TavilySearch.

И ещё раз — интуитивный интерфейс, в котором сможет работать любой новичок сразу после прочтения этой статьи.

Давайте начнём с развёртывания интерфейса!

Установка Flowise AI в облаке

Запускать FlowiseAI мы будем в нашем облаке Amvera — сервисе для простого развёртывания IT-приложений. Особенность платформы не только в простоте конфигурации приложения: для запуска Flowise нам понадобится лишь один файл, который будет доступен ниже, но и в том, что мы предоставляем бесплатное внешнее доменное имя с бесплатным SSL-сертификатом от Let's Encrypt. То есть вам не понадобятся ни знания работы с терминалом, виртуальной машиной в целом, но и не нужно приобретать домен у сторонних регистраторов.

К особенностям Amvera относится также:

  • Бесплатное и полное проксирование до OpenAI, Gemini, Grok, Claude и других провайдеров, что очень сильно облегчит нам работу!

  • Поминутная тарификация со списываниями раз в час. Если вы решите остановить проект на время, деньги списываться не будут.

  • И ко всему этому добавляется ещё бесплатный пробный баланс 111 рублей для старта при регистрации.

  • Обновление проектов командой git push amvera master.

Нам понадобится потратить около 10 минут на первую регистрацию и создания проекта и около 10—15 минут на сборку проекта (на этом этапе можно будет просто отойти).

Регистрация в Amvera

Регистрация в Amvera простая и требует лишь подтверждения почты. Зарегистрироваться можно по ссылке.

После успешной регистрации нам будет доступен личный кабинет Amvera, где мы приступим к созданию проекта с помощью одноимённой кнопки.

  1. В первом открывшемся окне выбираем тип сервиса «Приложение».

  2. Жмём далее и выбираем название и тариф для проекта. Название может быть произвольным, а тариф (как минимум для первого запуска) рекомендуется один из старших, позже его можно будет снизить.

  3. Этап с загрузкой данных можно пропустить, необходимый файл для сборки — Dockerfile. Файл мы сможем загрузить позднее.

  4. Далее необходимо создать 6 переменные окружения. Совершенно важно как в значении переменных, так и в их названиях скопировать всё, что представлено ниже корректно:

  • BLOB_STORAGE_PATH = /data/.flowise/storage

  • DATABASE_PATH = /data/.flowise

  • PORT = 3000

  • HOST = 0.0.0.0

  • FLOWISE_USERNAME = придумайте имя пользователя от аккаунта в Flowise

  • FLOWISE_PASSWORD = придумайте пароль для вышесозданного аккаунта Flowise

Зададим переменные окружения
Зададим переменные окружения

5. Пятый и последний пункт — конфигурация. Здесь просто указываем docker и два порта(80,3000), через запятую без пробела, как указано на скриншоте ниже:

6. Завершаем создание проекта. Переходим на его страницу и во вкладке «Репозиторий» жмём кнопку «Загрузить данные». Здесь нам понадобится перетянуть один файл с названием Dockerfile (обязательно без расширений, таких как .txt).

Сам файл выглядит так:

FROM node:18.15.0

WORKDIR /app

RUN npm install -g flowise

EXPOSE 3000

CMD ["npx", "flowise", "start"]

После загрузки файла можно собирать проект! Для этого мы переходим на страницу проекта и во вкладку «Конфигурация» - там будет кнопка «Собрать».

Если не получается разобраться, пишите в поддержку support@amvera.ru или в чат https://t.me/amverachat. Просим сразу указывать имя пользователя и проекта. Мы постараемся помочь.

Ожидаем около 15—20 минут. Cтолько занимает первая сборка приложения.

Пока проект собирается (это можно на любом этапе сделать), создадим бесплатное внешнее доменное имя во вкладке «Домены». Для этого переходим туда и жмём «Создать доменное имя». В открывшемся окне выбираем тип подключения "HTTPS" и тип домена «Бесплатный домен Амвера». Далее в дополнительных настройках домена в URL-путь пишем "/" без кавычек и "3000" в порте.

Настраиваем бесплатный домен
Настраиваем бесплатный домен

Применяем настройки.

Начало и примеры использования Flowise AI

Дожидаемся статуса «Приложение запущено» и открываем ссылку, которую мы ранее создавали.

Перед нами появится интерфейс Flowise, где нам понадобится ввести ранее созданные креды для доступа. Если вместо этого вас встретила ошибка 502/503 или 404 — перепроверьте все настройки из статьи, особенно настройки конфигурации и домена.

Создаем первый Chatflow

Во вкладке "Chatflows" нажимаем кнопку "Add new" и теперь открывается рабочая среда — Chatflow. Здесь мы и будем собирать тело нашего приложения.

Немного теории

В FlowiseAI каждая часть тела приложения называется Node (или Узел). Каждый из узлов представляет собой настраиваемый блок, который отвечает за свой метод. Например, это может быть Agent — ИИ-агент; Chain; Chat Model и Tools - вспомогательные инструменты. Их правильное соединение и дает нам рабочее приложение.

Примеры работающего приложения

Чат-бот в интерфейсе Flowise с ChatGPT и SerpAPI Search

Давайте начнём с самого простого чат-бота внутри интерфейса FlowiseAI, который будет работать с помощью:

  • ChatModel - ChatOpenAI.

  • Инструмента Serp API для доступа к поиску в системе Google.

Chatflow будет выглядеть примерно так:

Архитектура RAG агента
Архитектура RAG агента

Для каждого узла, где требуются креды, создаём и выбираем их. Важно правильно подсоединить каждый узел, иначе приложение не заработает.

Выше созданное приложение — чат-бот в интерфейсе Flowise, так что открываем чат в правом верхнем углу и задаём интересующий нас вопрос, который покажет работу SerpAPI.

Чат-бот в интерфейсе Flowise для работы с данными из CSV

Этот пример нужен для быстрой обработки информации, находящейся в CSV-файле.

Для этого понадобится использовать всего 2 узла: CSV-агент и ChatOpenAI, соединённые между собой.

Чат-бот в интерфейсе Flowise для работы с данными из CSV
Чат-бот в интерфейсе Flowise для работы с данными из CSV

Здесь мы видим, что на узле CSV-агента есть кнопка для загрузки CSV-файла. С помощью неё загружаем интересующий нас файл и в том же чате работаем с ним.

Подключение телеграм бота с помощью API Flowise

Flowise также предоставляет возможность открыть наше приложение через API. То есть мы можем создать простого бота в Telegram и обращаться к API созданного Chatflow для получения ответа от агента. Давайте подключим его к Chatflow с подключённым SerpAPI.

Итак, в правом верхнем углу есть кнопка с, нажав на неё, откроется окно с примерами подключения API. Там же можно настроить авторизацию, если не хотите делать API публичным.

Напишем код для нашего бота с использованием библиотеки aiogram 3.x. И с авторизацией API DefaultKey (bearer).

import asyncio
import logging
import aiohttp
from aiogram import Bot, Dispatcher
from aiogram.types import Message
from aiogram.filters import CommandStart

TOKEN = "YOUR_BOT_TOKEN"
API_URL = "YOUR_API_URL"
HEADERS = {"AUTH_TOKEN"} #Если используется

bot = Bot(token=TOKEN)
dp = Dispatcher()

async def get_api_response(text: str):
    async with aiohttp.ClientSession() as session:
        async with session.post(API_URL, headers=HEADERS, json={"input": text}) as response:
            if response.status == 200:
                data = await response.json()
                return data.get("output", "Ответ не найден.")
            else:
                return f"Ошибка {response.status}: {await response.text()}"

@dp.message(CommandStart())
async def start_handler(message: Message):
    await message.answer("Я - чат-бот для работы с Flowise API моего приложения!")

@dp.message()
async def message_handler(message: Message):
    response = await get_api_response(message.text)
    await message.answer(response)

async def main():
    logging.basicConfig(level=logging.INFO)
    await dp.start_polling(bot)

if __name__ == "__main__":
    asyncio.run(main())

Здесь, как значение переменной TOKEN, передаётся токен бота, а API_URL - сам API и хеадер с авторизацией, если вы её используете.

Развернуть этого бота вы также можете у нас с помощью следующей инструкции или любого из циклов с телеграм ботами на Хабре. Мы же сейчас этот этап пропустим.

Если мы все сделали корректно, телеграм бот будет отвечать также, как чат в нашем Chatflow.

Итог

Всё, что мы разобрали выше — очень простые примеры работы с FlowiseAI. На деле с ним можно разрабатывать наиболее практичные приложения без написания кода.

Позднее мы разберём примеры чуть сложнее, чем те, что указаны выше и перейдём к методам автоматизации полноценных задач. Всем спасибо!

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

Публикации

Информация

Сайт
amvera.ru
Дата регистрации
Численность
11–30 человек
Местоположение
Россия
Представитель
Кирилл Косолапов