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


Навык запроса GenAI

Note

Эта функция сейчас доступна в общедоступной предварительной версии. Этот предварительный просмотр предоставляется без соглашения об уровне обслуживания и не предназначается для производственных рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.

Навык запроса genAI (Generative AI) выполняет запрос на завершение чата в крупной языковой модели (LLM), развернутой в Azure OpenAI в модели Foundry или Microsoft Foundry. Используйте этот навык для создания новых сведений, которые можно индексировать и хранить в виде содержимого, доступного для поиска.

Ниже приведены некоторые примеры того, как навык запроса GenAI поможет вам создать содержимое:

  • Словесная визуализация изображений
  • Суммирование больших фрагментов текста
  • Упрощение сложного содержимого
  • Выполнение любой другой задачи, которую можно сформулировать в запросе

Навык запроса GenAI доступен в последней предварительной версии REST API. Этот навык поддерживает текст, изображение и многомодальное содержимое, например изображения с визуальными элементами и текстом, извлеченными из PDF-файлов.

Tip

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

Поддерживаемые модели

  • Вы можете использовать любую модель вывода чата , развернутую в Foundry, например модели GPT, Deepseek R#, Llama-4-Mavericj и Cohere-command-r. Для моделей GPT поддерживаются только конечные точки API завершения чата. Конечные точки с помощью API ответов Azure OpenAI (содержащегося /openai/responses в URI) в настоящее время не совместимы.

  • Для словесности изображений модель, используемая для анализа изображения, определяет поддерживаемые форматы изображений.

  • Для моделей temperature GPT-5 параметр не поддерживается так же, как и предыдущие модели. Если оно определено, оно должно иметь 1.0значение, так как другие значения приводят к ошибкам.

  • Выставление счетов основано на ценах используемой модели.

Note

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

Prerequisites

  • Ресурс Azure OpenAI в foundry Models или проект Foundry.

  • Поддерживаемая модель, развернутая в ресурсе или проекте.

    • Для Azure OpenAI скопируйте конечную точку с openai.azure.com доменом на странице "Ключи и конечная точка " на портале Azure. Используйте эту конечную точку Uri для параметра в этом навыке.

    • Для Foundry скопируйте целевой универсальный код ресурса (URI) для развертывания на странице "Модели " на портале Foundry. Используйте эту конечную точку Uri для параметра в этом навыке.

  • Проверка подлинности может быть основана на ключах API из ресурса Foundry или Azure OpenAI. Однако рекомендуется использовать управляемое удостоверение службы поиска , назначенное роли.

@odata.type

#Microsoft.Skills.Custom.ChatCompletionSkill

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

