Бөлісу құралы:


Руководство. Отладка набора навыков с помощью сеансов отладки

Набор навыков координирует действия навыков, которые анализируют, преобразуют или создают содержимое, которое можно найти. Часто выходные данные одного навыка становятся входными данными другого. Если входные данные зависят от выходных, ошибки в определениях набора навыков и связываниях полей могут привести к отсутствию операций и данных.

Сеансы отладки — это средство портал Azure, которое обеспечивает целостную визуализацию набора навыков. С помощью этого средства вы можете перейти к определенным шагам и определить, где возникает ошибка.

В этой статье используйте сеансы отладки для поиска и исправления отсутствующих входных и выходных данных. Это руководство включает все необходимое для работы. Он предоставляет примеры данных, REST-файл, который создает объекты и инструкции по отладке проблем в наборе навыков.

Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем приступить к работе.

Необходимые компоненты

Примечание.

В этом руководстве также используются службы ИИ Azure для обнаружения языка, распознавания сущностей и извлечения ключевых фраз. Так как рабочая нагрузка настолько мала, службы ИИ Azure касаются за кулисами для бесплатной обработки до 20 транзакций. Это означает, что вы можете выполнить это упражнение, не создавая оплачиваемый ресурс служб ИИ Azure.

Настройка примеров данных

С помощью инструкций из этого раздела вы создадите пример набора данных в Хранилище BLOB-объектов Azure, с которыми будут работать индексатор и набор навыков.

  1. Скачайте пример данных (clinical-trials-pdf-19), состоящий из 19 файлов.

  2. Создайте учетную запись хранения Azure или найдите имеющуюся учетную запись.

    • Выберите тот же регион, что и поиск ВИ Azure, чтобы избежать расходов на пропускную способность.

    • Выберите тип учетной записи StorageV2 (общего назначения версии 2).

  3. Перейдите к страницам служб хранилища Azure на портале и создайте контейнер больших двоичных объектов. Рекомендуется указать уровень доступа "частный". Присвойте контейнеру имя clinicaltrialdataset.

  4. В контейнере выберите "Отправить ", чтобы отправить скачанные и распакованные примеры файлов на первом шаге.

  5. Во время на портале скопируйте строка подключения для служба хранилища Azure. Вы можете получить строку подключения, выбрав Параметры>Ключи доступа на портале.

Копирование ключа и URL-адреса

Вызовы REST требуют конечной точки службы поиска и ключа API для каждого запроса. Эти значения можно получить из портал Azure.

  1. Войдите в портал Azure, перейдите на страницу обзора и скопируйте URL-адрес. Пример конечной точки может выглядеть так: https://mydemo.search.windows.net.

  2. В разделе Параметры> Keys скопируйте ключ администратора. Администратор ключи используются для добавления, изменения и удаления объектов. Существует два взаимозаменяемых ключа администратора. Скопируйте любой из них.

    Снимок экрана: URL-адрес и ключи API в портал Azure.

Допустимый ключ API устанавливает доверие на основе каждого запроса между приложением, отправляя запрос и службу поиска, обрабатывая ее.

Создание источника данных, набора навыков, индекса и индексатора

В этом разделе описано, как создать рабочий процесс buggy, который можно исправить в этом руководстве.

  1. Запустите Visual Studio Code и откройте debug-sessions.rest файл.

  2. Укажите следующие переменные: URL-адрес службы поиска, ключ API администрирования служб поиска, строка подключения хранилища и имя контейнера BLOB-объектов, в котором хранятся PDF-файлы.

  3. Отправьте каждый запрос в свою очередь. Создание индексатора занимает несколько минут.

  4. Закройте файл.

Просмотр результатов на портале

