Вашей организации требуется многоканальный интеллектуальный чат-бот и поисковая система, способная обрабатывать различные типы данных, разбросанных по разным местам. Кроме того, диалоговый чат-бот должен иметь возможность предоставлять ответы на запросы вместе с указанием источника и объяснением того, как и где был получен ответ. Другими словами, вам нужен частный и защищенный ChatGPT для вашей организации, который может интерпретировать, понимать и отвечать на вопросы о ваших бизнес-данных .
Цель POC — показать/доказать ценность виртуального помощника GPT, созданного с помощью служб Azure, с вашими собственными данными в вашей собственной среде. Результаты:
API серверного бота, созданный с помощью Bot Framework и доступный для нескольких каналов (веб-чат, команды MS, SMS, электронная почта, Slack и т. д.).
Интерфейсное веб-приложение с поиском и пользовательским интерфейсом бота.
Репозиторий создан для того, чтобы шаг за шагом научить вас создавать интеллектуальную поисковую систему на основе OpenAI. Каждый блокнот строится поверх друг друга и заканчивается созданием двух приложений.
Для сотрудников Microsoft FTE: это финансируемый клиентом VBD, расположенный ниже активов для поставки.
Элемент | Описание | Связь |
---|---|---|
Информация и техническое описание VBD SKU | CSAM должен отправить его как «Инвестированный клиент» в счет кредитов/часов контракта на единую поддержку. Клиент решает, 3 или 5 дней. | Страница SKU ESXP |
Аккредитация VBD для CSA | Ссылки для CSA для получения аккредитации, необходимой для проведения семинара | Ссылка 1, Ссылка 2 |
VBD 3-5 дней POC Актив (IP) | MVP, который должен быть предоставлен (это репозиторий GitHub). | Azure-Cognitive-Search-Azure-OpenAI-Accelerator |
Колода Мастерской VBD | Колода, знакомящая и объясняющая семинар | Введение AOAI GPT Azure Smart Search Engine Accelerator.pptx |
Учебное видео CSA | 2-часовой тренинг для Microsoft CSA | Запись тренировки POC VBD (скоро будет новое видео!) |
Предварительные условия Клиент 3-5 дней POC
Подписка Azure
Принято приложение для Azure Open AI, включая GPT-4o. Если у клиента нет одобрения GPT-4o, Microsoft CSA может предоставить его во время семинара.
Участников Microsoft желательно добавлять в качестве гостей в клиентах Azure AD. Если это невозможно, клиенты могут выдавать корпоративные идентификаторы членам Microsoft.
Для этого POC Workshop необходимо настроить группу ресурсов (RG) в клиентском клиенте Azure.
Команда клиента и команда Microsoft должны иметь разрешения участника для этой группы ресурсов, чтобы они могли все настроить за 2 недели до семинара.
Учетная запись хранения должна быть установлена в RG.
Данные/документы клиента должны быть загружены в учетную запись хранилища BLOB-объектов не позднее, чем за две недели до даты семинара.
Регистрация мультитенантного приложения (субъект службы) должна быть создана клиентом (сохраните идентификатор клиента и секретное значение).
Клиент должен предоставить команде Microsoft 10–20 вопросов (от простых до сложных), на которые бот должен ответить правильно.
Для совместной работы и стандартизации IDE во время семинара будут использоваться вычислительные экземпляры AML с Jupyper Lab. Для этого в RG необходимо развернуть рабочую область машинного обучения Azure.
Примечание. Убедитесь, что у вас достаточно квоты основных вычислений в рабочей области машинного обучения Azure.
Пользователь задает вопрос.
В приложении OpenAI LLM использует умную подсказку, чтобы определить, какой источник использовать, на основе ввода пользователя.
Доступны пять типов источников:
Стенограммы диалогов всех серий сериала: ДРУЗЬЯ
90 000 тезисов публикаций Covid
4 объемные книги в формате PDF
3а. База данных SQL Azure — содержит статистику по COVID в США.
3б. Конечные точки API — API RESTful OpenAPI 3.0, содержащий актуальную статистику о Covid.
3в. API поиска Azure Bing — обеспечивает доступ к Интернету, позволяя использовать такие сценарии, как: QnA на общедоступных веб-сайтах.
3д. Поиск Azure AI — содержит документы, обогащенные искусственным интеллектом, из хранилища BLOB-объектов:
3ф. Табличный файл CSV — содержит статистику по COVID в США.
Приложение извлекает результат из источника и формирует ответ.
Кортеж (вопрос и ответ) сохраняется в CosmosDB в постоянной памяти и для дальнейшего анализа.
Ответ доставляется пользователю.
https://gptsmartsearchapp.azurewebsites.net/
100% Питон.
Использует Azure Cognitive Services для индексации и обогащения неструктурированных документов: оптическое распознавание текста на изображениях, группирование и автоматическая векторизация.
Использует возможности гибридного поиска Azure AI Search для предоставления наилучшего семантического ответа (комбинированный текстовый и векторный поиск).
Использует LangChain в качестве оболочки для взаимодействия с Azure OpenAI, векторными хранилищами, построения подсказок и создания агентов.
Многоязычный (поглощает, индексирует и понимает любой язык)
Мультииндекс -> несколько поисковых индексов
Вопросы и ответы по табличным данным с файлами CSV и базами данных SQL
Использует пакет SDK Azure AI Document Intelligence (бывший Распознаватель форм) для анализа сложных и больших PDF-документов.
Использует Bing Search API для поиска в Интернете и вопросов и ответов на общедоступных веб-сайтах.
Подключается к источникам данных API, преобразуя вопросы на естественном языке в вызовы API.
Использует CosmosDB в качестве постоянной памяти для сохранения разговоров пользователей.
Использует Streamlit для создания веб-приложения Frontend на Python.
Использует Bot Framework и Bot Service для размещения серверной части API Bot и предоставления ее нескольким каналам, включая MS Teams.
Также использует LangServe/FastAPI для развертывания альтернативного внутреннего API с возможностями потоковой передачи.
Примечание. (обязательное условие) вам необходимо уже создать службу Azure OpenAI.
Создайте форк этого репозитория в своей учетной записи Github.
В студии Azure OpenAI разверните эти модели (более старые модели, чем указанные ниже, не будут работать):
"гпт-4о"
"gpt-4o-мини"
"text-embedding-ada-002 (или новее)"
Создайте группу ресурсов, в которой будут находиться все ресурсы этого ускорителя. Azure OpenAI может находиться в другом RG или другой подписке.
НАЖМИТЕ НИЖЕ, чтобы создать всю инфраструктуру Azure, необходимую для запуска блокнотов (Azure AI Search, Cognitive Services и т. д.):
Примечание . Если вы никогда раньше не создавали Azure AI Services Multi-Service account
, создайте ее вручную на портале Azure, чтобы прочитать и принять условия ответственного ИИ. После развертывания удалите его, а затем используйте кнопку развертывания выше.
Клонируйте свой разветвленный репозиторий в свой вычислительный экземпляр AML. Если ваш репозиторий является частным, см. ниже в разделе «Устранение неполадок», как клонировать частный репозиторий.
Убедитесь, что вы запускаете блокноты в среде Conda Python 3.10 или более поздней версии.
Установите зависимости на свой компьютер (убедитесь, что вы выполнили приведенную ниже команду pip в той же среде conda, в которой собираетесь запускать ноутбуки. Например, в вычислительном экземпляре AZML запустите:
conda activate azureml_py310_sdkv2 pip install -r ./common/requirements.txt
Вы можете получить некоторые ошибки зависимостей pip, но это нормально, библиотеки были установлены правильно, независимо от ошибки.
Отредактируйте файл credentials.env
, указав собственные значения из сервисов, созданных на шаге 4.
Для BLOB_SAS_TOKEN и BLOB_CONNECTION_STRING. Перейдите в «Учетная запись хранения»> «Безопасность + сеть»> «Подпись общего доступа»> «Создать SAS».
Запустите ноутбуки по порядку . Они строятся друг на друге.
Зачем использовать поисковую систему Azure AI для предоставления контекста для LLM, а не для тонкой настройки LLM?
Ответ: Цитируя документацию OpenAI: «GPT-3 был предварительно обучен на огромном объеме текста из открытого Интернета. Когда ему дают подсказку с несколькими примерами, он часто может интуитивно понять, какую задачу вы пытаетесь выполнить, и сгенерировать правдоподобное завершение. Это часто называют «обучением за несколько шагов». Точная настройка улучшает обучение с помощью нескольких шагов за счет обучения на гораздо большем количестве примеров, чем может уместиться в подсказке, что позволяет вам достичь лучших результатов при выполнении широкого круга задач. После точной настройки модели вам больше не нужно будет предоставлять примеры в командной строке. Это экономит затраты и позволяет выполнять запросы с меньшей задержкой ».
Однако для точной настройки модели необходимо предоставить сотни или тысячи кортежей подсказок и дополнений, которые по сути представляют собой образцы запроса-ответа. Цель тонкой настройки не в том, чтобы дать LLM знания о данных компании, а в том, чтобы предоставить ему примеры, чтобы он мог действительно хорошо выполнять задачи, не требуя примеров для каждого запроса.
Бывают случаи, когда необходима точная настройка, например, когда примеры содержат конфиденциальные данные, которые не следует раскрывать в подсказках, или когда используемый язык является узкоспециализированным, например, в здравоохранении, фармацевтике или других отраслях, или случаи использования, когда используемый язык не часто встречается в Интернете.
Шаги по клонированию частного репозитория:
В терминале вставьте текст ниже, заменив свой адрес электронной почты GitHub. Создайте новый ключ SSH.
ssh-keygen -t ed25519 -C "ваш[email protected]"
Скопируйте открытый ключ SSH в буфер обмена. Добавьте новый ключ SSH.
cat ~/.ssh/id_ed25519.pub# Затем выберите и скопируйте содержимое файла id_ed25519.pub#, отображаемого в терминале, в буфер обмена.
На GitHub перейдите в «Настройки» -> «Ключи SSH и GPG» -> «Новый ключ SSH».
В поле «Название» добавьте описательную метку для нового ключа. «ОМЛ-компьютер». В поле «Ключ» вставьте свой открытый ключ.
Клонируйте свой частный репозиторий
git clone [email protected]:ВАШЕ-ИМЯ ПОЛЬЗОВАТЕЛЯ/ВАШ-РЕПОЗИТОРИЙ.git
Этот проект приветствует вклад и предложения. Большинство вкладов требует от вас согласия с Лицензионным соглашением для авторов (CLA), в котором говорится, что вы имеете право и действительно предоставляете нам права на использование вашего вклада. Подробную информацию можно найти на странице https://cla.opensource.microsoft.com.
Когда вы отправляете запрос на включение, бот CLA автоматически определяет, нужно ли вам предоставить CLA, и соответствующим образом оформляет PR (например, проверку статуса, комментарий). Просто следуйте инструкциям бота. Вам нужно будет сделать это только один раз во всех репозиториях, используя наш CLA.
В этом проекте принят Кодекс поведения Microsoft с открытым исходным кодом. Для получения дополнительной информации см. часто задаваемые вопросы о Кодексе поведения или свяжитесь с нами по адресу [email protected], если у вас возникнут дополнительные вопросы или комментарии.
Этот проект может содержать товарные знаки или логотипы проектов, продуктов или услуг. Разрешенное использование товарных знаков и логотипов Microsoft регулируется и должно соответствовать Руководству Microsoft по товарным знакам и брендам. Использование товарных знаков или логотипов Microsoft в измененных версиях этого проекта не должно вызывать путаницу или подразумевать спонсорство Microsoft. Любое использование товарных знаков или логотипов третьих лиц регулируется политикой этих третьих сторон.