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

Flowise: доступ к AI без кода

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

Привет всем!
Сегодня хочу рассказать про Flowise - open source инструмент для создания чат-ботов и не только.

Open source продукт создан для аудитории, которая не готова кодить, но хочет получить доступ к AI. В приятном интерфейсе драг-н-дропом из готовых блоков можно построить бекенд своего будущего приложения.

При помощи Flowise можно:

  • Создать чат-бот и встроить на сайт. Есть различные LLM на любой вкус, можно добавить ваши данные для анализа , выдачу поисковых систем, обращаться к сторонним API, и т.д.

  • Использовать Flowise как API. Тут потолок фантазий находится там, где заканчиваются комбинации блоков, но можно добавить и кастомные инструменты при помощи JS. Можно работать со звуком, изображениями и так далее.

Далее небольшой обзор возможностей инструмента и несколько практических кейсов, которые можно сделать бесплатно (и почти бесплатно):
1/ Установка Flowise локально. Всё очень просто.
2/ Кейс 1 - простейший чат-бот. Сможет отвечать на вопросы.
3/ Кейс 2 - поиск по CSV. Сможет проанализировать данные в файле.
4/ Кейс 3 - чат-бот, который сможет отвечать на вопросы на основе вашей информации (например, о компании).
5/ Кейс 4 - ассистент, который использует поисковую выдачу для ответов: может рассказать о погоде, последних новостях и т.д.
6/ Маркетплейс - готовые чатфлоу и инструменты. Пример: генерация изображений.
7/ Деплой Flowise в Render. Подготовимся к тому, чтобы встраивать чат на сайт. Не сложнее, чем сделать всё локально.
8/ Как перенести в Render созданные ранее чатфлоу.

Flowise локально.
Для Windows.
1/ Установите Node.js, скачайте, запустите msi-файл и следуйте инструкциям установщика.
2/ Запустите командную строку и выполните npm install -g flowise. Установка займёт неcколько минут.
3/ Затем запустите flowise командой npx flowise start. (в дальнейшем командой flowise start из командной строки вы сможете всегда запустить сервер flowise).

Если всё установлено корректно, в ответе вы получите сообщение: Flowise server is listening at 3000 и сможете работать на http://localhost:3000/.
Способов установки несколько, этот простейший.

Ещё нам понадобится LLM, чтобы построить несколько примеров. Flowise может работать c OpenAI, Google PaLM, Azure OpenAI и другими. Используем OpenAI для примера, нам потребуется API-key. Создать его можно на странице платформы после регистрации. Не забудьте скопировать значение ключа и сохранить где-либо локально.

Вернёмся во Flowise и создадим наш первый чатфлоу кликом по «Add new».
Слева под кнопкой «+» вы найдёте доступные для выбора блоки, собранные в категории.

Краткое описание категорий.
  1. Agents — отвечают на вопросы, используя LLM или другие подключенные к ним инструменты.

  2. Cashe — можно закешировать ответ LLM с использованием Redis, Momento, Upstash или использовать встроенный кеш.

  3. Chains — цепочки, позволяют объединять несколько LLM и/или других запросов. В чатфлоу обязательно должна быть или цепочка, или агент.

  4. Chat models — чат-модели, к которым вы можете подключиться.

  5. Document loaders — загрузить данные из *.csv, *.json, Notion, Figma, Confluence и других источников.

  6. Embeddings — разбиение текста запроса пользователя на части (вложения), LLM использует эти вложения, чтобы искать похожую информацию в своей базе данных и формировать ответ.

  7. LLMs — сами языковые модели.

  8. Memory — память, чтобы хранить беседы.

  9. Moderation — проверка текста перед отправкой в LLM.

  10. Output Parsers — ответ LLM может быть представлен в виде json или csv.

  11. Prompts — инструкции для LLM.

  12. Retrievers — возможность подключить дополнительные базы данных, например - с документами компании.

  13. Text Splitters — возможность разделить предоставленные модели тексты на части по разным признакам.

  14. Tools — возможность добавить готовый инструмент или создать свой.

  15. Utilicies — набор простых утилит вроде калькулятора и подобных.

  16. Vector Stores — подключение векторных баз данных.

Дальше в статье я буду строить что-то простое и объяснять на примерах.
Если вы ещё не успели разобраться в терминологии, связанной с LLM, могу рекомендовать вот этот текст.

Кейс 1 — простейший чат-бот.
Для начала разберёмся с блоками и связями.
Вытащим на канвас первый блок — Chains -> Conversation Chain (здесь и далее буду адресовать блоки «Категория -> Блок»).

