您可以使用 OpenAI 程式庫 (Python 和 TypeScript / JavaScript) 搭配 REST API,透過更新三行程式碼並使用 Gemini API 金鑰,存取 Gemini 模型。如要進一步瞭解這項功能,請參閱相容性指南。
方法:chatCompletions
根據即時通訊記錄輸入內容,產生模型的一系列回覆。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta:chatCompletions
要求主體
要求主體的資料會採用以下結構:
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"} }
modalities[]
string
選用設定。要求的模式。
n
integer
選用設定。要產生的候選答案完成次數。必須是正整數。如果未設定,預設值為 1。
stop
value (Value
format)
選用設定。會停止產生輸出的字元序列集合。注意:這是多態欄位。這表示該欄位包含字串或重複的字串。
maxCompletionTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。
maxTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。這個欄位已由 SDK 淘汰。
temperature
number
選用設定。控制輸出的隨機性。
topP
number
選用設定。取樣時要考慮的符記累計可能性上限。
responseFormat
object (ResponseFormat
)
選用設定。定義回應的格式。如未設定,回應會以文字格式顯示。
audio
object (AudioOptions
)
選用設定。音訊產生選項。
parallelToolCalls
boolean
選用設定。是否要並行呼叫工具。為了與 SDK 相容,這裡會納入此屬性,但只支援 false。
presencePenalty
number
選用設定。根據先前的出現次數,對新符記處以懲罰。有效範圍為 [-2, 2]。預設值為 0。
user
string
選用設定。用於追蹤要求的使用者名稱。未使用,僅供 SDK 相容性使用。
回應主體
如果成功,回應會是一般 HTTP 回應,其格式由方法定義。
方法:embeddings
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「float」或「base64」。
dimensions
integer
選用設定。產生嵌入資料的維度大小。
回應主體
如果成功,回應主體會包含 GenerateEmbeddingsResponse
的執行例項。
方法:listModels
列出目前可用的模型。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /listModels
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會包含 SdkListModelsResponse
的執行例項。
方法:chat.completions
根據即時通訊記錄輸入內容,產生模型的一系列回覆。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /chat /completions
要求主體
要求主體的資料會採用以下結構:
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"} }
modalities[]
string
選用設定。要求的模式。
n
integer
選用設定。要產生的候選答案完成次數。必須是正整數。如果未設定,預設值為 1。
stop
value (Value
format)
選用設定。會停止產生輸出的字元序列集合。注意:這是多態欄位。這表示該欄位包含字串或重複的字串。
maxCompletionTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。
maxTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。這個欄位已由 SDK 淘汰。
temperature
number
選用設定。控制輸出的隨機性。
topP
number
選用設定。取樣時要考慮的符記累計可能性上限。
responseFormat
object (ResponseFormat
)
選用設定。定義回應的格式。如未設定,回應會以文字格式顯示。
audio
object (AudioOptions
)
選用設定。音訊產生選項。
parallelToolCalls
boolean
選用設定。是否要並行呼叫工具。為了與 SDK 相容,這裡會納入此屬性,但只支援 false。
presencePenalty
number
選用設定。根據先前的出現次數,對新符記處以懲罰。有效範圍為 [-2, 2]。預設值為 0。
user
string
選用設定。用於追蹤要求的使用者名稱。未使用,僅供 SDK 相容性使用。
回應主體
如果成功,回應會是一般 HTTP 回應,其格式由方法定義。
方法:embeddings.generate
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /embeddings:generate
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「float」或「base64」。
dimensions
integer
選用設定。產生嵌入資料的維度大小。
回應主體
如果成功,回應主體會包含 GenerateEmbeddingsResponse
的執行例項。
方法:images.generate
根據輸入內容,從模型產生圖片。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /images:generate
要求主體
要求主體的資料會採用以下結構:
prompt
string
必要欄位。所需圖片的文字說明。長度上限為 1000 個半形字元。
model
string
選用設定。要為其產生圖片的模型。
n
integer
選用設定。要產生的圖片數量。
quality
string
選用設定。系統產生的圖片品質。「hd」可產生細節更精細且一致性的圖片。
responseFormat
string
選用設定。系統傳回的圖片格式。必須是 url 或 b64Json 其中一種
size
string
選用設定。生成圖像的大小
style
string
選用設定。生成圖像的樣式。必須是鮮豔或自然。
user
string
選用設定。代表使用者的專屬 ID
回應主體
如果成功,回應主體會包含 GenerateImagesResponse
的執行例項。
方法:listModels.sdkGetModel
取得模型例項。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /listModels /*
查詢參數
model
string
必要欄位。要取得的模型名稱。
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會包含 SdkModel
的執行例項。
方法:openai.chat.completions
根據即時通訊記錄輸入內容,產生模型的一系列回覆。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /chat /completions
要求主體
要求主體的資料會採用以下結構:
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"} }
modalities[]
string
選用設定。要求的模式。
n
integer
選用設定。要產生的候選答案完成次數。必須是正整數。如果未設定,預設值為 1。
stop
value (Value
format)
選用設定。會停止產生輸出的字元序列集合。注意:這是多態欄位。這表示該欄位包含字串或重複的字串。
maxCompletionTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。
maxTokens
integer
選用設定。回應候選項中可納入的符記數量上限。必須是正整數。這個欄位已由 SDK 淘汰。
temperature
number
選用設定。控制輸出的隨機性。
topP
number
選用設定。取樣時要考慮的符記累計可能性上限。
responseFormat
object (ResponseFormat
)
選用設定。定義回應的格式。如未設定,回應會以文字格式顯示。
audio
object (AudioOptions
)
選用設定。音訊產生選項。
parallelToolCalls
boolean
選用設定。是否要並行呼叫工具。為了與 SDK 相容,這裡會納入此屬性,但只支援 false。
presencePenalty
number
選用設定。根據先前的出現次數,對新符記處以懲罰。有效範圍為 [-2, 2]。預設值為 0。
user
string
選用設定。用於追蹤要求的使用者名稱。未使用,僅供 SDK 相容性使用。
回應主體
如果成功,回應會是一般 HTTP 回應,其格式由方法定義。
方法:openai.embeddings
根據輸入內容,從模型產生嵌入項目。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /embeddings
要求主體
要求主體的資料會採用以下結構:
input
value (Value
format)
必要欄位。要為其產生嵌入的輸入內容。可以是字串,或字串清單。SDK 支援數字清單和數字清單清單,但尚未實作。
model
string
必要欄位。要為其產生嵌入的模型。
encodingFormat
string
選用設定。編碼格式。必須是「float」或「base64」。
dimensions
integer
選用設定。產生嵌入資料的維度大小。
回應主體
如果成功,回應主體會包含 GenerateEmbeddingsResponse
的執行例項。
方法:openai.images
根據輸入內容,從模型產生圖片。
端點
posthttps: / /generativelanguage.googleapis.com /v1beta /openai /images
要求主體
要求主體的資料會採用以下結構:
prompt
string
必要欄位。所需圖片的文字說明。長度上限為 1000 個半形字元。
model
string
選用設定。要為其產生圖片的模型。
n
integer
選用設定。要產生的圖片數量。
quality
string
選用設定。系統產生的圖片品質。「hd」可產生細節更精細且一致性的圖片。
responseFormat
string
選用設定。系統傳回的圖片格式。必須是 url 或 b64Json 其中一種
size
string
選用設定。生成圖像的大小
style
string
選用設定。生成圖像的樣式。必須是鮮豔或自然。
user
string
選用設定。代表使用者的專屬 ID
回應主體
如果成功,回應主體會包含 GenerateImagesResponse
的執行例項。
方法:openai.models
列出目前可用的模型。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /openai /models
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會包含 SdkListModelsResponse
的執行例項。
方法:openai.models.sdkGetModel
取得模型例項。
端點
gethttps: / /generativelanguage.googleapis.com /v1beta /openai /models /*
查詢參數
model
string
必要欄位。要取得的模型名稱。
要求主體
要求主體必須為空白。
回應主體
如果成功,回應主體會包含 SdkModel
的執行例項。
AudioOptions
音訊產生選項。
voice
string
選用設定。用於音訊回應的語音。
format
string
選用設定。音訊回應的格式。可以是下列任一值:- "wav":將回應格式設為 WAV 檔案。- "mp3":將回覆格式化為 MP3 檔案。- "flac":將回覆格式設為 FLAC 檔案。- "opus":將回應格式化為 OPUS 檔案。- "pcm16":將回應格式化為 PCM16 檔案。
JSON 表示法 |
---|
{ "voice": string, "format": string } |
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 } |
GenerateImagesResponse
圖像生成回覆。
object
string
僅供輸出。一律為「image」,SDK 需要這個值。
images[]
object (Image
)
僅供輸出。已產生的圖片清單。
model
string
僅供輸出。用來產生圖片的模型。
JSON 表示法 |
---|
{
"object": string,
"images": [
{
object ( |
圖片
模型產生的圖片。
b64Json
string (bytes format)
產生圖片的 base64 編碼 JSON。
Base64 編碼字串。
JSON 表示法 |
---|
{ "b64Json": string } |
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 } } |
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 } |