Закрийте меню

    Підпишіться

    Get the latest creative news from FooBar about art, design and business.

    Підпишіться
    Підсумки

    Чи винні ми у “галюцинаціях” ШІ? Як фантазія машин стає їхньою суперсилою.

    12 Вересня, 2025
    Інсайти

    Vibe Coding: Чи замінить ШІ традиційне програмування? Розмова з засновником Replit

    11 Вересня, 2025
    Огляд

    Чи зможе ваш кіт намалювати шедевр? SeaDream 4.0 і світ ШІ-мистецтва.

    11 Вересня, 2025
    Цікаве
    • Чи винні ми у “галюцинаціях” ШІ? Як фантазія машин стає їхньою суперсилою.
    • Vibe Coding: Чи замінить ШІ традиційне програмування? Розмова з засновником Replit
    • Чи зможе ваш кіт намалювати шедевр? SeaDream 4.0 і світ ШІ-мистецтва.
    • Швидкий, Стильний та Просторово-розуміючий AI: Огляд Нової Хвилі Відеогенерації
    • Перестаньте платити: Як ШІ допоможе вам створювати власні інструменти та економити гроші
    • Від ідеї до застосунку за 5 хвилин: Deep Agent від Abacus AI — магія “vibe coding”
    • AI для маркетологів: Від помічника до партнера у великій грі
    • Захоплива гра: Хто кращий? Добрі хакери проти кіберзлочинців
    П’ятниця, 12 Вересня
    ШІ для ЮнікорнівШІ для Юнікорнів
    • Головна
    • Гайди
    • Інструкції
    • Інсайти
    • Огляд
    • Базис
    • Підсумки
    • Тренди
    ШІ для ЮнікорнівШІ для Юнікорнів
    Додому » Інструкції » Агенти в дії: Покроковий посібник зі створення RAG чат-бота
    ШІ для Юнікорнів | Агенти в дії: Покроковий посібник зі створення RAG чат-бота
    Інструкції

    Агенти в дії: Покроковий посібник зі створення RAG чат-бота

    Ліла ГартBy Ліла Гарт30 Квітня, 2025Оновлено:30 Липня, 2025Коментарів немає10 мінут читання
    Поділитися
    Facebook Twitter LinkedIn Pinterest Електронна пошта Телеграма WhatsApp Нитки Копіювати посилання

    Звичайно, ось стаття, написана у вашому стилі, заснована на наданій розшифровці відео:

    Агенти в дії: Ліла Гарт з вами, і я завжди в захваті від того, як людський інтелект продовжує дивувати та захоплювати. Нещодавно я звернула увагу на відео, яке десь. Так, вразило мене глибиною підходу до створення інтелектуальних систем. Мова піде про те, як об’єднати силу кількох штучних інтелектів для створення відповіді на потреби користувачів, використовуючи саме те, що треба, і нічого зайвого.

    Чи траплялося вам стикатися з морем даних у вашому VectorDB, використовуючи їх для генеративного пошуку? Певне, ви відчували, що контекст, який надається вашій LLM для вражаючих результатів, дещо недосконалий. Вона просто витягує дані, які зовсім не стосуються вашого запиту. Що ж, саме це і хотілося розібрати але

    Почнімо з самого початку. Нам розповідають про практичний приклад, у якому поєднуються:

    • Категоризація запитів. Фактично,
    • Вилучення контексту з VectorDB.
    • Генерація відповідей природною мовою – але все це з використанням багатоагентного підходу.
    • бачите,

    І все це крок за кроком.

    Крок 1: Занурення у світ коду

    Перше, з. Щоб було ясно, чого починаємо, загалом, це клонування репозиторію на наш локальний пристрій, приблизно так. Звичайно, далі ми переходимо до каталогу UI, щоб встановити всі необхідні залежності. Чесно кажучи, хоча з UI ми працювати не будемо, важливо. Знати, уявіть собі, що він реалізований з використанням React та TypeScript. Зрозуміло, це те, що показує кінцевий результат у вашому браузері. Фактично, очевидно,

    Одразу хочу відзначити Carbon components – чудову оболонку для створення інтерфейсу. Це спрощує роботу, особливо для тих, хто не є надто досвідченим в передній розробці. Чесно кажучи, раджу з ними ознайомитись, особливо якщо плануєте змінювати інтерфейс програми.

    Ось, нарешті, ми встановили залежності. Нам залишається лише скопіювати. Env загалом, та Example та створити. Env як у клієнта, так і на серверній стороні, десь так. Ці бачите, файли містять важливу інформацію для налаштування.

    Далі, щоб зробити програму більш особистою, можна змінити назву програми та брендинг. У цьому прикладі застосовується назва “Агенти в дії! “. Фактично,

    Отже, з UI ми на сьогодні завершили. Переходимо до от, API, яке написано на Python. Створюємо віртуальне середовище з назвою aiagentic, активуємо його та встановлюємо всі залежності. Щоб було ясно, тут нам знадобиться терпіння, оскільки цей процес може зайняти деякий час. Ми встановлюємо CrewAI та Watsonx. Ai.

    Коли залежності встановлені, ми копіюємо тому env. Зрозуміло, example та розміщуємо його як але Env в API. Всередині цього файлу містяться необхідні рядки підключення для Watsonx. Безумовно, ai. Справа в тому, що

    Для отримання цих даних, вам потрібно перейти до Cloud, відкрити Watson Studio, а потім IBM watsonx. Далі – у Prompt Lab, де у верхньому правому куті ви знайдете “view. Code”, та побачите cURL наприклад, команду з усіма основними даними, потрібними для налаштування API.

    Отже, розумієте, звідси ми отримуємо:

    • BASE URL.
    • PROJECT ID. Безумовно,
    • API KEY. Очевидно,

    API ключ треба створити окремо в розділі IAM, в підрозділі API keys. Створюємо новий ключ, називаємо знаєте, його AGENTIC та копіюємо його.

    Тепер API налаштовано, отже, можна переходити до створення гілки.

    Крок 2: Запуск служб

    Ми створюємо нову гілку з назвою one-step. Щоб було ясно, нам потрібно буде запустити усі наші сервіси.

    Ми маємо три сервіси:

    • FastAPI бо
    • React UI. Зрозуміло,
    • Express Server.

    Спочатку запускаємо Uvicorn, який підготує FastAPI. Потім переходимо до UI, де в принципі, запускаємо клієнт та сервер. Більше того, команди для цього можна знайти в репозиторії.

    Чекаємо, поки Uvicorn підготує FastAPI, та переходимо до браузера, щоб побачити, як виглядає UI. Більше того,

    уявіть собі,

    І ось перед нами чат-вікно з парою кнопок. На перший погляд, все просто, але на бекенді все набагато цікавіше.

    Якщо зайти в API directory, там знаходяться. Декілька папок, які нас цікавлять, та текстовий файл questions. Txt та далі ми вставляємо відповідь у вікно чату. Звичайно,

    Коли ми натиснемо “Відправити”, бекенд має виконати таке:

    1. Категоризувати запит. Цікаво,
    2. Вибрати потрібні дані з відповідної колекції VectorDB та ChromaDB. Щоб було ясно,
    3. Передати їх у налаштований промпт.
    4. Повернути гарну відповідь. Насправді, скажімо,

    Але спочатку перевіримо, як це працює. Цікаво, спробуємо запустити скрипт, який знаходиться в API ну, scripts, під назвою process document script.

    Він потрібен для створення ChromaDB VectorDB. В папці docs є три текстових файли: accounting, billing та technical. Мета в тому, щоб виділити окремі теми, та не “змішувати” їх між собою. Уявіть, у вас є велика документація, і коли ви робите запит до VectorDB. Cosine similarity distance бачите, буде однаковим для даних, які не мають стосунку до вашого запиту. Простіше кажучи,

    Отже, скрипт перебирає всі файли з папки docs. Для кожного файлу створюється нова колекція та зберігаються вбудовування. Скрипт перевірить, чи є колекції. Якщо немає, то їх буде створено: account, billing та technical.

    Перш ніж бачите, ми почнемо роботу, нам потрібно категоризувати запит. І саме тут ми створимо нашого першого агента, агента категоризації.

    У маршруті agentic route ми бачимо коментарі, де описано, що мають робити агенти: категоризація запиту, вилучення контексту та генерація відповіді.

    Почнемо з імпортування фреймворку CrewAI.

    Нам знадобляться такі класи:

    • agent
    • task
    • crew
    • process
    • LLM

    Тепер нам потрібно створити нашу першу LLM. Простіше кажучи,

    З документації беремо параметри: model, temperature, max tokens та рядки підключення.

    дивіться,

    Для прикладу будемо використовувати Granite 3. 8 billion бо додаємо “watsonx” до назви моделі.
    Temperature – 0 проте фактично, 7.
    Max tokens – 50.
    Нам також потрібні рядки підключення для Watson: API key, project ID та URL.

    URL.
    API key – з файлу оскільки Env.
    Project ID.

    Тепер ми можемо інтегрувати все це у клас CrewAI LLM, приблизно так.

    Отже, ми створили LLM, а тепер створюємо агента категоризації. Безумовно, називаємо його Collection Selector.
    Роль агента – Collection Selector, мета – аналізувати запити користувачів та визначати найвідповіднішу колекцію ChromaDB. Backstory – він експерт з класифікації от, запитів, який направляє питання у правильний домен.

    Розберемо параметри:

    • verbose ну, – true, щоб бачити логи, щось на зразок.
    • allow delegation – false (ми не використовуємо делегування).
    • max iterations – стандартне значення 20 (у нас проста задача, тому можна залишити так).
    • brain – категоризаційний LLM, який використовує Granite.

    Отже, в нас є агент з мізками, роллю, та бекграундом. Тепер створимо завдання.
    Для слухайте, завдання важливо задати agent, description, output JSON.
    Далі нам потрібен prompt.
    Ми звертаємось уявіть собі, до агента з проханням визначити найкращу категорію, повернути лише одне слово. Ми пропонуємо визначення категорій, щоб дати агенту більше свободи. До речі,

    У нашому випадку ми потребуємо чіткого формату відповіді, тому ми зазначаємо, що відповідь буде у форматі JSON об’єкта з полем category зі значенням technical, billing або account.

    слухайте,

    Для output JSON потрібна модель Pydantic.
    Ми визначаємо модель CategoryResponse, яка містить поле category з переліком можливих значень. Додали опис, оскільки, є підозра, що агент дивиться на опис моделей.

    Тепер, коли у нас є агент та задача, створимо команду. Безумовно,
    Нам потрібний агент, завдання, process та verbosity.
    Спочатку додаємо агента. Далі додаємо завдання категоризації та
    Verbose = true.

    Process має значення sequential (покроковий процес).

    Отже, ми підготували команду, даємо їй старт.
    Ми очікуємо отримати JSON об’єкт з полем category.
    Ми витягуємо категорію з відповіді.

    Перевіряємо, чи все працює.
    Відправляємо наявний запит, та сподіваємось отримати category technical.

    Чудово і тепер ми бачимо, що робить агент.
    Ми можемо побачити запит, який ми передали з UI. Щоб було ясно,

    Отримуємо остаточну відповідь в потрібному форматі. Зрозуміло, до речі,

    Отже, ми створили базову категоризацію та агента, і тепер можемо рухатися далі. До речі,

    Крок 3: Поглиблюємо пайплайн

    Переходимо до наступного етапу.
    Тепер нам потрібно отримати дані з VectorDB.
    Для цього ми використовуємо схожий процес, як і в попередньому кроці.

    слухайте,

    Створюємо нового LLM, retriever LLM. Йому знадобиться більше токенів. Ми залишаємо 1000, все інше – без змін. Відверто кажучи,

    Додаємо нового агента та нове завдання. Відверто кажучи,

    Тепер слухайте, різниця буде в тому, що використовується інструмент, про який ми поговоримо.
    Агент-провідник повинен отримати категорію, яку він отримав від агента категоризації, та передати її у функцію для запиту VectorDB.

    Створюємо новий інструмент, який називаємо query collection tool.
    Визначаємо його і
    На вхід він приймає category.
    На вхід він приймає query to embed.
    Повертає dictionary.
    слухайте, Інструмент припустимо, для запитів ChromaDB базуватиметься на категорії, та повертатиме відповідні документи. Простіше кажучи,
    Для реалізації нам знадобиться ще один компонент: Watsonx. Безумовно, ai embeddings.
    Далі ми беремо категорію, яка повернулася після. Виконання категоріїзаційного завдання, та використовуємо її для запиту VectorDB.
    У нас є функція, на виконання якої ми покладаємось.

    Отже, тепер є інструмент, тому ми можемо подивитися, що робить агент retrieval. Чесно кажучи,
    Агент отримує запит з маршруту.
    Має вихід. Нам не потрібно хвилюватися про вихідний JSON.
    Тут потрібно додати контекст. Ми надаємо десь так, доступ до завдання категоризації та її виводу, щось на зразок.
    Тепер агент знає, як ми отримуємо категорію, і саме це ми повідомляємо агенту.
    Завдання агента: подивись на категорію, подивись на запит, використай цю функцію, виклич її та поверни контекст.

    Додаємо нового агента до команди. Фактично, додаємо нове завдання хоча
    Маємо print out category result.

    Перевіряємо оскільки
    Отримуємо потрібну категорію.
    Агент отримав результат RAG.
    Використав категорію.
    Подав її у колекцію ChromaDB хоча
    Запитав. Простіше кажучи,
    Повертає контекст для запиту.

    Ми фактично отримали все, що потрібно для останнього агента.

    Маємо категорію, запит, та контекст та весь цей набір даних допоможе отримати відповідь.
    Використання функцій та інструментів в агентах – дуже круто!
    Ми завершили з агентом retrieval, і переходимо до наступного.

    Крок 4: Фінальний акорд – створення відповіді

    Ось ми і на останньому етапі застосунку! До речі, розумієте, скажімо, створимо агента, який формуватиме гарну відповідь для користувача.
    Робимо все майже те саме.
    Створюємо окремі LLM для кожного з агентів.
    уявіть собі, Тут важливим є зміна кількості токенів. Звісно, нам потрібно більше місця для відповіді.
    Також ми можемо використовувати різні моделі в Watson. До речі, ai, та змінювати параметри. Простіше кажучи,

    Отже, нам потрібні:

    • Агент генерації.
    • Остання задача. Начебто,
    • Ще один інструмент.

    Останній інструмент – це те, як ми знаходимо промпт.
    У проєкті ви можете використовувати accelerator. Знайдіть watsonx. Відверто кажучи, ai RAG, і він надасть вам цей accelerator. В ньому є шаблони промптів, які написали ті, то навчали моделі.
    Ми копіюємо prompt, та інтерполюємо контекст, отриманий від ChromaDB, у контекст та питання.

    Створюємо останній інструмент.
    Він бере контекст та запит, та відправляє їх у промпт.
    Останнє, що нам потрібно, – модель Pydantic для виведення, оскільки ми тепер відправляємо все це у UI.
    Це розумієте, потрібно для того, щоб вихід був у форматі JSON.
    Його має містити категорії та відповідь.

    Оголошуємо модель FinalResponse.

    Отже, додаємо останнього агента у команду та надаємо йому кінцеве завдання. Безумовно,
    Тестуємо, чи все працює.
    Гарна відповідь є!
    Отримуємо категорію, типу того.
    Надсилаємо її до retrieval, який повертає контекст. Відверто кажучи, з RAG, який, в свою чергу, буде використаний агентом.
    Агент інтерполює ці дані у промпт.

    Все працює!
    уявіть собі, З відповіддю все добре оскільки

    Відповідь містить контекст та інформацію.
    Ми створили багатоагентний пайплайн!

    Давайте підсумуємо:
    Ми побудували бекенд до агентного RAG чат-бота, який може ідентифікувати категорію запитів, націлювати правильну колекцію ChromaDB, інтерполювати запит у контексті у власному промпті та генерувати відповідь природною мовою.

    За цією програмою та процесом, запрошуємо вас дослідити додаткові випадки використання, налаштувати UI та поекспериментувати з фреймворком CrewAI.

    Почніть з коду, розважайтесь та створіть щось круте!

    Дивитись ще по темі статті
    ×
    AI Graphics and Video AI tools Algorithms Automation ChatGPT Coding LLMs (Large Language Models) Model Evaluation Programming tools Prompt Engineering
    Поділитися. Facebook Twitter Pinterest LinkedIn Tumblr Електронна пошта Reddit Телеграма WhatsApp Нитки Копіювати посилання
    Попередня статтяКоли AI приносить каву: роздуми про творчість в епоху штучного інтелекту
    Наступна стаття Штучний інтелект: Deepseek R2, Етика, Тест Тьюринга, Google, та Новини Індустрії
    Портрет Ліла Гарт, крупним планом. Жінка з рудим волоссям, усміхнена. Фотографія в студії. LilaHart portrait.
    Ліла Гарт
    • Website

    Ліла Харт — авторка, яка перетворює інтерв’ю та події на історії з серцем. Її тексти — це легкий стиль, жива емоція й увага до деталей, що надихають.

    Пов’язані повідомлення

    Підсумки

    Чи винні ми у “галюцинаціях” ШІ? Як фантазія машин стає їхньою суперсилою.

    12 Вересня, 2025
    Інсайти

    Vibe Coding: Чи замінить ШІ традиційне програмування? Розмова з засновником Replit

    11 Вересня, 2025
    Огляд

    Чи зможе ваш кіт намалювати шедевр? SeaDream 4.0 і світ ШІ-мистецтва.

    11 Вересня, 2025
    Додайте коментар

    Comments are closed.

    Читайте ще

    Чи винні ми у “галюцинаціях” ШІ? Як фантазія машин стає їхньою суперсилою.

    12 Вересня, 20252 Перегляди

    Vibe Coding: Чи замінить ШІ традиційне програмування? Розмова з засновником Replit

    11 Вересня, 20251 Перегляди

    Чи зможе ваш кіт намалювати шедевр? SeaDream 4.0 і світ ШІ-мистецтва.

    11 Вересня, 20250 Перегляди

    Швидкий, Стильний та Просторово-розуміючий AI: Огляд Нової Хвилі Відеогенерації

    11 Вересня, 20253 Перегляди

    Читають найбільше

    Гайди

    Від нуля до майстерності: Подорож у світ автоматизації з N8N

    Ліла Гарт30 Квітня, 2025
    Інструкції

    V3: Світ, де технології оживляють мрії

    Ліла Гарт17 Липня, 2025
    Огляд

    Клод 4: ШІ, який мислить, відчуває та ставить під сумнів реальність

    Ліла Гарт23 Травня, 2025
    Інструкції

    Збудуйте свій AI-світ: Повний посібник з локального розгортання.

    Ліла Гарт30 Квітня, 2025
    Популярні

    Клод 4: ШІ, який мислить, відчуває та ставить під сумнів реальність

    23 Травня, 2025109 Перегляди

    Від нуля до майстерності: Подорож у світ автоматизації з N8N

    30 Квітня, 202560 Перегляди

    Game Over для RL? Розбираємо скандальне дослідження про AI та міркування

    24 Квітня, 202528 Перегляди

    Підпишіться на оновлення

    Отримайте сповіщення про нові статті на вашу пошту

    Підпишіться
    • На домашню сторінку
    • Наші автори
    • Концепт
    • Контактна інформація
    • Політика конфіденційності
    © 2025 Створено та підтримується 4UNCORNS Team

    Введіть вище та натисніть Enter для пошуку. Натисніть Esc для відміни

    Cookies
    Ми використовуємо файли cookie. Якщо ви вважаєте, що це нормально, просто натисніть «Прийняти все». Ви також можете вибрати, який тип файлів cookie вам потрібен, натиснувши «Налаштування». Ознайомтеся з нашою політикою використання файлів cookie
    Налаштування Прийняти все
    Cookies
    Виберіть, які файли cookie приймати. Ваш вибір буде збережено протягом одного року. Ознайомтеся з нашою політикою використання файлів cookie
    • Необхідні
      Ці файли cookie не є необов'язковими. Вони необхідні для функціонування сайту.
    • Статистика
      Для того щоб ми могли поліпшити функціональність і структуру сайту, ґрунтуючись на тому, як він використовується.
    • Розширені
      Для того, щоб наш сайт працював якнайкраще під час вашого відвідування. Якщо ви відмовитеся від цих файлів cookie, з веб-сайту зникнуть деякі функції.
    • Маркетинг
      Ділячись своїми інтересами та поведінкою під час відвідування нашого сайту, ви збільшуєте шанс побачити персоналізований контент та пропозиції.
    Зберігти Прийняти все