Azure AI Vector Search расширяет возможности поиска, используя векторные встраивания для понимания семантического значения запросов и документов. В сочетании с Copilot Studio это обеспечивает взаимодействие с вашими данными на естественном языке, делая решение мощным инструментом для приложений на базе искусственного интеллекта. В этом руководстве пошагово показан процесс настройки всего набора — от подключения источников данных до включения расширенных функций поиска.
Содержание
- Передумови
- Крок 1: Налаштування Azure Synapse Link для Dataverse
- Крок 2: Налаштування Azure AI Search
- Крок 3: Налаштування служби Azure OpenAI
- Крок 4: Імпорт та векторизація даних в Azure AI Search
- Крок 5: Тестування векторного пошуку в Azure AI Search
- Крок 6: Інтеграція з Copilot Studio
- Висновок
- Модернізуйте бізнес разом з нами!
Предварительные требования
Прежде чем начать, убедитесь, что у вас есть
Шаг 1: установка Azure Synapse Link для Dataverse
Azure Synapse Link подключает вашу среду Dataverse к Azure, позволяя экспортировать данные в учетную запись хранилища для дальнейшей обработки. Но сначала необходимо развернуть службу Azure Synapse Analytics.
1. Создание рабочей области Azure Synapse Analytics:
В портале Azure перейдите в раздел «Создать ресурс» и создайте рабочую область Synapse Analytics, задав следующие параметры.


Скриншот 1
Скриншот 1:
- Группа ресурсов – здесь можно создать новую группу.
- Управляемая группа ресурсов – контейнер, который хранит вспомогательные ресурсы, создаваемые Azure Synapse Analytics для вашей рабочей области.
- Имя рабочей области – имя рабочей области Synapse Analytics.
- Регион – регион развертывания службы. Желательно, чтобы он совпадал с регионом среды Dataverse. Однако могут подойти и другие относительно близкие регионы (могут взиматься дополнительные расходы за передачу данных).
- Имя учетной записи – имя хранилища для Data Lake Storage, можно создать здесь.
- Имя файловой системы – имя файловой системы для Data Lake Storage, можно создать здесь.

Скриншот 2
Скриншот 2:
- Введите ваш SQL Server admin login.
- Выберите SQL Password.
2. Создайте новый Azure Synapse Link:
- Перейдите в портал Power Apps. В левом меню выберите «Azure Synapse Link».

- Нажмите «New link» и задайте следующие параметры:
- Галочка «Connect to your Azure Synapse Analytics Workspace» должна быть установлена.
- Подписка – текущая подписка Azure.
- Группа ресурсов, имя рабочей области, учетная запись хранилища – параметры из ранее созданной рабочей области Azure Synapse Analytics.
- Выберите таблицы, которые хотите экспортировать.
Примечание: будут отображаться только те таблицы, для которых включено отслеживание изменений.

1. «Append only» – может использоваться для создания новой копии данных в Azure Synapse Analytics при изменении данных Dataverse, вместо перезаписи существующих записей.
2. Partition (разделение) – по умолчанию Azure Synapse Link для Dataverse разбивает данные помесячно на основе столбца «createdOn». Для таблиц без столбца «createdOn» данные разбиваются на новые файлы каждые 5 000 000 записей.

Шаг 2: настройка Azure AI Search
Azure AI Search индексирует и векторизует ваши данные, делая их доступными для поиска с расширенными возможностями.
1. Создание экземпляра Azure AI Search:
В портале Azure создайте новый ресурс Azure AI Search. Настройте следующие параметры:
1. Группа ресурсов – та же группа ресурсов, что и для Azure Synapse Analytics.
2. Имя службы – имя экземпляра Azure AI Search.
3. Расположение – регион развертывания службы. Желательно, чтобы он совпадал с регионом среды Dataverse и службы Azure Synapse Analytics. Однако могут подойти и другие относительно близкие регионы (могут применяться дополнительные расходы за передачу данных).


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


2. Импорт данных:
- Перейдите в раздел «Import data» в вашем экземпляре Azure AI Search.
- Выберите «Azure Blob Storage» как источник данных.
- Укажите учетную запись хранилища и контейнер BLOB, в который Synapse Link экспортирует ваши данные Dataverse (например, учетная запись хранилища «Data Lake»).
3. Задайте параметры разбора:
- Установите «Parsing mode» в значение «Delimited text», так как данные находятся в формате CSV.
- Используйте запятую (,) в качестве «Delimiter character».
- Так как CSV-файлы Synapse Link не содержат заголовков, введите названия столбцов вручную, чтобы они соответствовали вашим полям Dataverse, а также системным столбцам.
Совет по устранению неполадок: после импорта автоматически создаются Index, Indexer и Skillset (стр. 16). Если индексация не удалась, проверьте проблемы с импортом CSV и при необходимости примените обходные решения (стр. 17).
Шаг 3: настройка службы Azure OpenAI
Сервис Azure OpenAI используется для предоставления моделей встраивания (embedding models) для векторизации данных в Azure AI Search. Модели встраивания позволяют выполнять семантический поиск, преобразуя текст в векторные представления.
1. Настройка сервиса Azure OpenAI:
Создайте экземпляр сервиса Azure OpenAI в портале Azure и задайте следующие параметры:
- Группа ресурсов – та же группа ресурсов, что и для Azure Synapse Analytics и Azure AI Search.
- Регион – регион развертывания службы. Желательно, чтобы он совпадал с регионом среды Dataverse и службы Azure Synapse Analytics. Однако могут подойти и другие относительно близкие регионы (могут применяться дополнительные расходы за передачу данных).


