流式推理 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" }] } (...)