Створення чат-бота за допомогою Azure AI Search та OpenAI Studio (Azure AI Foundry)
Проблема
Широка доступність додатків, керованих GenAI, викликає інтерес до його можливостей і цінних пропозицій для компаній у бгатьох галузях. Існує безліч архітектур GenAI, платформ і пропозицій щодо рішень, які часто призводять до плутанини для внутрішніх команд розробників штучного інтелекту, які зацікавлені у створенні цих рішень.
Чат-боти клієнтів, керовані GenAI, які дозволяють кінцевим користувачам взаємодіяти з даними компанії, стали гарячою темою для організаційних стратегічних ініціатив. Команди розробників зацікавлені в тому, щоб зрозуміти, як легко створювати ці спеціальні чат-боти на платформі Azure у спосіб, який можна масштабувати на рівні підприємства.
Рішення
Є кілька способів створити чат-бота в Azure, який дозволить вам взаємодіяти з вашими даними. Ці дані можуть бути у формі структурованих баз даних або неструктурованих документів, таких як PDF-файли.
Ця стаття розповідає, як створити чат-бота за допомогою Open AI Studio від Azure, яка тепер називається Azure AI Foundry. Для цього також знадобиться когнітивний пошук Azure, який тепер називається пошуком Azure AI для індексування, векторизації та вбудовування ваших даних, що зберігаються в базі даних Azure SQL. Managed Identity можна використовувати для керування доступом. Нарешті, чат-бот можна розгорнути або у веб-програмі, або в спеціальній CoPilot Studio.
Наступна діаграма ілюструє цю архітектуру чат-бота Azure AI. Цікаво, що цю діаграму архітектури також створив GenAI за допомогою інструменту під назвою Eraser (app.eraser.io), який може створювати діаграми (ERD, потоки процесів, хмарні архітектури тощо) за допомогою підказок природною мовою.
Ось промт, використаний для створення діаграми:
«Створіть діаграму архітектури Azure для чат-бота, який використовує базу даних SQL Azure, що містить вихідні дані, які індексуються за допомогою Azure AI Search (також називається Azure Cognitive Search). Потім чат-бот використовується як джерело в Azure OpenAI Studio (також називається Azure AI Foundry), а потім розгортається у веб-програмі для спілкування клієнтів. Уся автентифікація контролюється за допомогою Managed Identity».
Налаштування пошуку Azure AI
Azure AI Search покращує роботу чат-ботів, надаючи потужні функції пошуку, забезпечуючи швидкий і ефективний пошук інформації, обробку природної мови та персоналізовані відповіді. Він також підтримує масштабованість, розширені можливості запитів і повну інтеграцію з іншими службами Azure, покращуючи задоволеність користувачів і залученість. Доступно кілька рівнів цін. Для однієї підписки доступний лише один безкоштовний екземпляр, тоді як наступний доступний екземпляр «Базовий», якого достатньо для наших цілей щодо перевірки концепції.
Налаштування контролю доступу API
Переконайтеся, що для параметра «Керування доступом до API» встановлено «Контроль доступу на основі ролей» для ідентифікації та керування доступом корпоративного рівня.
Типи джерел даних для пошуку AI
У наведеному нижче списку показано доступні джерела даних, які можна додати до пошуку AI. Ми будемо використовувати зразок бази даних SQL Azure як джерело даних. Дані містять детальні описи різних об’єктів власності, розташованих у Вашингтоні. Кожен список нерухомості містить інформацію про тип, особливості та місце проживання.
Додавання когнітивних навичок в Azure AI Search
Додавання когнітивних навичок у Azure AI Search дає змогу збагачувати дані під час індексування, застосовуючи такі можливості AI, як виявлення мови, розпізнавання об’єктів, аналіз настроїв і спеціальні навички для покращення пошуку.
За замовчуванням індекс визначається та надається вам. Ви можете видалити непотрібні поля. Усе можна редагувати, але після створення індексу, видалення чи зміни існуючих полів потрібно буде повторно індексувати документи.
Хоча можна налаштувати заплановані оновлення відповідно до того як часто оновлюються проіндексовані дані в джерелі, однак розклад не можна налаштувати для зразків або існуючих джерел даних без відстеження змін. Вам потрібно буде відредагувати джерело даних, щоб додати відстеження змін, якщо ви хочете налаштувати розклад. Частота оновлення за розкладом може бути один раз, щогодини, щодня або настроюваною, яка потенційно може бути з кроком 30 хвилин.
Семантичні конфігурації в Azure AI Search підвищують релевантність пошуку завдяки використанню моделей розуміння мови Microsoft для зміни рейтингу результатів пошуку та надання точніших і релевантніших відповідей. Вони включають такі функції, як семантичне ранжування, підписи та відповіді, які покращують загальний досвід пошуку, розуміючи контекст і наміри запитів. Загалом це забезпечить кращий пошук, ніж стандартний пошук за ключовими словами (лексичний), який виконує швидкий і гнучкий синтаксичний аналіз запиту та зіставлення по полях для пошуку за допомогою термінів або фраз будь-якою підтримуваною мовою, з операторами чи без них. Хоча це необов’язкова конфігурація в AI Search, вона потрібна в Azure OpenAI Studio, коли ви вибираєте тип семантичного пошуку.
Налаштування Azure OpenAI
Azure OpenAI Studio — це платформа для розробки та розгортання генеративних додатків штучного інтелекту з використанням попередньо створених і не створених моделей, що забезпечує масштабні інновації. Вона інтегрується з Azure AI Search для покращення пошуку інформації, налаштування релевантності та розуміння природної мови, забезпечуючи точні відповіді, відповідно до контексту.
Після того, як ви запустите Azure OpenAI Studio, вам потрібно буде ввімкнути призначену системою managed identity для керування доступом на основі ролей (RBAC) як правильну конфігурацію для масштабованості та розгортання корпоративного рівня.
Вам також потрібно буде призначити такі ролі на рівні групи ресурсів:
- Search Index Data Reader надає доступ лише для читання до індексів пошуку. Користувачі з цією роллю можуть запитувати та переглядати дані в пошукових індексах, але не можуть змінювати чи видаляти будь-які дані.
- Search Service Contributor дозволяє користувачам керувати індексами служби пошуку, індексаторами та іншими пов’язаними ресурсами. Вона надає дозволи на створення, оновлення та видалення індексів і індексаторів, але не надає повного адміністративного доступу.
- Cognitive Services OpenAI Contributor надає повний доступ до ресурсів Azure OpenAI, включаючи можливість створювати, налаштовувати та розгортати моделі. Користувачі з цією роллю також можуть завантажувати набори даних для точного налаштування та переглядати, запитувати та фільтрувати збережені дані.
Ви можете знайти докладніші відомості про конфігурацію мережі та доступу для Azure OpenAI до ваших даних у документації .
Спілкування зі своїми даними
Після завершення налаштування порталу Azure запустіть службу Azure OpenAI (Azure AI Foundry). Зверніть увагу на величезні можливості цього майданчика для чату, включаючи чат-ботів, помічників AI, аудіо в реальному часі, зображення, виконання тощо.
Вам потрібно буде створити нове розгортання з декількома параметрами, починаючи від базових і закінчуючи детально налаштованими моделями. Для цього випадку ми виберемо gpt-4o як нашу модель виконання чату.
Обмеження кількості токенів за хвилину для моделі розгортання чат-бота GPT-4o обмежує кількість токенів, які можна обробити за хвилину, забезпечуючи ефективне використання ресурсів і запобігаючи перевантаженню. Для цього випадку я вибрав тип розгортання Global Standard, тому Principle/User ID потрібно буде призначити роль RBAC «Cognitive Services OpenAI Contributor». Виконайте аналогічний процес призначення RBAC для будь-яких типів керованого розгортання.
Додавання джерела даних
Вам потрібно буде додати своє джерело даних до проекту чат-бота OpenAI Studio. Виберіть Azure AI Search разом із відповідною підпискою. Виберіть відповідну службу та індекс, які ви налаштували в ресурсі AI Search. Векторний пошук в Azure AI Studio дозволяє здійснювати семантичний пошук за допомогою векторних вставок, підвищуючи точність і релевантність результатів пошуку. Спеціальне зіставлення полів гарантує, що дані з вашого джерела правильно індексуються, покращуючи точність пошукових запитів і результатів. Наразі ми залишимо їх без прапорців.
Для типу пошуку вам буде запропоновано варіанти семантичного або ключового слова. Вибираючи «Семантичний» пошук, переконайтеся, що ви вибрали наявну конфігурацію семантичного пошуку, яку ви створили у своєму ресурсі AI Search на порталі Azure.
Для з’єднання даних виберіть Призначений системою керований ідентифікатор (System assigned managed identity).
Додайте до моделі швидкі інструкції
За потреби ви можете надати моделі підказки та контекст. Ви також матимете можливість експортувати свій код кількома мовами, зокрема json, Python, c#, curl, java, go та javascript. Це корисно, якщо ви віддаєте перевагу подальшому налаштуванню чат-бота в IDE на свій вибір (наприклад, VS Code). Після додавання ваших даних ви можете обмежити свої відповіді вмістом ваших даних, інакше LLM відповідатиме на основі додаткового контексту як частини доступних навчальних даних, якщо це можливо.
Ви також можете налаштувати строгість і параметри відновленого документа. Строгість налаштування визначає, наскільки агресивно система фільтрує нерелевантні документи на основі їх показників схожості. Отримані документи — це відповідні фрагменти даних, отримані з підключеного джерела даних для відповідей на запити користувачів.
За потреби також можна налаштувати наступні параметри. Ці налаштування допомагають налаштувати поведінку чат-бота відповідно до ваших потреб.
- Past Messages Included для підтримки контексту розмови.
- Temperature для випадковості відповіді. (Температура — це параметр, який контролює випадковість виходу, що генерується моделлю штучного інтелекту. )
- Max Response Tokens для довжини відповіді.
- Top P для різноманітності відповідей.
- Frequency Penalty щоб зменшити повторення.
- Presence Penalty для заохочення нових ідей.
Тепер, після завершення роботи з налаштування, настав час потестити чат. Давайте задамо чат-боту запитання про нерухомість, яка знаходиться біля пляжу та має басейн. Ці дані отримуються миттєво, що дозволяє спілкуватися з вашими даними в режимі реального часу. Чат-бот можна додатково налаштувати за допомогою коду у вашій IDE, і його можна розгорнути як веб-програму, програму Teams або Copilot Studio.
Можливості чату можна додатково розширити для спілкування різними мовами.
Висновок
Створення чат-бота на базі Azure AI Foundry (OpenAI Studio) у поєднанні з Azure AI Search відкриває широкі можливості для ефективної взаємодії з корпоративними даними. Використання когнітивного пошуку, векторизації даних та семантичного аналізу дозволяє значно покращити релевантність відповідей, забезпечуючи зручний доступ до інформації для кінцевих користувачів.
Глибока інтеграція із сервісами Azure, такими як Managed Identity, гарантує високий рівень безпеки та масштабованості рішення. Завдяки можливості подальшого налаштування моделей та параметрів обробки запитів чат-бот можна адаптувати до конкретних потреб бізнесу, незалежно від галузі.
У підсумку, Azure AI Foundry надає розробникам потужний інструмент для швидкого створення та впровадження AI-асистентів, які можуть спростити робочі процеси, підвищити ефективність компанії та покращити клієнтський досвід.
1 коментар
Додати коментар Підписатись на коментаріВідписатись від коментарів