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

(...)