流式推理 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_admininference_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"
  }]
}

(...)