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

API потокового вывода

Справочник по новым API

Для получения наиболее актуальной информации об API обратитесь к Inference APIs.

Потоково передает ответ на запрос завершения чата.

Inference APIs позволяют использовать определённые сервисы, такие как встроенные модели машинного обучения (ELSER, E5), модели, загруженные через Eland, Cohere, OpenAI, Azure, Google AI Studio, Google Vertex AI, Anthropic, Watsonx.ai или Hugging Face. Для встроенных моделей и моделей, загруженных через Eland, Inference APIs предлагают альтернативный способ использования и управления обученными моделями. Однако, если вы не планируете использовать Inference APIs для этих моделей или хотите использовать модели, не относящиеся к NLP, используйте APIs моделей машинного обучения.

Запрос

POST /_inference/<inference_id>/_stream

POST /_inference/<task_type>/<inference_id>/_stream

Предварительные условия

  • Требуется monitor_inference право доступа к кластеру (встроенные роли inference_admin и inference_user предоставляют это право).
  • Вы должны использовать клиент, поддерживающий потоковую передачу данных.

Описание

API потокового вывода позволяет получать ответы в реальном времени на задачи завершения, предоставляя ответы по частям, что сокращает время обработки во время вычислений. Он работает только с типом задачи completion.

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

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

Тело запроса

input

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

Конечные точки вывода для типа задачи completion в настоящее время поддерживают только одну строку в качестве входных данных.

Примеры

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

resp = client.inference.stream_inference(
    task_type="completion",
    inference_id="openai-completion",
    input="What is Elastic?",
)
print(resp)
const response = await client.transport.request({
  method: "POST",
  path: "/_inference/completion/openai-completion/_stream",
  body: {
    input: "What is Elastic?",
  },
});
console.log(response);
POST _inference/completion/openai-completion/_stream
{
  "input": "What is Elastic?"
}

API возвращает следующий ответ:

event: message
data: {
  "completion":[{
    "delta":"Elastic"
  }]
}

event: message
data: {
  "completion":[{
    "delta":" is"
    },
    {
    "delta":" a"
    }
  ]
}

event: message
data: {
  "completion":[{
    "delta":" software"
  },
  {
    "delta":" company"
  }]
}

(...)

© 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/stream-inference-api.html

Spec-Zone.ru

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