Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›REST API ›Inference API

Интеграция с Azure OpenAI для вывода

Справочник нового API

Для получения самых свежих данных об API обратитесь к Inference API.

Создаёт конечную точку вывода для выполнения задачи вывода с помощью сервиса azureopenai.

Запрос

PUT /_inference/<task_type>/<inference_id>

Параметры пути

<inference_id>
(Обязательно, строка) Уникальный идентификатор конечной точки вывода.
<task_type>

(Обязательно, строка) Тип задачи вывода, которую будет выполнять модель.

Доступные типы задач:

  • completion,
  • text_embedding.

Тело запроса

chunking_settings

(Необязательно, объект) Объект конфигурации фрагментации. Обратитесь к Настройка фрагментации, чтобы узнать больше о фрагментации.

max_chunk_size
(Необязательно, целое число) Указывает максимальный размер фрагмента в словах. По умолчанию 250. Это значение не может быть выше 300 или ниже 20 (для стратегии sentence) или 10 (для стратегии word).
overlap
(Необязательно, целое число) Только для стратегии фрагментации word. Указывает количество перекрывающихся слов для фрагментов. По умолчанию 100. Это значение не может быть больше половины от max_chunk_size.
sentence_overlap
(Необязательно, целое число) Только для стратегии фрагментации sentence. Указывает количество перекрывающихся предложений для фрагментов. Может быть либо 1, либо 0. По умолчанию 1.
strategy
(Необязательно, строка) Указывает стратегию фрагментации. Может быть либо sentence, либо word.
service
(Обязательно, строка) Тип службы, поддерживаемой для указанного типа задачи. В данном случае azureopenai.
service_settings

(Обязательно, объект) Настройки для установки модели вывода.

Эти настройки специфичны для службы azureopenai.

api_key или entra_id

(Обязательно, строка) Вы должны предоставить либо ключ API, либо идентификатор Entra. Если вы не предоставите ни то, ни другое, или предоставите оба, при попытке создания модели вы получите ошибку. Обратитесь к документации по аутентификации Azure OpenAI документации по аутентификации Azure OpenAI для получения более подробной информации об этих типах аутентификации.

Вам нужно предоставить ключ API только один раз, во время создания модели вывода. API получения API вывода не получает ваш ключ API. После создания модели вывода вы не можете изменить связанный с ней ключ API. Если вы хотите использовать другой ключ API, удалите модель вывода и пересоздайте её с тем же именем и обновлённым ключом API.

resource_name
(Обязательно, строка) Название вашего ресурса Azure OpenAI. Вы можете найти его в списке ресурсов в портале Azure для вашей подписки.
deployment_id
(Обязательно, строка) Имя развертывания ваших развернутых моделей. Ваши развертывания Azure OpenAI можно найти на портале Azure OpenAI Studio, связанном с вашей подпиской.
api_version
(Обязательно, строка) Идентификатор версии Azure API, который следует использовать. Мы рекомендуем использовать последнюю поддерживаемую версию без предварительного просмотра.
rate_limit

(Необязательно, объект) Служба azureopenai устанавливает по умолчанию количество запросов в минуту, разрешенных в зависимости от типа задачи. Для text_embedding оно установлено в 1440. Для completion оно установлено в 120. Это помогает минимизировать количество ошибок ограничений скорости, возвращаемых Azure. Для изменения этого, задайте параметр requests_per_minute этого объекта в настройках вашей службы:

"rate_limit": {
    "requests_per_minute": <<number_of_requests>>
}

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

task_settings

(Необязательно, объект) Настройки для настройки задачи вывода. Эти настройки специфичны для указанного вами <task_type>.

task_settings для типа задачи completion
user
(необязательно, строка) Указывает пользователя, который отправляет запрос, что может использоваться для обнаружения злоупотреблений.
task_settings для типа задачи text_embedding
user
(необязательно, строка) Указывает пользователя, который отправляет запрос, что может использоваться для обнаружения злоупотреблений.

Пример службы Azure OpenAI

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

Список моделей встраивания, которые вы можете выбрать в своём развертывании, можно найти в документации Azure по моделям.

resp = client.inference.put(
    task_type="text_embedding",
    inference_id="azure_openai_embeddings",
    inference_config={
        "service": "azureopenai",
        "service_settings": {
            "api_key": "<api_key>",
            "resource_name": "<resource_name>",
            "deployment_id": "<deployment_id>",
            "api_version": "2024-02-01"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "azure_openai_embeddings",
  inference_config: {
    service: "azureopenai",
    service_settings: {
      api_key: "<api_key>",
      resource_name: "<resource_name>",
      deployment_id: "<deployment_id>",
      api_version: "2024-02-01",
    },
  },
});
console.log(response);
PUT _inference/text_embedding/azure_openai_embeddings
{
    "service": "azureopenai",
    "service_settings": {
        "api_key": "<api_key>",
        "resource_name": "<resource_name>",
        "deployment_id": "<deployment_id>",
        "api_version": "2024-02-01"
    }
}

Следующий пример показывает, как создать конечную точку вывода с именем azure_openai_completion для выполнения задачи типа completion.

resp = client.inference.put(
    task_type="completion",
    inference_id="azure_openai_completion",
    inference_config={
        "service": "azureopenai",
        "service_settings": {
            "api_key": "<api_key>",
            "resource_name": "<resource_name>",
            "deployment_id": "<deployment_id>",
            "api_version": "2024-02-01"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "azure_openai_completion",
  inference_config: {
    service: "azureopenai",
    service_settings: {
      api_key: "<api_key>",
      resource_name: "<resource_name>",
      deployment_id: "<deployment_id>",
      api_version: "2024-02-01",
    },
  },
});
console.log(response);
PUT _inference/completion/azure_openai_completion
{
    "service": "azureopenai",
    "service_settings": {
        "api_key": "<api_key>",
        "resource_name": "<resource_name>",
        "deployment_id": "<deployment_id>",
        "api_version": "2024-02-01"
    }
}

Список моделей чат-завершения, которые вы можете выбрать в своём развертывании Azure OpenAI, можно найти по этим ссылкам:

  • Модели GPT-4 и GPT-4 Turbo
  • GPT-3.5

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/8.17/infer-service-azure-openai.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API