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


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

Замечание

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

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

Используйте эту возможность для создания новых сведений, которые можно индексировать и хранить в виде содержимого, доступного для поиска. Примеры включают словесную визуализацию, обобщение более крупных фрагментов, упрощение сложного содержимого или любую другую задачу, которую может выполнить LLM. Навык поддерживает текст, изображение и многомодальное содержимое, например PDF-файл, содержащий текст и изображения. Обычно этот навык используется вместе с навыком фрагментирования данных. В следующих руководствах демонстрируются сценарии словизации изображений с двумя различными методами блокирования данных:

Навык запроса GenAI доступен только в REST API 2025-05-01-preview .

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

Вы можете использовать любую модель вывода чата , развернутую в AI Foundry, например модели GPT, Deepseek R#, Llama-4-Mavericj, Cohere-command-r и т. д.

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

Замечание

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

Предпосылки

  • Развернутая модель завершения чата (например , gpt-4o или любая совместимая модель с открытым исходным кодом (OSS) в Azure AI Foundry или Azure OpenAI.

    • Скопируйте конечную точку из моделей и конечных точек на портале Foundry или из поддомена ресурса Azure OpenAI (*.openai.azure.com).

    • Укажите эту конечную точку в параметре Uri определения навыка.

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

@odata.type

#Microsoft.Skills.Custom.ChatCompletionSkill

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

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

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

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

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

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

Параметр По умолчанию
model (по умолчанию для развертывания)
frequencyPenalty 0
presencePenalty 0
maxTokens 1024
temperature 0,7
seed нулевой
stop нулевой

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

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

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

Название вывода Тип Описание
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).

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

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

См. также