您可以使用 OpenAI 程式庫 (Python 和 TypeScript / JavaScript) 搭配 REST API,透過更新三行程式碼並使用 Gemini API 金鑰,存取 Gemini 模型。如要進一步瞭解這項功能,請參閱相容性指南。
方法:chatCompletions
根據即時通訊記錄輸入內容,產生模型的一系列回覆。
端點
posthttps: / /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 回應,其格式由方法定義。
方法:embeddings
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings
這個網址使用 gRPC 轉碼語法。
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「浮點」或「base64」。
dimensions
integer
選用設定。產生嵌入資料的維度大小。
回應主體
如果成功,回應主體會包含 GenerateEmbeddingsResponse
的執行例項。
方法:listModels
列出目前可用的模型。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /listModels
這個網址使用 gRPC 轉碼語法。
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會包含 SdkListModelsResponse
的執行例項。
方法:chat.completions
根據輸入的即時通訊記錄,產生模型的回覆集。
端點
posthttps: / /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
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
這個網址使用 gRPC 轉碼語法。
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「浮點」或「base64」。
dimensions
integer
選用設定。產生嵌入資料的維度大小。
回應主體
如果成功,回應主體會包含 GenerateEmbeddingsResponse
的執行例項。
方法:openai.chat.completions
根據即時通訊記錄輸入內容,產生模型的一系列回覆。
端點
posthttps: / /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
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
這個網址使用 gRPC 轉碼語法。
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「浮點」或「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)
僅供輸出。系統為輸入內容產生的嵌入向量。可以是浮點值清單,也可以是 base64 字串,用於以 C 樣式版面配置編碼浮點值清單 (與 Numpy 相容)。
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 結構定義。只有在 type 為「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
僅供輸出。一律為 SDK 所需的「model」。
created
string (int64 format)
僅供輸出。建立模型時的 Unix 時間戳記 (以秒為單位)。
owned_by
string
僅供輸出。擁有模型的機構。
JSON 表示法 |
---|
{ "id": string, "object": string, "created": string, "owned_by": string } |