Amazon Bedrock 推理服务

编辑

创建推理端点以使用 amazonbedrock 服务执行推理任务。

请求

编辑

PUT /_inference/<task_type>/<inference_id>

路径参数

编辑
<inference_id>
(必填,字符串) 推理端点的唯一标识符。
<task_type>

(必填,字符串) 模型将执行的推理任务类型。

可用任务类型

  • completion,
  • text_embedding.

请求体

编辑
chunking_settings

(可选,对象) 分块配置对象。请参阅 配置分块 以了解有关分块的更多信息。

max_chunking_size
(可选,整数) 指定分块的最大大小(以词为单位)。默认为 250。此值不能高于 300 或低于 20(对于 sentence 策略)或 10(对于 word 策略)。
overlap
(可选,整数) 仅适用于 word 分块策略。指定分块的重叠词数。默认为 100。此值不能高于 max_chunking_size 的一半。
sentence_overlap
(可选,整数) 仅适用于 sentence 分块策略。指定分块的重叠句子数。它可以是 10。默认为 1
strategy
(可选,字符串) 指定分块策略。它可以是 sentenceword
service
(必填,字符串) 指定任务类型支持的服务类型。在本例中为 amazonbedrock
service_settings

(必填,对象) 用于安装推理模型的设置。

这些设置特定于 amazonbedrock 服务。

access_key
(必填,字符串) 有效的 AWS 访问密钥,该密钥具有使用 Amazon Bedrock 和访问模型以进行推理请求的权限。
secret_key
(必填,字符串) 与 access_key 配对的有效 AWS 密钥。要创建或管理访问密钥和密钥,请参阅 AWS 文档中的 管理 IAM 用户的访问密钥

您只需要在创建推理模型时提供一次访问密钥和密钥。 获取推理 API 不会检索您的访问密钥或密钥。创建推理模型后,您无法更改关联的密钥对。如果您想使用不同的访问密钥和密钥对,请删除推理模型并使用相同名称和更新的密钥重新创建它。

provider

(必填,字符串) 部署的模型提供商。请注意,某些提供商可能仅支持某些任务类型。支持的提供商包括

  • amazontitan - 可用于 text_embeddingcompletion 任务类型
  • anthropic - 仅可用于 completion 任务类型
  • ai21labs - 仅可用于 completion 任务类型
  • cohere - 可用于 text_embeddingcompletion 任务类型
  • meta - 仅可用于 completion 任务类型
  • mistral - 仅可用于 completion 任务类型
model
(必填,字符串) 基于基础模型的自定义模型的基本模型 ID 或 ARN。基本模型 ID 可以在 Amazon Bedrock 模型 ID 文档中找到。请注意,模型 ID 必须可用于所选提供商,并且您的 IAM 用户必须有权访问该模型。
region
(必填,字符串) 部署模型或 ARN 的区域。每个模型的可用区域列表可以在 AWS 区域模型支持 文档中找到。
rate_limit

(可选,对象) 默认情况下,amazonbedrock 服务将每分钟允许的请求数设置为 240。这有助于最大程度地减少从 Amazon Bedrock 返回的速率限制错误。要修改此设置,请在服务设置中设置此对象的 requests_per_minute 设置

"rate_limit": {
    "requests_per_minute": <<number_of_requests>>
}
task_settings
(可选,对象) 用于配置推理任务的设置。这些设置特定于您指定的 <task_type>
task_settings 用于 completion 任务类型
max_new_tokens
(可选,整数) 设置要生成的输出标记的最大数量。默认为 64。
temperature
(可选,浮点数) 0.0 到 1.0 之间的数字,用于控制结果的明显创造性。在温度 0.0 时,模型最确定性,在温度 1.0 时最随机。如果指定了 top_ptop_k,则不应使用。
top_p
(可选,浮点数) temperature 的替代方案。0.0 到 1.0 范围内的数字,用于消除低概率标记。Top-p 使用核采样来选择总似然度不超过某个值的顶部标记,从而确保多样性和连贯性。如果指定了 temperature,则不应使用。
top_k
(可选,浮点数) 仅适用于 anthropiccoheremistral 提供商。 temperature 的替代方案。将样本限制为前 K 个最可能的词,平衡连贯性和可变性。如果指定了 temperature,则不应使用。

Amazon Bedrock 服务示例

编辑

以下示例显示了如何创建名为 amazon_bedrock_embeddings 的推理端点以执行 text_embedding 任务类型。

Amazon Bedrock 基本模型 中选择您有权访问的聊天完成和嵌入模型。

resp = client.inference.put(
    task_type="text_embedding",
    inference_id="amazon_bedrock_embeddings",
    inference_config={
        "service": "amazonbedrock",
        "service_settings": {
            "access_key": "<aws_access_key>",
            "secret_key": "<aws_secret_key>",
            "region": "us-east-1",
            "provider": "amazontitan",
            "model": "amazon.titan-embed-text-v2:0"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "text_embedding",
  inference_id: "amazon_bedrock_embeddings",
  inference_config: {
    service: "amazonbedrock",
    service_settings: {
      access_key: "<aws_access_key>",
      secret_key: "<aws_secret_key>",
      region: "us-east-1",
      provider: "amazontitan",
      model: "amazon.titan-embed-text-v2:0",
    },
  },
});
console.log(response);
PUT _inference/text_embedding/amazon_bedrock_embeddings
{
    "service": "amazonbedrock",
    "service_settings": {
        "access_key": "<aws_access_key>",
        "secret_key": "<aws_secret_key>",
        "region": "us-east-1",
        "provider": "amazontitan",
        "model": "amazon.titan-embed-text-v2:0"
    }
}

下一个示例显示了如何创建名为 amazon_bedrock_completion 的推理端点以执行 completion 任务类型。

resp = client.inference.put(
    task_type="completion",
    inference_id="amazon_bedrock_completion",
    inference_config={
        "service": "amazonbedrock",
        "service_settings": {
            "access_key": "<aws_access_key>",
            "secret_key": "<aws_secret_key>",
            "region": "us-east-1",
            "provider": "amazontitan",
            "model": "amazon.titan-text-premier-v1:0"
        }
    },
)
print(resp)
const response = await client.inference.put({
  task_type: "completion",
  inference_id: "amazon_bedrock_completion",
  inference_config: {
    service: "amazonbedrock",
    service_settings: {
      access_key: "<aws_access_key>",
      secret_key: "<aws_secret_key>",
      region: "us-east-1",
      provider: "amazontitan",
      model: "amazon.titan-text-premier-v1:0",
    },
  },
});
console.log(response);
PUT _inference/completion/amazon_bedrock_completion
{
    "service": "amazonbedrock",
    "service_settings": {
        "access_key": "<aws_access_key>",
        "secret_key": "<aws_secret_key>",
        "region": "us-east-1",
        "provider": "amazontitan",
        "model": "amazon.titan-text-premier-v1:0"
    }
}