您可以使用 OpenAI 库(Python 和 TypeScript / JavaScript)以及 REST API 访问 Gemini 模型,只需更新三行代码并使用 Gemini API 密钥即可。如需详细了解此功能,请参阅兼容性指南。
方法:chatCompletions
在给定聊天记录输入的情况下,从模型生成一组回答。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta:chatCompletions
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
model
string
必需。用于生成补全项的 Model
的名称。如果模型名称中没有斜线,则会在其前面加上“models/”。
messages[]
object (Struct
format)
必需。用于生成补全内容的聊天记录。支持单轮和多轮询问。注意:这是个多态字段,会序列化为 InternalChatMessage。
stream
boolean
可选。是否流式传输回答或返回单个回答。
如果为 true,响应中的“object”字段将为“chat.completion.chunk”。否则,将为“chat.completion”。
streamOptions
object (StreamOptions
)
可选。流式请求的选项。
tools[]
object (ChatTool
)
可选。模型可以为其生成调用的工具集。每个工具都会声明其签名。
toolChoice
value (Value
format)
可选。控制模型是否应使用工具以及使用哪种工具。可以是:- 字符串“none”,用于停用工具。- 字符串“auto”,表示由模型自行决定。- 字符串“required”,用于强制模型使用工具。- 函数名称描述符对象,用于指定要使用的工具。最后一个选项遵循以下架构:{ "type": "function", "function": {"name" : "the_function_name"} }
n
integer
可选。要生成的候选填充项的数量。必须是正整数。如果未设置,则默认为 1。
stop
value (Value
format)
可选。用于停止生成输出的字符序列集。注意:这是多态字段。它应包含一个字符串或重复的字符串。
maxCompletionTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。
maxTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。此字段已被 SDK 弃用。
temperature
number
可选。控制输出的随机性。
topP
number
可选。采样时要考虑的词元的累计概率上限。
responseFormat
object (ResponseFormat
)
可选。定义回答的格式。如果未设置,则响应将采用文本格式。
响应正文
如果成功,则响应为通用 HTTP 响应,其格式由方法定义。
方法:嵌入
在给定输入的情况下,从模型生成嵌入。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /embeddings
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
input
value (Value
format)
必需。要为其生成嵌入的输入。可以是字符串,也可以是字符串列表。SDK 支持数字列表和数字列表列表,但尚未实现。
model
string
必需。要为其生成嵌入的模型。
encodingFormat
string
可选。编码格式。必须是“float”或“base64”。
dimensions
integer
可选。生成的嵌入的维度大小。
响应正文
如果成功,则响应正文包含一个 GenerateEmbeddingsResponse
实例。
方法:listModels
列出当前可用的模型。
端点
gethttps: / /generativelanguage.googleapis.com /v1beta /listModels
网址采用 gRPC 转码语法。
请求正文
请求正文必须为空。
响应正文
如果成功,则响应正文包含一个 SdkListModelsResponse
实例。
方法:chat.completions
在给定聊天记录输入的情况下,从模型生成一组回答。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /chat /completions
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
model
string
必需。用于生成补全项的 Model
的名称。如果模型名称中没有斜线,则会在其前面加上“models/”。
messages[]
object (Struct
format)
必需。用于生成补全内容的聊天记录。支持单轮和多轮询问。注意:这是个多态字段,会序列化为 InternalChatMessage。
stream
boolean
可选。是否流式传输回答或返回单个回答。
如果为 true,响应中的“object”字段将为“chat.completion.chunk”。否则,将为“chat.completion”。
streamOptions
object (StreamOptions
)
可选。流式请求的选项。
tools[]
object (ChatTool
)
可选。模型可以为其生成调用的工具集。每个工具都会声明其签名。
toolChoice
value (Value
format)
可选。控制模型是否应使用工具以及使用哪种工具。可以是:- 字符串“none”,用于停用工具。- 字符串“auto”,表示由模型自行决定。- 字符串“required”,用于强制模型使用工具。- 函数名称描述符对象,用于指定要使用的工具。最后一个选项遵循以下架构:{ "type": "function", "function": {"name" : "the_function_name"} }
n
integer
可选。要生成的候选填充项的数量。必须是正整数。如果未设置,则默认为 1。
stop
value (Value
format)
可选。用于停止生成输出的字符序列集。注意:这是多态字段。它应包含一个字符串或重复的字符串。
maxCompletionTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。
maxTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。此字段已被 SDK 弃用。
temperature
number
可选。控制输出的随机性。
topP
number
可选。采样时要考虑的词元的累计概率上限。
responseFormat
object (ResponseFormat
)
可选。定义回答的格式。如果未设置,则响应将采用文本格式。
响应正文
如果成功,则响应为通用 HTTP 响应,其格式由方法定义。
方法:embeddings.generate
在给定输入的情况下,从模型生成嵌入。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
input
value (Value
format)
必需。要为其生成嵌入的输入。可以是字符串,也可以是字符串列表。SDK 支持数字列表和数字列表列表,但尚未实现。
model
string
必需。要为其生成嵌入的模型。
encodingFormat
string
可选。编码格式。必须是“float”或“base64”。
dimensions
integer
可选。生成的嵌入的维度大小。
响应正文
如果成功,则响应正文包含一个 GenerateEmbeddingsResponse
实例。
方法:openai.chat.completions
在给定聊天记录输入的情况下,从模型生成一组回答。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /openai /chat /completions
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
model
string
必需。用于生成补全项的 Model
的名称。如果模型名称中没有斜线,则会在其前面加上“models/”。
messages[]
object (Struct
format)
必需。用于生成补全内容的聊天记录。支持单轮和多轮询问。注意:这是个多态字段,会序列化为 InternalChatMessage。
stream
boolean
可选。是否流式传输回答或返回单个回答。
如果为 true,响应中的“object”字段将为“chat.completion.chunk”。否则,将为“chat.completion”。
streamOptions
object (StreamOptions
)
可选。流式请求的选项。
tools[]
object (ChatTool
)
可选。模型可以为其生成调用的工具集。每个工具都会声明其签名。
toolChoice
value (Value
format)
可选。控制模型是否应使用工具以及使用哪种工具。可以是:- 字符串“none”,用于停用工具。- 字符串“auto”,表示由模型自行决定。- 字符串“required”,用于强制模型使用工具。- 函数名称描述符对象,用于指定要使用的工具。最后一个选项遵循以下架构:{ "type": "function", "function": {"name" : "the_function_name"} }
n
integer
可选。要生成的候选填充项的数量。必须是正整数。如果未设置,则默认为 1。
stop
value (Value
format)
可选。用于停止生成输出的字符序列集。注意:这是多态字段。它应包含一个字符串或重复的字符串。
maxCompletionTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。
maxTokens
integer
可选。候选回复中包含的令牌数量上限。必须是正整数。此字段已被 SDK 弃用。
temperature
number
可选。控制输出的随机性。
topP
number
可选。采样时要考虑的词元的累计概率上限。
responseFormat
object (ResponseFormat
)
可选。定义回答的格式。如果未设置,则响应将采用文本格式。
响应正文
如果成功,则响应为通用 HTTP 响应,其格式由方法定义。
方法:openai.embeddings
在给定输入的情况下,从模型生成嵌入。
端点
帖子https: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
网址采用 gRPC 转码语法。
请求正文
请求正文中包含结构如下的数据:
input
value (Value
format)
必需。要为其生成嵌入的输入。可以是字符串,也可以是字符串列表。SDK 支持数字列表和数字列表列表,但尚未实现。
model
string
必需。要为其生成嵌入的模型。
encodingFormat
string
可选。编码格式。必须是“float”或“base64”。
dimensions
integer
可选。生成的嵌入的维度大小。
响应正文
如果成功,则响应正文包含一个 GenerateEmbeddingsResponse
实例。
方法:openai.models
列出当前可用的模型。
端点
gethttps: / /generativelanguage.googleapis.com /v1beta /openai /models
网址采用 gRPC 转码语法。
请求正文
请求正文必须为空。
响应正文
如果成功,则响应正文包含一个 SdkListModelsResponse
实例。
ChatTool
模型可以为其生成调用的工具。
function
object (ChatFunction
)
必需。工具的名称。
type
string
必需。必填,必须为“function”。
JSON 表示法 |
---|
{
"function": {
object ( |
ChatFunction
模型可以为其生成调用的函数。
name
string
必需。函数的名称。
description
string
可选。函数的说明。
parameters
object (Struct
format)
可选。函数的参数。
strict
boolean
可选。架构验证是否严格。如果为 true,如果架构无效,模型将失败。注意:此参数目前会被忽略。
JSON 表示法 |
---|
{ "name": string, "description": string, "parameters": { object }, "strict": boolean } |
GenerateEmbeddingsResponse
对嵌入生成的响应。
object
string
仅限输出。始终为“嵌入”,这是 SDK 所要求的。
data[]
object (GenerateEmbeddingsEmbedding
)
仅限输出。请求的嵌入列表。
model
string
仅限输出。用于生成嵌入的模型。
JSON 表示法 |
---|
{
"object": string,
"data": [
{
object ( |
GenerateEmbeddingsEmbedding
模型生成的嵌入向量。
object
string
仅限输出。始终为“嵌入”,这是 SDK 所要求的。
index
integer
仅限输出。嵌入列表中的嵌入索引。
embedding
value (Value
format)
仅限输出。为输入生成的嵌入向量。可以是浮点数列表,也可以是使用 C 风格布局(与 Numpy 兼容)编码浮点数列表的 base64 字符串。
JSON 表示法 |
---|
{ "object": string, "index": integer, "embedding": value } |
HttpBody
表示任意 HTTP 正文的消息。它应仅用于无法表示为 JSON 的负载格式,例如原始二进制文件或 HTML 网页。
此消息可同时用于请求和响应中的流式传输和非流式传输 API 方法。
它可以用作顶级请求字段,如果想要将网址或 HTTP 模板中的参数提取到请求字段中,并且还希望访问原始 HTTP 正文,这会很方便。
示例:
message GetResourceRequest {
// A unique request id.
string requestId = 1;
// The raw HTTP body is bound to this field.
google.api.HttpBody http_body = 2;
}
service ResourceService {
rpc GetResource(GetResourceRequest)
returns (google.api.HttpBody);
rpc UpdateResource(google.api.HttpBody)
returns (google.protobuf.Empty);
}
流式传输方法示例:
service CaldavService {
rpc GetCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
rpc UpdateCalendar(stream google.api.HttpBody)
returns (stream google.api.HttpBody);
}
使用此类型仅会更改请求和响应正文的处理方式,所有其他功能将继续保持不变。
contentType
string
指定正文内容类型的 HTTP Content-Type 标头值。
data
string (bytes format)
作为原始二进制文件的 HTTP 请求/响应正文。
base64 编码的字符串。
extensions[]
object
应用专用响应元数据。必须在流式传输 API 的第一个响应中设置。
此对象可以包含任意类型的字段。附加字段 "@type"
包含用于标示相应类型的 URI。示例:{ "id": 1234, "@type": "types.example.com/standard/id" }
。
JSON 表示法 |
---|
{ "contentType": string, "data": string, "extensions": [ { "@type": string, field1: ..., ... } ] } |
ResponseFormat
定义回答的格式。
type
string
必需。响应类型。可以是:-“text”:将回答设置为文本格式。- “json_object”:将响应格式化为 JSON 对象。- “jsonSchema”:将响应格式化为遵循给定架构的 JSON 对象。
jsonSchema
object (ResponseFormatSchema
)
可选。要遵循的 JSON 架构。仅在类型为“jsonSchema”时使用。
JSON 表示法 |
---|
{
"type": string,
"jsonSchema": {
object ( |
ResponseFormatSchema
响应的架构。
description
string
可选。架构所代表对象的说明。
name
string
必需。架构所代表的对象类型的名称。
strict
boolean
可选。架构验证是否严格。如果为 true,如果架构无效,模型将失败。注意:此参数目前会被忽略。
schema
object (Struct
format)
可选。要遵循的 JSON 架构。
JSON 表示法 |
---|
{ "description": string, "name": string, "strict": boolean, "schema": { object } } |
SdkListModelsResponse
列出模型的响应。
object
string
仅限输出。始终为“list”,这是 SDK 所要求的。
data[]
object (SdkModel
)
仅限输出。请求的嵌入列表。
JSON 表示法 |
---|
{
"object": string,
"data": [
{
object ( |
SdkModel
模型对象。
id
string
仅限输出。模型的 ID。
object
string
仅限输出。始终为“model”,这是 SDK 所要求的。
created
string (int64 format)
仅限输出。模型创建时的 Unix 时间戳(以秒为单位)。
owned_by
string
仅限输出。拥有模型的组织。
JSON 表示法 |
---|
{ "id": string, "object": string, "created": string, "owned_by": string } |