仅 DataPower API Gateway

双子座调用

Draft comment: abeesh.thomas@ibm.com
Review pending This is the CLI version.
使用 "Gemini调用策略调用 "Gemini操作。

网关支持

表 1. 显示哪些网关支持此策略以及对应策略版本的表格
网关 策略版本
DataPower® API Gateway 2.0.0

本主题介绍了如何在 OpenAPI 源中配置策略;有关如何在Assembly用户界面中配置策略的详细信息,请参阅 “Gemini调用 ”。

关于

Gemini调用策略可访问六个 "Gemini"操作:
  • POST models/[model]:generateContent
  • POST models/[model]:countTokens
  • POST models/[model]:embedContent
  • POST models/[model]:batchEmbedContents
  • GET models/[model]
  • GET models

属性

下表列示了策略属性,指示属性是否为必需属性,指定输入的有效值和缺省值并指定值的数据类型。

表 2. Gemini 调用策略属性
属性名 必需 描述 数据类型
version 策略版本号。 您必须为策略指定一个与您使用的网关兼容的版本。 在发布应用程序接口时,如果版本与网关不兼容,就会出现验证错误,并说明可用的版本。 字符串
title False 策略的标题;默认值为 "Gemini调用计数令牌。 字符串
description False 对策略的描述。 字符串
operation 要调用的 "Gemini操作必须是以下操作之一:
  • POST models/[model]:generateContent

    generateContent 的 HTTP POST 操作。 有关请求和响应示例,请参阅 API Gemini 文档中的 “生成内容 ”部分。

  • POST models/[model]:countTokens

    /countTokens 的 HTTP POST 操作。 有关请求和响应示例,请参阅 API Gemini 文档中的 “计数令牌” 部分。

  • POST models/[model]:embedContent

    embedContent 的 HTTP POST 操作。 请参阅 API Gemini 文档中的 “嵌入内容 ”部分,查看请求和响应示例。

  • POST models/[model]:batchEmbedContents

    batchEmbedContents 的 HTTP POST 操作。 有关请求和响应示例,请参阅 API Gemini 文档中的 “批量嵌入内容 ”部分。

  • GET models

    /models 的 HTTP GET 操作。 有关响应示例,请参阅 API Gemini 文档中的 “List Models” 部分。

  • GET models/[model]

    /models/[model] 的 HTTP GET 操作。 有关响应示例,请参阅 API Gemini 文档中的 “检索模型 ”部分。

字符串
api_key API 密钥,或指向包含 API 密钥的变量的变量引用。 API 密钥用于验证 "Gemini请求。 字符串
enable_cache False 默认情况下会启用响应缓存,以优化 API 性能;但如果您的 API 需要,也可以禁用响应缓存。

启用响应缓存后,当向 "Gemini服务发送请求时,将检查响应缓存,以确定请求有效载荷是否有相关的缓存响应。 如果是这样,该缓存响应及其相关 HTTP 响应标头将被放入 output 属性指定的 DataPower API Gateway 上下文消息中。

如果没有缓存响应,则会将请求传递给 "Gemini服务,并使用 "cache_ttl属性中指定的 "存活时间 "缓存响应,以便后续操作使用。

布尔型
cache_ttl False 缓存的持续时间(存活时间)。 最短持续时间为 60 秒,最长持续时间为 86400 秒(1 天)--在发布 API 时,任何超出此范围的值都将无法通过验证,即使此字段中的值已被接受。 整数
cache_scope False 为用于存储缓存响应的密钥添加唯一性的字符串。 添加缓存范围可将同一请求保存在多个缓存条目中。 字符串
路径参数 False 如果操作中有一个路径参数,并在操作中用方括号指定了路径参数名,则指定参数名和值,参数名和值之间用冒号隔开。 如果操作有一个以上的路径参数,则每个路径参数应使用逗号分隔。 例如,对于操作 "GET models/[model],路径参数属性应指定为 "model:somename
注意:如果所选操作需要但未提供路径参数,则调用操作将失败。 不过,对于不需要路径参数的操作,任何提供的路径参数都将被忽略。
字符串
查询参数 False 对于支持查询参数的操作,请指定一个查询参数字符串,该字符串应指定参数名称和用等号分隔的值。 如果支持一个以上的查询参数,则每个查询参数之间用 "ampersand "字符分隔。 目前支持的操作不支持查询参数,但未来可能支持的操作将支持查询参数。 字符串
output False 接收响应 Gemini 的上下文消息的名称,该消息位于 DataPowerAPI Gateway 上下文中。 默认情况下,该属性使用 "message作为值,这样就能让后续 API 策略以 "message.body和 "message.headers访问响应。 字符串

示例


gemini-invoke:
                    title: Gemini invoke count tokens
                    enable_cache: true
                    version: 2.0.0
                    api_key: $(gemini-apikey)
                    cache_ttl: 60
                    operation: POST models/[model]:countTokens
                    output: message
                    description: description goes here               
                    cache_scope: cachescopevalue