Стрелками на скриншоте указаны коннекторы: подключаете к Conversation chain обязательные Chat model и Memory и получаете на выходе результат в виде чата.

Conversation Chain потребует добавления ещё двух обязательных блоков: ChatModels -> ChatOpenAI чтобы подключиться к OpenAI и Memory -> Buffer Memory, чтобы хранить историю беседы.

Для ChatOpenA в поле Connect Credentials создайте новое подключение и добавьте сгенерированный вами ранее ключ. В имени модели можно оставить любое значение по умолчанию. Temperature — это индекс, который отображает насколько строго модель будет отвечать, по тексту (если ближе к нулю) или «с фантазией» (ближе к и больше 1), оставим значение 0.7.

В Buffer Memory можно всё оставить по умолчанию.

Если открыть Additional Parameters в Conversational Chain, то можно скорректировать поведение и личность бота.

Кейс 2 — работа с CSV.
Можно загрузить файл и сделать запрос, например: «какая информация в файле», «сделай саммари файла», «сколько уникальных значений в файле» или любой на ваш вкус.
Вытащим на канвас блок Agents -> CSV-agent . Это агент, который будет отвечать на ваши вопросы, используя LLM и csv-файл, который вы приложите.

Подключим модель. Из категории LLM перетащите блок OpenAI.
В поле Connect Credentials необходимо создать новое подключение и добавить сгенерированный вами ранее ключ. В имени модели можно оставить любое значение по умолчанию.

Сгенерируйте файл *.csv и загрузите в агент. Можете воспользоваться готовым.
Не забудьте сохранить чатфлоу.

Сам чатфлоу и простых поисковых запросов:

Кейс 3 — чат-бот, который использует вашу информацию.

Например, о вашей компании.
Для теста можно сгенерировать текстовый файл, например, в формате вопрос-ответ. В этом может помочь первый созданный вами бот (для ленивых есть готовый пример).

Ещё нам понадобится векторное хранилище, в которое чат-бот поместит обработанный и упорядоченный набор векторов, которые будут построены из вашего контента.
Зарегистрируйтесь/авторизуйтесь на Pinecone и кликните Create new index.
Потребуется заполнить несколько полей: имя индекса, поле Dimensions - впишите значение 1536, в бесплатной версии Cloud provider и Environment будут доступны в единственном экземпляре. Кликайте Create index.
Нам также потребуется API-ключ, он найдётся на странице API-keys, которая доступна из меню.

После создания индекса, вы увидите его в списке. Значение поля environment нам далее пригодится.

Сделаем 2 чатфлоу. Первый будет загружать в векторную базу данных наш контент, а во втором сделаем чат-бот, который будет общаться на основании этих данных.

Первый чатфлоу из блоков:
1/ Chains -> Retrieval QA Chain (QA — question and answer).
2/ LLMs -> OpenAI — потребует API-ключ, также укажите temperature = 0.5, этой модели не нужен слишком творческий подход.
3/ Vector Stores -> Pinecone — ваша векторная база данных, нужно добавить добытые ранее API-ключ и название индекса, который вы создали, в нижнем дропдауне также выберите Pinecone vector store.
4/ Embeddings -> OpenAI Embeddings — потребуется API-ключ OpenAI.
5/ Document loaders -> Text file — загрузите ваш файл с вопросами-ответами.
6/ Text Splitters -> Recursive Character Text Splitter — укажите параметры Chunk size = 250 и Chunk overlap = 50, этот блок поможет разделить текст из вашего файла на части.

Обратите внимание на то, что справа вверху стала доступна новая кнопка, это принудительная загрузка данных в векторную базу данных.
Например, вы поменяли файл с текстами, и вам требуется обновить данные в Pinecone.

Теперь второй чатфлоу, он содержит поменьше блоков:

1/ Chains -> Retrieval QA Chain.
2/ Chat models -> Chat OpenAI, потребуется указать API-ключ и установить temperature = 0.7.
3/ Vector Stores -> Pinecone — добавить API-ключ и название индекса, который вы создали, в нижнем дропдауне выберите Pinecone Retriever, этот блок будет искать по базе данных нужную информацию.
4/ Embeddings -> OpenAI Embeddings — потребуется API-ключ OpenAI.

Готово, можно пробовать спрашивать:

Кейс 4 — ассистент, который использует поисковую выдачу для ответов.
Используем Agents -> OpenAI Assistant. Для этого блока нужно добавить «личность» ассистента (поле Select Assistant) — имя и инструкцию каким образом ему отвечать.

