API потокового вывода
Потоково передает ответ на запрос завершения чата.
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