Пример кода специально создает индекс с ошибками, как следствие проблем, возникших во время выполнения набора навыков. Проблема заключается в том, что индекс отсутствует данные.

  1. В портал Azure на странице обзора службы поиска выберите вкладку "Индексы".

  2. Выберите клинические испытания.

  3. Введите эту строку запроса JSON в представлении JSON обозревателя поиска. Он возвращает поля для определенных документов (идентифицируется уникальным metadata_storage_path полем).

    "select": "metadata_storage_path, organizations, locations",
    "count"=true`
    
  4. Выполните запрос. Вы должны увидеть пустые значения для organizations и locations.

    Эти поля должны быть заполнены с помощью навыка распознавания сущностей набора навыков, используемого для обнаружения организаций и расположений в любом месте содержимого большого двоичного объекта. В следующем упражнении вы отладите набор навыков, чтобы определить, что пошло не так.

Ошибки и предупреждения также можно изучить на портале Azure.

  1. Откройте вкладку Индексаторов и выберите клинические испытания-idxr.

    Обратите внимание, что в то время как задание индексатора успешно выполнено в целом, были предупреждения.

  2. Выберите "Успех" , чтобы просмотреть предупреждения (если в основном произошли ошибки, ссылка на сведения будет выполнена сбоем). Вы увидите длинный список с каждым предупреждением, выданным индексатором.

    Снимок экрана: предупреждения о представлении.

Запуск сеанса отладки

  1. В области навигации слева от службы поиска в разделе "Управление поиском" выберите сеансы отладки.

  2. Выберите и добавьте сеанс отладки.

  3. Присвойте сеансу имя.

  4. Подключите сеанс к учетной записи хранения. Создайте контейнер с именем "сеансы отладки". Этот контейнер можно многократно использовать для хранения всех данных сеанса отладки.

  5. Если вы настроили надежное подключение между поиском и хранилищем, выберите управляемое пользователем удостоверение или системное удостоверение для подключения. В противном случае используйте значение по умолчанию (Нет).

  6. В шаблоне индексатора укажите имя индексатора. Индексатор содержит ссылки на источник данных, набор навыков и индекс.

  7. Примите выбор документа по умолчанию для первого документа в коллекции. Сеанс отладки работает только с одним документом. Вы можете выбрать документ для отладки или открыть первый.

  8. Сохраните сеанс. Сохранение сеанса запустит конвейер обогащения, как определено набором навыков для выбранного документа.

    Снимок экрана: настройка нового сеанса отладки.

  9. Когда сеанс отладки завершит инициализацию, по умолчанию откроется вкладка Обогащение ИИ, на которой будет выделен граф навыков. На графе навыков представлена иерархия набора навыков и указан порядок выполнения последовательным и параллельным способами.

    Снимок экрана: визуальный редактор сеанса отладки.

Поиск проблем с набором навыков

Все проблемы, о которых сообщает индексатор, можно найти на соседней вкладке Ошибки и предупреждения.

Снимок экрана: вкладка ошибок и предупреждений.

Учтите, что список на вкладке Ошибки и предупреждения значительно короче того, который отобразился ранее, так как в нем содержатся только сведения об ошибках для одного документа. Как и список, отображаемый индексатором, можно выбрать предупреждение и просмотреть сведения об этом предупреждении.

Выберите Ошибки и предупреждения, чтобы просмотреть уведомления. Вы должны увидеть четыре:

  • "Не удалось выполнить навык, так как один или несколько входных данных навыка были недопустимыми. Отсутствуют необходимые входные данные навыка. Имя: "text", источник: "/document/content".

  • Could not map output field 'locations' to search index. Could not map output field 'locations' to search index. Missing value '/document/merged_content/locations'. (Не удалось сопоставить поле выходных данных organizations с индексом поиска. Проверьте свойство outputFieldMappings индексатора. Отсутствует значение /document/merged_content/locations.)

  • Could not map output field 'organizations' to search index. Check the 'outputFieldMappings' property of your indexer. Missing value '/document/merged_content/organizations'. (Не удалось сопоставить поле выходных данных organizations с индексом поиска. Проверьте свойство outputFieldMappings индексатора. Отсутствует значение /document/merged_content/organizations.)

  • "Навык выполнен, но может иметь непредвиденные результаты, так как один или несколько входных данных навыка были недопустимыми. (Навык выполнен, но может привести к непредвиденным результатам, так как некоторые входные данные навыка недопустимы. Отсутствуют дополнительные входные данные навыка. Имя: languageCode; источник: /document/languageCode. Проблемы синтаксического анализа языка выражений: отсутствующее значение "/document/languageCode".

Многие навыки имеют параметр languageCode. Проверив операцию, вы увидите, что эти входные данные кода отсутствуют в EntityRecognitionSkill.#1, который является тем же навыком распознавания сущностей с проблемами в выходных данных locations и organizations.

Так как все четыре уведомления относятся к этому навыку, следующим шагом является отладка этого навыка. Если это возможно, сначала решить входные проблемы перед переходом к выходным проблемам.

Исправление отсутствующих значений входных навыков

На вкладке "Ошибки/предупреждения" отсутствуют два входных данных для операции с меткой EntityRecognitionSkill.#1. Подробные сведения о первой ошибке объясняют отсутствие необходимых входных данных для текста. Второй указывает на проблему с входным значением "/document/languageCode".

  1. В графе навыков обогащения>ИИ выберите навык с меткой #1, чтобы отобразить сведения в правой области.

  2. Перейдите на вкладку "Выполнение" и найдите входные данные для текста.

  3. <Выберите символ или> символ, чтобы открыть средство оценки выражений. Отображаемый результат для этих входных данных не похож на текстовое входное значение. Он выглядит как ряд новых символов \n \n\n\n\n строки вместо текста. Отсутствие текста означает, что сущности не могут быть идентифицированы, поэтому этот документ не может соответствовать предварительным требованиям навыка или есть еще один вход, который следует использовать вместо этого.

    Снимок экрана: средство оценки выражений для ввода текста.

  4. Переключите левую область на обогащенную структуру данных и прокрутите список узлов обогащения для этого документа. Обратите внимание, что \n \n\n\n\n для "содержимого" нет исходного источника, но другое значение для "merged_content" имеет выходные данные OCR. Хотя нет никаких признаков, содержимое этого PDF-файла, как представляется, jpeg-файл, как показано извлеченным и обработанным текстом в "merged_content".

    Снимок экрана: обогащенная структура данных.

  5. В правой области выберите "Выполнение" для навыка #1 и откройте средство <оценки выражений /> для входного текста.

  6. Измените выражение на /document/content /document/merged_content, а затем нажмите кнопку "Оценить". Обратите внимание, что содержимое теперь является блоком текста и, следовательно, подходит для распознавания сущностей.

    Снимок экрана: средство оценки выражений для фиксированных merged_content входных данных.

  7. Переключитесь в редактор JSON навыка.

  8. В строке 16 в разделе "Входные данные" изменится /document/content на /document/merged_content.

     {
       "name": "text",
       "source": "/document/merged_content"
     },
    
  9. Нажмите кнопку "Сохранить " в области сведений о навыке.

    Снимок экрана: команда

  10. Выберите "Запустить " в меню окна сеанса. Это приведет к другому запуску набора навыков с использованием документа.

  11. После завершения выполнения сеанса отладки проверка вкладку "Ошибки и предупреждения", и отобразится ошибка ввода текста, но другие предупреждения остаются. Следующим шагом является обращение к предупреждению о "languageCode".

    Снимок экрана: обновленные ошибки и предупреждения.

  12. Перейдите на вкладку "Выполнение" и найдите входные данные для languageCode.

  13. <Выберите символ или> символ, чтобы открыть средство оценки выражений. Обратите внимание, что свойство languageCode не является допустимым входным.

    Снимок экрана: средство оценки выражений для входных данных языка.

Существует два способа исследования этой ошибки. Первый — посмотреть, откуда поступают входные данные. Какой навык в иерархии предположительно выдает такой результат? На вкладке "Число выполнений" в области сведений о навыках должен отображаться источник входных данных. Если источника нет, это означает ошибку сопоставления полей.

  1. На вкладке "Выполнение" проверка INPUTS и найдите "languageCode". В списке этих входных данных нет источника.

  2. Переключите левую область на обогащенную структуру данных. Прокрутите список узлов обогащения для этого документа. Обратите внимание, что нет узла languageCode, но есть один для языка. Поэтому в параметрах навыка есть опечатка.

    Снимок экрана: обогащенная структура данных с выделенным языком.

  3. Все еще в обогащенной структуре данных откройте средство< оценки выражений /> для узла "язык" и скопируйте выражение/document/language.

  4. В правой области выберите "Навык" Параметры для навыка #1 и откройте средство <оценки выражений /> для входного элемента "languageCode".

  5. Вставьте новое значение в /document/language поле выражения и нажмите кнопку "Оценить". Должно отобразиться правильное входное значение "en".

  6. Выберите Сохранить.

  7. Выберите Выполнить.

После завершения выполнения сеанса отладки проверка вкладку "Ошибки и предупреждения", и отобразится, что все входные предупреждения будут удалены. Теперь остаются только два предупреждения о выходных полях для организаций и расположений.

Исправление ошибок из-за отсутствия выходного значения навыка

Сообщения говорят, что проверка свойству outputFieldMappings индексатора, поэтому давайте начнем с этого.

  1. Перейдите к Диаграмме навыков и выберите сопоставления полей вывода. Сопоставления на самом деле правильны, но обычно вы проверка определение индекса, чтобы обеспечить наличие полей для "расположений" и "организаций".

    Снимок экрана: сопоставления выходных полей.

  2. Если нет проблем с индексом, следующий шаг — проверка выходные данные навыка. Как и раньше, выберите структуру обогащенных данных и прокрутите узлы, чтобы найти "расположения" и "организации". Обратите внимание, что родительский элемент — "содержимое" вместо "merged_content". Контекст неправильный.

    Снимок экрана: обогащенная структура данных с неправильным контекстом.

  3. Вернитесь к Графу навыков и выберите навык распознавания сущностей.

  4. Перейдите на вкладку Параметры навыков, чтобы найти контекст.

    Снимок экрана: исправление контекста в параметре навыка.

  5. Дважды щелкните параметр "context" и измените его на "/document/merged_content".

  6. Выберите Сохранить.

  7. Выберите Выполнить.

Все ошибки устранены.

Фиксация изменений в наборе навыков

При запуске сеанса отладки служба "Поиск" создала копию набора навыков. Это сделано для защиты исходного набора навыков в вашей службе поиска. Завершив отладку набора навыков, вы можете зафиксировать исправления (перезаписав исходный набор навыков).

Кроме того, если вы не готовы зафиксировать изменения, вы можете сохранить сеанс отладки и открыть его позже.

  1. Выберите "Зафиксировать изменения" в главном меню сеансов отладки.

  2. Нажмите кнопку "ОК ", чтобы подтвердить, что вы хотите обновить набор навыков.

  3. Закройте сеанс отладки и откройте индексаторы из левой области навигации .

  4. Выберите "клинические испытания-idxr".

  5. Выберите Сброс.

  6. Выберите Выполнить.

  7. Выберите "Обновить" , чтобы отобразить состояние команд сброса и выполнения.

После завершения выполнения индексатора должен быть зеленый проверка марк и слово Success рядом с меткой времени для последнего запуска на вкладке журнала выполнения. Чтобы убедиться, что изменения были применены:

  1. В области навигации слева откройте индексы.

  2. Выберите индекс "клинические испытания" и на вкладке обозревателя поиска введите эту строку запроса: $select=metadata_storage_path, organizations, locations&$count=true чтобы вернуть поля для определенных документов (идентифицируемых уникальным metadata_storage_path полем).

  3. Нажмите Поиск.

В результатах должно быть указано, что сущности organizations и locations теперь заполнены ожидаемыми значениями.

Очистка ресурсов

Если вы работаете в собственной подписке, в конце проекта следует решить, нужны ли вам созданные ресурсы. Ресурсы, которые продолжат работать, могут быть платными. Вы можете удалить ресурсы по отдельности либо удалить всю группу ресурсов.

Просматривать ресурсы и управлять ими можно на портале с помощью ссылок Все ресурсы или Группы ресурсов на панели навигации слева.

Бесплатная служба ограничена тремя индексами, индексаторами и источниками данных. Вы можете удалить отдельные элементы на портале, чтобы не превысить лимит.

Следующие шаги

В этом руководстве рассмотрены разные аспекты, касающиеся определения набора навыков и его обработки. Чтобы узнать больше о понятиях и рабочих процессах, ознакомьтесь со следующими статьями: