Навык AML в конвейере обогащения поиска ИИ Azure

Важно!

Этот навык предоставляется в общедоступной предварительной версии, и к нему применяются дополнительные условия использования. Предварительная версия REST API поддерживает этот навык.

Навык AML позволяет расширить обогащение ИИ с помощью настраиваемой модели Машинного обучения Azure Machine (AML). После обучения и развертывания модели AML навык AML интегрирует ее с функцией обогащения ИИ.

Как и в случае со встроенными навыками, навык AML имеет входные и выходные данные. Входные данные отправляются в развернутую конечную точку AML в виде объекта JSON, который выводит полезные данные JSON в качестве ответа вместе с кодом состояния успешности. Ответ должен содержать выходные данные, указанные в вашем навыке AML. Любой другой ответ считается ошибкой, и никакие обогащения не выполняются.

Примечание.

Индексатор дважды повторяется для определенных стандартных кодов состояния HTTP, возвращаемых из сетевой конечной точки AML. Это такие коды состояния HTTP:

  • 503 Service Unavailable
  • 429 Too Many Requests

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

@odata.type

Microsoft.Skills.Custom.AmlSkill

Параметры навыков

Параметры зависят от регистра. Какие параметры следует использовать, зависят от того, какая проверка подлинности требуется для конечной точки AML в Сети, если таковые требуются.

Наименование параметра Description
uri (Требуется для проверки подлинности ключа) URI оценки веб-конечной точки AML, в которую отправляется полезные данные JSON . Допускается только схема URI HTTPS.
key (Требуется для проверки подлинности ключа) Ключ для конечной точки AML в сети.
resourceId (Требуется для проверки подлинности с помощью маркера). Идентификатор ресурса Azure Resource Manager для сетевой конечной точки AML. Он должен находиться в подписках формата/{guid}/resourceGroups/{resource-group-name}/Microsoft.Machine Обучение Services/workspaces/{workspace-name}/onlineendpoints/{endpoint_name}.
region (Необязательно для проверки подлинности с помощью маркера). Регион, в который развертывается конечная точка AML в сети.
timeout (Необязательно.) Если указано, означает время ожидания вызова API HTTP-клиента. Значение должно быть отформатировано как значение dayTimeDuration XSD (ограниченное подмножество значения продолжительности ISO 8601 ). Например, PT60S для 60 секунд. Если не задано, выбирается значение по умолчанию — 30 секунд. Время ожидания можно задать в диапазоне от 1 до 230 секунд.
degreeOfParallelism (Необязательно) При указании указывает количество вызовов индексатора параллельно с предоставленной конечной точкой. Это значение можно уменьшить, если конечная точка завершается сбоем слишком высокой нагрузки запроса. Вы можете вызвать его, если конечная точка может принимать больше запросов, и вы хотите увеличить производительность индексатора. Если не задано, используется значение по умолчанию — 5 секунд. Для параметра degreeOfParallelism можно задать значение в диапазоне 1–10.

Используемые параметры навыка

Какие параметры навыка AML требуются, зависит от того, какую проверку подлинности использует конечная точка AML в Сети, если она используется. Сетевые конечные точки AML предоставляют два варианта проверки подлинности:

  • Проверка подлинности на основе ключей. Статический ключ предоставляется для проверки подлинности запросов оценки из навыков AML
    • Используйте параметры uri и key.
  • Проверка подлинности на основе маркеров. Конечная точка AML в сети развертывается с помощью проверки подлинности на основе маркеров. Управляемое удостоверение azure AI служба должно быть включено. Затем навык AML использует управляемое удостоверение службы для проверки подлинности в сетевой конечной точке AML без статических ключей. Удостоверение должно быть назначено владельцу или участник роли.
    • Используйте параметр resourceId.
    • Если служба поиска находится в другом регионе, отличном от рабочей области AML, используйте параметр региона , чтобы задать регион, в который была развернута конечная точка AML в Сети

Входные данные навыков

Предварительно заданные входные данные для этого навыка отсутствуют. Вы можете выбрать одно или несколько полей, которые уже будут доступны во время выполнения этого навыка в качестве входных данных, а полезные данные JSON , отправленные в конечную точку AML в Интернете, будут иметь разные поля.

Выходные данные навыка

Предварительно заданные выходные данные для этого навыка отсутствуют. В зависимости от ответа, возвращаемого веб-конечной точкой AML, добавьте поля выходных данных, чтобы их можно было забрать из ответа JSON .

Пример определения

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "text",
        "source": "/document/content"
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Пример структуры входных данных JSON

Эта структура JSON представляет полезные данные, отправляемые в конечную точку AML в сети. Поля верхнего уровня структуры соответствуют именам, указанным в inputs разделе определения навыка. Значения этих полей являются из этих полей (которые могут быть из source поля в документе или потенциально из другого навыка).

{
  "text": "Este es un contrato en Inglés"
}

Пример структуры выходных данных JSON

Выходные данные соответствуют ответу, возвращенному из веб-конечной точки AML. Конечная точка AML в Сети должна возвращать только полезные данные JSON (проверено с помощью Content-Type заголовка ответа) и должна быть объектом, где поля являются обогащениями, соответствующими "именам" в output и чьи значения считаются обогащением.

{
    "detected_language_code": "es"
}

Пример определения встроенной формы

  {
    "@odata.type": "#Microsoft.Skills.Custom.AmlSkill",
    "description": "A sample model that detects the language of sentence",
    "uri": "https://contoso.count-things.com/score",
    "context": "/document",
    "inputs": [
      {
        "name": "shapedText",
        "sourceContext": "/document",
        "inputs": [
            {
              "name": "content",
              "source": "/document/content"
            }
        ]
      }
    ],
    "outputs": [
      {
        "name": "detected_language_code"
      }
    ]
  }

Входная структура JSON для встроенной формы

{
  "shapedText": { "content": "Este es un contrato en Inglés" }
}

Пример выходной структуры JSON для встроенной формы

{
    "detected_language_code": "es"
}

Варианты ошибок

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

  • Если конечная точка AML в Сети возвращает код состояния успешного выполнения, но ответ указывает на то, что это не application/jsonтак, ответ считается недопустимым и не выполняется обогащения.
  • Если конечная точка AML в Сети возвращает недопустимый json

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

См. также