Limit Notes
maxTokens Значение по умолчанию — 1024 , если опущено. Максимальное значение зависит от модели.
Время ожидания запроса 30 секунд (по умолчанию). Переопределите свойство timeout (PT##S).
Images Поддерживаются базовые 64-кодированные изображения и URL-адреса изображений. Ограничение размера зависит от модели.

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

Property Type Required Notes
uri string Yes Общедоступная конечная точка развернутой модели. Поддерживаемые домены:

  • openai.azure.com
  • services.ai.azure.com
  • cognitiveservices.azure.com
apiKey string Cond.* Секретный ключ для модели. Оставьте пустым при использовании управляемого удостоверения.
authIdentity string Cond.* Идентификатор клиента управляемого удостоверения, назначаемого пользователем (только Azure OpenAI). Оставьте пустым, чтобы использовать удостоверение, назначаемое системой .
commonModelParameters object No Стандартные элементы управления поколения, такие как temperature, maxTokensи т. д.
extraParameters object No Откройте словарь, передаваемый в API базовой модели.
extraParametersBehavior string No "pass-through" | "drop" | "error" (по умолчанию "error").
responseFormat object No Определяет, возвращает ли модель текст, объект JSON свободной формы или строго типизированную схему JSON. responseFormat Примеры полезных данных: {responseFormat: { type: text }}, {responseFormat: { type: json_object }}, {responseFormat: { type: json_schema }}

* Необходимо использовать именно одно изapiKeyauthIdentityудостоверений, назначаемых системой, или удостоверение, назначаемое системой.

commonModelParameters По умолчанию

Parameter Default
model (по умолчанию для развертывания)
frequencyPenalty 0
presencePenalty 0
maxTokens 1024
temperature 0.7
seed null
stop null

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

Входное имя Type Required Description
systemMessage string Yes Инструкции на уровне системы (например, "Вы полезный помощник".)
userMessage string Yes Запрос пользователя.
text string No Необязательный текст, добавленный в userMessage (сценарии только для текста).
image string (Base 64 data-URL) No Добавляет изображение в запрос (только мультимодальные модели).
imageDetail string (low | | highauto) No Указание точности для многомодальных моделей Azure OpenAI.

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

Название вывода Type Description
response объект string или JSON Выходные данные модели в формате, запрошенном responseFormat.type.
usageInformation Объект JSON Количество маркеров и эхо параметров модели.

Примеры определений

Сводка только для текста

{
  "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
  "name": "Summarizer",
  "description": "Summarizes document content.",
  "context": "/document",
  "timeout": "PT30S",
  "inputs": [
    { "name": "text", "source": "/document/content" },
    { "name": "systemMessage", "source": "='You are a concise AI assistant.'" },
    { "name": "userMessage", "source": "='Summarize the following text:'" }
  ],
  "outputs": [ { "name": "response" } ],
  "uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
  "apiKey": "<api-key>",
  "commonModelParameters": { "temperature": 0.3 }
}

Описание текста и изображения

{
  "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
  "name": "Image Describer",
  "context": "/document/normalized_images/*",
  "inputs": [
    { "name": "image", "source": "/document/normalized_images/*/data" },
    { "name": "imageDetail", "source": "=high" },
    { "name": "systemMessage", "source": "='You are a useful AI assistant.'" },
    { "name": "userMessage", "source": "='Describe this image:'" }
  ],
  "outputs": [ { "name": "response" } ],
  "uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
  "authIdentity": "11111111-2222-3333-4444-555555555555",
  "responseFormat": { "type": "text" }
}

Структурированный числовый поиск фактов

{
  "@odata.type": "#Microsoft.Skills.Custom.ChatCompletionSkill",
  "name": "NumericalFactFinder",
  "context": "/document",
  "inputs": [
    { "name": "systemMessage", "source": "='You are an AI assistant that helps people find information.'" },
    { "name": "userMessage", "source": "='Find all the numerical data and put it in the specified fact format.'"}, 
    { "name": "text", "source": "/document/content" }
  ],
  "outputs": [ { "name": "response" } ],
  "uri": "https://demo.openai.azure.com/openai/deployments/gpt-4o/chat/completions",
  "apiKey": "<api-key>",
  "responseFormat": {
    "type": "json_schema",
    "jsonSchemaProperties": {
      "name": "NumericalFactObj",
      "strict": true,
      "schema": {
        "type": "object",
        "properties": "{\"facts\":{\"type\":\"array\",\"items\":{\"type\":\"object\",\"properties\":{\"number\":{\"type\":\"number\"},\"fact\":{\"type\":\"string\"}},\"required\":[\"number\",\"fact\"]}}}",
        "required": [ "facts" ],
        "additionalProperties": false
      }
    }
  }
}

Пример выходных данных (усеченный)

{
  "response": {
    "facts": [
      { "number": 32.0, "fact": "Jordan scored 32 points per game in 1986-87." },
      { "number": 6.0,  "fact": "He won 6 NBA championships." }
    ]
  },
  "usageInformation": {
    "usage": {
      "completion_tokens": 203,
      "prompt_tokens": 248,
      "total_tokens": 451
    }
  }
}

Лучшие практики

  • Фрагменты длинных документов с навыком разделения текста , чтобы оставаться в окне контекста модели.
  • Для индексирования больших объемов следует выделить отдельное развертывание модели для этого навыка, чтобы квоты маркеров для рабочих нагрузок RAG во время запроса остаются не затронутыми.
  • Чтобы свести к минимуму задержку, найдите модель и службу поиска ИИ Azure в одном регионе Azure.
  • Используйте responseFormat.json_schemaGPT-4o для надежного структурированного извлечения и упрощения сопоставления с полями индекса.
  • Отслеживайте использование маркеров и отправляйте запросы на увеличение квоты , если индексатор насыщает ограничения маркеров в минуту (TPM).

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

Condition Result
Отсутствующие или недопустимые uri Error
Метод проверки подлинности не указан Error
Оба apiKey и authIdentity предоставленные Error
Неподдерживаемая модель для многомодального запроса Error
Входные данные превышают предел маркера модели Error
Модель возвращает недопустимый код JSON для json_schema Предупреждение — необработанная строка, возвращенная в response

См. также