流式推理 API
编辑流式推理 API
编辑流式传输聊天补全响应。
推理 API 使您能够使用某些服务,例如内置的机器学习模型(ELSER、E5)、通过 Eland 上传的模型、Cohere、OpenAI、Azure、Google AI Studio、Google Vertex AI、Anthropic、Watsonx.ai 或 Hugging Face。对于内置模型和通过 Eland 上传的模型,推理 API 提供了一种使用和管理训练模型的替代方法。但是,如果您不打算使用推理 API 来使用这些模型,或者您想使用非 NLP 模型,请使用机器学习训练模型 API。
请求
编辑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", body={ "input": "What is Elastic?" }, ) print(resp)
const response = await client.inference.streamInference({ task_type: "completion", inference_id: "openai-completion", 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" }] } (...)