Штучний інтелект у Ваших руках: Як створити власного розумного помічника (і не тільки)
Привіт, друзі! Сьогодні я хочу поділитися з вами захоплюючою подорожжю у світ штучного інтелекту. Ви коли-небудь замислювалися, як було б круто мати власного розумного помічника, який допомагає вам у роботі, відповість на питання, знайде інформацію? У цьому відеоблозі ми не тільки поговоримо про це, а й покажемо, як це зробити!
Я збираюся провести вас через створення багатоагентної системи штучного інтелекту, яка може вирішувати реальні проблеми бізнесу, а не просто бути іграшкою. Ви зможете розширити її функціональність та навіть заробляти на ній! Готові? Поїхали!
Знайомство з Langflow: Ваш інструмент для створення ШІ
Наш головний інструмент – це чудовий сервіс під назвою Langflow. Це платформа з відкритим кодом, яка дозволяє легко створювати складні ШІ-системи за допомогою простого інтерфейсу перетягування. Він надає широкі можливості для інтеграції LLM (великих мовних моделей), роботи з даними та створення власних агентів.
Спочатку вам знадобиться створити безкоштовний акаунт на Langflow (посилання в описі). Це не складно, і вже скоро ви зможете насолоджуватися всіма перевагами платформи.
З чого почати: Створення простого агента
Перш ніж занурюватися у складні задачі, давайте спробуємо створити базового агента. Це буде ваш перший крок на шляху до розумного помічника.
- Створення нового потоку: У Langflow перейдіть до розділу “New Flow” та оберіть “Blank Flow”.
- Налаштування потоку: Натисніть на значок “Flow Settings” (налаштування потоку) та присвойте назву вашому проекту. Наприклад, “Customer Support AI”. Додайте стислий опис та придумайте унікальний “Endpoint”.
- Вхід та вихід: Кожен потік у Langflow починається з “Text/Chat Input” та закінчується “Text/Chat Output”. Це ваші точки входу та виходу даних.
- Агент: Додайте компонент “Agent” з лівої панелі. Це серце вашого агента, яке використовує LLM для виконання задач.
- Налаштування агента:
- LLM: Виберіть модель для вашого агента (наприклад, OpenAI). Звичайно, для цього вам знадобиться API-ключ. Можна також використовувати відкриті моделі, якщо ви хочете працювати локально.
- Prompt (Підказка): Створіть підказку, яка буде направляти вашого агента. Підказка – це ваш інструктаж для ШІ, як йому слід працювати.
- Наприклад: “Ваша основна мета – точно відповідати на запитання користувачів, використовуючи інформацію з бази даних компанії. Використовуйте Retrieval Augmented Generation (RAG), щоб знайти та представити найбільш релевантні дані.”.
- Використовуйте змінні в підказці (наприклад,
{{question}}
для питання користувача) для передавання даних. - Підключіть вхід “Chat Input” до змінної “question” у вашій вашій підказці.
- Зв’язки: Зв’яжіть компоненти між собою. З’єднайте “Chat Input” з входом “question” в “Prompt”, вихід “Prompt” зі входом “instructions” в “Agent”, а вихід “Agent” з входом “Text/Chat Output”.
Тепер перейдіть у вкладку “Playground” та спробуйте задати питання вашому новому агенту. Ви отримаєте базовий відповідь на ваше питання!
RAG: Розширення можливостей вашого агента
Тепер прийшов час розширити можливості вашого агента за допомогою Retrieval Augmented Generation (RAG). Що це таке? RAG – це процес, який дозволяє вашому агенту знаходити та використовувати інформацію з вашої бази даних для отримання більш точних та контекстних відповідей.
- Підготовка даних: Створіть документ з часто задаваними питаннями (FAQ) вашої компанії. Наприклад, у форматі PDF.
- Векторне сховище: Додайте компонент “Astra DB Vector Store”. Це сховище, яке використовує вектори для ефективного пошуку схожої інформації.
- Налаштування векторного сховища:
- Створіть безкоштовний обліковий запис на DataStax Astra DB (посилання в описі).
- Створіть нову базу даних (“Customer”) в DataStax Astra DB.
- Створіть нову колекцію (“FAQ”) у вашій базі даних. Оберить тип “vector-enabled”.
- В Langflow підключіть компонент “Astra DB Vector Store” до вашої бази даних та колекції.
- Оберіть “Embedding Model” (“Astra Vectorize”), щоб автоматично перетворити текст у вектори.
- Завантаження PDF: Додайте компонент “Data -> File” та завантажте ваш файл PDF з FAQ.
Використання.
- Розбиття тексту: З’єднайте вихід “File” з компонентом “Split Text”. Це дозволить розбити PDF на окремі блоки тексту.
- Інтеграція з вектором: З’єднайте вихід “Chunks” з компонентом “Astra DB Vector Store” (“Ingest data”).
- Пошук інформації: З’єднайте вихід “Text/Chat Input” (“question”) з входом “Search Input” в “Astra DB Vector Store” (“Search”).
Ваш агент тепер використовує RAG! Запитайте щось, наприклад, “What are the shipping times?” (Які терміни доставки?), і він повинен знайти відповідь у PDF-документі з FAQ.
Створення інструментів: Додаємо можливості до запитів
Варто розуміти, що для отримання відповідей на складні питання з багатьох джерел, вам потрібно створити інструменти. Перетворите функцію FAQ на інструмент.
- Tool Mode: Ввімкніть режим “Tool Mode” для компонента FAQ. Вам більше не потрібні вхідні дані, але вам потрібно налаштувати інформацію про інструмент на вкладці “Controls”.
- Agent description: Напишіть чіткий опис інструменту, як-от “Відшукує та надає відповіді на часто задані питання, такі як терміни доставки, скасування замовлень та інші бізнес-питання”.
- Новий агент (Manager): Створіть ще одного агента, який керуватиме вашими інструментами. Дайте йому назву, наприклад, “Manager Agent”.
- Інструкції для менеджера: Напишіть чіткі інструкції для цього агента, пояснюючи, які інструменти він може використовувати. Наприклад: “Ви – досвідчений менеджер з обслуговування клієнтів, який вміє вибирати правильні інструменти для вирішення задач. Ваша основна задача – використовувати доступні інструменти для надання точної інформації та відповіді на запитання. Ви можете: відшукувати номери замовлень, отримувати інформацію про продукти та відповідати на питання, які часто задаються”. Надайте доступ до FAQ. З’єднайте вихід “Tool Output” з входом Manager Agent.
- Підключення з’єднань: З’єднайте наш “Chat Input” з входом “question” у “Manager Agent” та вихід “Manager Agent” з входом “Output” у “Text/Chat Output”.
Тепер ви маєте багатоагентну систему! Менеджер вирішує, який інструмент використовувати для відповіді на ваш запит.
Підключення до баз даних: Обробка замовлень та продуктів
Давайте навчимо нашого агента працювати з базою даних, щоб мати змогу шукати інформацію про замовлення та продукти.
- Створення колекцій: У DataStax Astra DB створіть дві нові колекції: “orders” (замовлення) та “products” (продукти).
- Завантаження даних: Завантажте дані з ваших CSV-файлів у відповідні колекції. Ви можете використовувати звичайні таблиці (не vector-enabled).
- Order Lookup Agent: Створіть ще одного агента та ввімкніть “Tool Mode”. Давайте, наприклад, назвемо його “Order Lookup Agent”.
- Налаштування інструментів:
- “Astra DB” (“Tool”).
- Tool name: order lookup
- Description: інструмент для пошуку даних про замовлення за його номером
- Database: customer
- Collection: orders
- Tool Parameters: !Order number (щоб агент міг дістати номер замовлення)
- “Astra DB” (“Tool”).
- Tool name: product lookup
- Description: інструмент для пошуку додаткової інформації про продукти з їх ідентифікаторами.
- Database: customer
- Collection: products
- Tool Parameters: !Product ID (щоб агент міг дістати код замовлення)
- Інструкції для Order Lookup Agent: Напишіть чіткі інструкції для цього агента. Наприклад: “Ви використовуєте ці інструменти для отримання інформації про замовлення і продукти. Повертайте тільки інформацію про замовлення.”
- Додати інструменти до Manager Agent: Додайте “Order Lookup Agent” до “Manager Agent” як інструмент.
Тепер “Manager Agent” може використовувати обидва інструменти (FAQ та Order Lookup) для відповіді на запити.
Інтеграція з вашим застосунком: Від API до інтерфейсу
Останній крок – це інтеграція вашого ШІ-агента у ваш веб-додаток.
- API доступ: Перейдіть у вкладку “API” в Langflow та скопіюйте код на Python (або JavaScript, якщо ви використовуєте фронтенд на JavaScript) для використання API.
- Налаштування в коді:
- Створіть новий файл (наприклад,
main.py
). - Вставте код з вкладки API у файл.
- Встановіть необхідні залежності (за допомогою
pip install -r requirements.txt
). - Налаштуйте змінні середовища (API ключ, тощо).
- Створіть новий файл (наприклад,
- Створення простого Streamlit-інтерфейсу:
- Встановіть Streamlit (
pip install streamlit
). - Використовуючи простий код на Python, створіть інтерфейс користувача з текстовим полем введення повідомлення та кнопкою “Run flow”.
- У функції основного циклу (зазвичай названої
main()
в Streamlit) викличте функціюrun_flow()
, 전달яючи повідомлення користувача. - Виведіть відповідь від API за допомогою
st.markdown()
.
- Встановіть Streamlit (
Завершення: Загальні висновки
Вітаю! Ви тільки що створили багатоагентну ШІ-систему з використанням Langflow, яка може відповідати на запитання, перевіряти замовлення та надавати корисну інформацію, все це – за допомогою потужності великих мовних моделей.
Основні висновки:
- Langflow – це зручний інструмент для розробки ШІ-додатків.
- Агенти – це серце ваших ШІ-систем, які використовують LLM для виконання задач.
- RAG дозволяє агентам використовувати конкретну інформацію.
- Багатоагентні системи дозволяють масштабувати ваші додатки.
- Ви можете інтегрувати ваших агентів у веб-додатки за допомогою API.
Ваш власний ШІ – це лише початок!