- Разверните нужную модель встраивания через портал Azure AI Foundry. В данном случае используется модель «text-embedding-3-small».

Шаг 4: импорт и векторизация данных в Azure AI Search
Сначала нужно проверить, в каком хранилище/контейнере BLOB находятся наши данные. Хотя мы создали «crm120910-filesystem» в рабочей области Azure Synapse Analytics, служба Azure Synapse Link создала собственный контейнер для данных Dataverse. Файл «2025-07.csv» содержит наши актуальные данные Dataverse, которые необходимо разобрать и передать в службу Azure AI Search.


1. Импорт и векторизация данных:
В Azure AI Search откройте «Import and vectorize data». Выберите «Azure Data Lake Storage», а затем «RAG».


Теперь настройте следующие параметры:
1. Учетная запись хранилища (Storage account) – имя хранилища Data Lake.
2. Контейнер BLOB (Blob container) – контейнер BLOB с нашими данными Dataverse.
3. Режим разбора (Parsing mode) – «Delimited text», так как данные хранятся в формате CSV.
4. Символ-разделитель (Delimiter character) – запятая для разделения данных CSV.
5. Заголовки (Delimiter headers) – названия заголовков CSV. Так как Synapse Link не сохраняет заголовки напрямую, их нужно указать вручную. Они включают все поля Dataverse из выбранной таблицы, а также некоторые системные столбцы.


- Затем настройте следующие параметры:
- Столбец для векторизации (Column to vectorize) – в данном примере векторизуется поле «name» продукта, которое используется в Azure AI Search.
- Тип (Kind) – служба AI, используемая для предоставления моделей встраивания.
- Служба Azure OpenAI (Azure OpenAI service) – так как мы используем и создаём службу Azure OpenAI.
- Развертывание модели (Model-deployment) – модель встраивания из указанной AI-службы. Здесь используется модель, которую мы ранее создали в Azure OpenAI через портал Azure AI Foundry.

- Затем можно выбрать, какие поля индексировать, и задать параметр расписания. Индексация используется для предоставления этих полей в результатах поиска. Как видно, изменить поле «name» у ранее добавленных продуктов нельзя, так как оно используется как векторизованное поле.


2. Устранение проблем с индексатором.
После импорта данных автоматически создаются «Index», «Indexer» и «Skillset».

- Возможно, индексатор не заработает с первой попытки. Существуют некоторые проблемы с импортом CSV-файлов, которые можно устранить с помощью обходных решений.


- Чтобы исправить ошибки «chunk_id» / «Could not parse document», нужно убедиться, что в определении индексатора есть функция отображения (mapping function), как указано в документации.

- Поэтому необходимо отредактировать JSON внутри индексатора и добавить функцию отображения (mapping function).

- После этого исправления нужно сбросить и заново запустить индексатор. Индексация может занять некоторое время в зависимости от фактического объёма данных.

Шаг 5: тестирование векторного поиска в Azure AI Search
Убедитесь, что ваш векторный поиск работает должным образом.
1. Использование Search Explorer:
- В Azure AI Search откройте «Search Explorer».
- Введите тестовый запрос для поиска ваших проиндексированных данных.
2. Анализ результатов:
- Результаты будут отображать элементы на основе семантической схожести (например, синонимов).
- Скройте векторные значения с помощью **«Query options»**, чтобы получить более чистый вывод.
В ответе отображаются данные:
1. «chunk» — это векторизованное поле. В данном случае — поле «name» продукта.
2. «description» — поле из таблицы, которое мы индексировали.
3. Кроме того, поиск предоставляет относительные оценки (relative scores) для результатов. Проверьте их, чтобы оценить релевантность результатов.

Шаг 6: интеграция с Copilot Studio
1. Добавление Azure AI Search в Copilot Studio:
Сначала нужно добавить подключение Azure AI Search в портале Power Apps.
URL конечной точки (endpoint URL) можно найти на странице «Overview» службы Azure AI Search.
Административный ключ (Admin key) находится в разделе Azure AI Search Settings → Keys → Primary Admin Key.

- Затем мы можем добавить Azure AI Search в Copilot Studio либо как источник знаний (Knowledge source), либо как инструмент (Tool, ранее Actions). Тестирование показывает, что при использовании Azure AI Search как источника знаний данные в ответном сообщении пользователю частично сокращаются. А при использовании его как инструмента с коннектором «Vectorized search vector» появляется возможность вручную задавать параметры, например количество top-N результатов поиска.

После добавления «Vectorized search vector» как инструмента можно настроить подключение и основные входные параметры:
- Search Text – текст, который используется как запрос для векторного поиска (так же, как мы тестировали поиск вручную).
- Index Name – имя индекса, которое используется для поиска. Его можно найти в службе Azure AI Search → Indexes.
- Top Searches – количество top-N результатов, которые нужно получить в результате векторного поиска.
- Selected Fields – поля, которые нужно получить в результате векторного поиска (в данном случае это поля из нашей разобранной таблицы Dataverse в формате CSV).
- «chunk» – как уже отмечалось, это векторизованное поле; в данном случае — имя продукта.
- «description» – поле описания из таблицы.
Теперь этот инструмент можно использовать либо напрямую (если включена генеративная оркестрация), либо внутри тем. Кроме того, в ответе у каждого результата есть показатель «score».

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


Вывод
Теперь у вас настроено надёжное решение для поиска, объединяющее Azure AI Vector Search и Copilot Studio. Этот набор обеспечивает расширенный, контекстно-ориентированный поиск, выходящий за рамки простого сопоставления ключевых слов. Изучите дополнительные возможности настройки — например, изменение параметров поиска или добавление новых источников данных, чтобы адаптировать решение под ваши потребности.