Добавим блок Tools -> SERP API — с его помощью можно получить выдачу поисковых движков. Проще говоря, в чате вы получите ответы, основанные на информации из интернета. API-ключ для SERP будет доступен после регистрации, как и 100 бесплатных поисков.

Инструмент SERP API готовый, а можно написать свой, на JS. Не буду останавливаться на этом, просто будьте в курсе, что такая возможность есть.

Marketplace.
У Flowise также есть Маркетплейс с готовыми чатфлоу и инструментами, который стабильно пополняется. Открываете любой интересный, кликаете Use template и заполняете обязательные поля:

Например, готовый чатфлоу для генерации изображений.
Потребуется API-ключ для Replicate - облако, в котором можно запускать публичные модели.

На бесплатном GPT 3.5 получается не очень быстро, но работает.

Имейте в виду, Replicate через какое-то время попросит вас ввести данные карты.

Деплой Flowise в Render.
Встроить готовый чат-бот на сайт можно разными способами, они доступны с канваса.

Но сначала посмотрим как сделать чатфлоу доступным не только локально.
Создадим WebService в облаке при помощи сервиса Render. Он позволяет хостить и масштабировать сайты, микросервисы, веб-приложения в относительно простом и интуитивно понятном интерфейсе.

Сначала авторизуйтесь/зарегистрируйтесь на Github. Затем переходите в репозиторий Flowise и кликайте Fork. Таким образом мы создадим копию проекта и будем использовать эту копию для запуска веб-сервиса.

Выберите имя репозитория для своей копии, обязательно оставьте включённым бокс `Copy the main branch only` и кликайте `Create fork`.

Затем переходите в Render и авторизуйтесь/зарегистрируйтесь.

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

После авторизации создаём веб-сервис:

Создавать веб-сервис будем как раз из репозитория в Github, который мы сделали заранее. Кликайте Next.

Ваш аккаунт Github необходимо подключить к Render, используйте кнопку `Configure account` и авторизуйтесь.

После авторизации на Github вы увидите список своих репозиториев, в котором необходимо найти Flowise и кликнуть Connect. Вас попросят указать несколько параметров:
1/ введите Name, например, Flowise.
2/ Runtime: выберите значение Node.
3/ Instance Type, для тестов лучше Free.
4/ Кликните на Add environmental variable и добавьте две переменные для имени пользователя и пароля: FLOWISE_USERNAME и FLOWISE_PASSWORD, придумайте им значения. Ваш веб-сервис вскоре будет доступен онлайн, и вы наверняка не хотите давать всем доступ в свой Flowise-дашборд.

Все остальные поля можно оставить как есть. Кликайте Create Web Service.

Потребуется несколько минут на то, чтобы Render скопировал себе код из репозитория, скомпилировал и запустил веб-сервис. Когда это случится, в консоли вы увидите сообщение `Your service is live`. C этого момента Flowise доступен по прямой ссылке, которую всегда можно найти в настройках веб-сервиса.

Перенос чатфлоу на Render.
Чатфлоу, которые вы создали локально, можно перенести в ваш облачный Flowise на Render. Для этого в настройках найдите Export chatflow, в папку с загрузками на вашей машине будет добавлен json-файл, который можно потом загрузить в облачный Flowise при помощи Load chatflow.

Изменить внешний вид чата.
Когда вы готовы встраивать свой чат-бот на сайт, воспользуйтесь кнопкой в правом верхнем углу на канвасе. Варианты Embed и Share доступны только без авторизации, поэтому у вас в параметрах будет указано No authorization. Остальные варианты — это доступ по API, авторизация нужна.

Для простого варианта встраивания в HTML (Embed) ничего, кроме добавления в тег не требуется.

Установив бокс Show Embed Chat Config перейдём к параметрам: в них вы найдёте параметры кнопки вызова чата, самого окна в развёрнутом состоянии, сообщения пользователя и даже плейсхолдера в строке ввода. Пробуйте и меняйте. Подобрать цвета можно туттут и ещё много где.

В заключение.

Во многих компаниях стандартные офисные процессы уже официально включают в себя summarize, генерацию контента и прочую помощь AI. У кандидатов на собеседованиях уже спрашивают о том, как они используют возможности ChatGPT в работе и за её пределами.

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

Спасибо за внимание.

Теги:
Хабы:
Всего голосов 6: ↑5 и ↓1+9
Комментарии3

Публикации

Истории

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

12 – 13 июля
Геймтон DatsDefense
Онлайн
14 июля
Фестиваль Selectel Day Off
Санкт-ПетербургОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн