Поделиться через


Навык внедрения Azure OpenAI

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

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

Служба Azure OpenAI должна иметь связанный настраиваемый поддомен. Если служба была создана с помощью портал Azure, этот поддомен автоматически создается в рамках настройки службы. Убедитесь, что служба включает в себя настраиваемый поддомен перед его использованием с интеграцией поиска ИИ Azure.

Ресурсы Службы Azure OpenAI (с доступом к моделям внедрения), созданным на портале Azure AI Foundry, не поддерживаются. Только ресурсы службы Azure OpenAI, созданные в портал Azure, совместимы с интеграцией навыков внедрения Azure OpenAI.

Мастер импорта и векторизации данных в портал Azure использует навык внедрения Azure OpenAI для векторизации содержимого. Вы можете запустить мастер и просмотреть созданный набор навыков, чтобы узнать, как мастер создает навык для внедрения моделей.

Примечание.

Этот навык привязан к Azure OpenAI и взимается с существующей оплаты Azure OpenAI по мере использования.

@odata.type

Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill

Ограничения данных

Максимальный размер текстового ввода должен составлять 8 000 маркеров. Если входные данные превышают максимально допустимое значение, модель выдает недопустимую ошибку запроса. Дополнительные сведения см. в разделе "Основные понятия токенов " в документации по Azure OpenAI. Если требуется фрагментирование данных, рекомендуется использовать навык разделения текста.

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

Параметры зависят от регистра.

Входные данные Description
resourceUri Универсальный код ресурса (URI) поставщика моделей в данном случае — ресурс Azure OpenAI. Этот параметр поддерживает только URL-адреса с доменом openai.azure.com, например https://<resourcename>.openai.azure.com. Если конечная точка Azure OpenAI имеет URL-адрес с доменом cognitiveservices.azure.com, например https://<resourcename>.cognitiveservices.azure.com, настраиваемый поддомен должен openai.azure.com быть создан сначала для ресурса Azure OpenAI и использовать https://<resourcename>.openai.azure.com его.
apiKey Секретный ключ, используемый для доступа к модели. Если вы предоставляете ключ, оставьте authIdentity пустым. Если задано и apiKey то, и authIdentityдругое apiKey значение используется в соединении.
deploymentId Имя развернутой модели внедрения Azure OpenAI. Модель должна быть моделью внедрения, например text-embedding-ada-002. Список моделей Azure OpenAI для поддерживаемых моделей.
authIdentity Управляемое пользователем удостоверение, используемое службой поиска для подключения к Azure OpenAI. Вы можете использовать системное или пользовательское управляемое удостоверение. Чтобы использовать системное удостоверение, оставьте и authIdentity оставьте apiKey пустым. Управляемое системой удостоверение используется автоматически. Управляемое удостоверение должно иметь разрешения пользователя OpenAI Cognitive Services для отправки текста в Azure OpenAI .
modelName Это свойство необходимо, если набор навыков создан с помощью REST API 2024-05-01-preview или 2024-07-01 REST API. Присвойте этому свойству имя развертывания модели внедрения Azure OpenAI, развернутой на поставщике, указанной resourceUri и определяемой с помощью deploymentId. В настоящее время поддерживаются text-embedding-ada-002значения , text-embedding-3-largeи text-embedding-3-small.
dimensions Необязательный, начиная с 2024-05-01-preview REST API, измерения внедрения, которые вы хотите создать, при условии, что модель поддерживает диапазон измерений. Поддерживаемые диапазоны перечислены ниже, и в настоящее время применяются только к серии моделей преобразования текста 3. Значение по умолчанию — это максимальное измерение для каждой модели. Для наборов навыков, созданных с помощью более ранних версий API RESt, начиная с версии 2023-10-01-preview, измерения исправлены в 1536. При задании свойства измерений для навыка обязательно задайте dimensions свойство в определении поля вектора таким же значением.

Поддерживаемые измерения по modelName

Поддерживаемые измерения для навыка внедрения Azure OpenAI зависят от modelName настроенного.

modelName Минимальные измерения Максимальные размеры
text-embedding-ada-002 1536 1536
text-embedding-3-large 1 3072
text-embedding-3-small 1 1536

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

Входные данные Description
text Векторизованный текст. Если вы используете блоки данных, источник может быть /document/pages/*.

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

Выходные данные Description
embedding Векторное внедрение для входного текста.

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

Рассмотрим запись со следующими полями:

{
    "content": "Microsoft released Windows 10."
}

Затем определение навыка может выглядеть следующим образом:

{
  "@odata.type": "#Microsoft.Skills.Text.AzureOpenAIEmbeddingSkill",
  "description": "Connects a deployed embedding model.",
  "resourceUri": "https://my-demo-openai-eastus.openai.azure.com/",
  "deploymentId": "my-text-embedding-ada-002-model",
  "modelName": "text-embedding-ada-002",
  "dimensions": 1536,
  "inputs": [
    {
      "name": "text",
      "source": "/document/content"
    }
  ],
  "outputs": [
    {
      "name": "embedding"
    }
  ]
}

Пример полученных результатов

Для заданного входного текста создается векторизованный результат внедрения.

{
  "embedding": [
        0.018990106880664825,
        -0.0073809814639389515,
        .... 
        0.021276434883475304,
      ]
}

Выходные данные находятся в памяти. Чтобы отправить эти выходные данные в поле в индексе поиска, необходимо определить outputFieldMapping , который сопоставляет векторизованные выходные данные внедрения (массив) с полем вектора. Предполагая, что выходные данные навыка находятся на узле внедрения документа, и content_vector поле в индексе поиска, выходные данныеFieldMapping в индексаторе должны выглядеть следующим образом:

  "outputFieldMappings": [
    {
      "sourceFieldName": "/document/embedding/*",
      "targetFieldName": "content_vector"
    }
  ]

Рекомендации

Ниже приведены некоторые рекомендации, которые необходимо учитывать при использовании этого навыка:

  • Если вы нажимаете ограничение azure OpenAI TPM (токены в минуту), рассмотрите рекомендации по ограничениям квот, чтобы вы могли соответствующим образом решить эту проблему. Дополнительные сведения о производительности экземпляра Azure OpenAI см. в документации по мониторингу Azure OpenAI.

  • Развертывание модели внедрения Azure OpenAI, используемое для этого навыка, должно быть идеально отдельно от развертывания, используемого для других вариантов использования, включая векторизатор запросов. Это помогает каждому развертыванию адаптироваться к конкретному варианту использования, что приводит к оптимизации производительности и идентификации трафика от индексатора и вызовов внедрения индекса.

  • Экземпляр Azure OpenAI должен находиться в одном регионе или по крайней мере географически близко к региону, где размещен служба ИИ. Это снижает задержку и повышает скорость передачи данных между службами.

  • Если в документации по квотам и ограничениям больше по умолчанию Azure OpenAI TPM (токены в минуту), откройте вариант поддержки в группе поиска ИИ Azure, чтобы это можно было соответствующим образом изменить. Это помогает процессу индексирования не замедляться за счет задокументированного ограничения доверенного платформенного модуля по умолчанию, если у вас есть более высокие ограничения.

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

Ошибки и предупреждения

Condition Результат
Null или недопустимый универсальный код ресурса (URI) Ошибка
Null или invalid deploymentID Ошибка
Текст пуст Предупреждение
Текст больше 8000 токенов Ошибка

См. также