嵌入是文字輸入的數值表示法,可開啟許多獨特的用途,例如分群、相似度測量和資訊檢索。如需簡介,請參閱嵌入指南。
與生成新內容的生成式 AI 模型不同,Gemini Embedding 模型只會將輸入資料的格式轉換為數字表示法。Google 負責提供嵌入模型,將輸入資料的格式轉換為要求的數字格式,但使用者仍須對輸入的資料和產生的嵌入內容負全責。使用 Gemini Embedding 模型即代表你確認自己有權使用所上傳一切內容。請勿生成會侵害他人智慧財產或隱私權的內容。使用這項服務時,請務必遵守《使用限制政策》和《Google 服務條款》。
方法:models.embedContent
使用指定的 Gemini 嵌入模型,從輸入的 Content
生成文字嵌入向量。
端點
貼文https: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:embedContent
路徑參數
model
string
必要欄位。模型的資源名稱。這是模型使用的 ID。
這個名稱應與 models.list
方法傳回的模型名稱相符。
格式:models/{model}
,形式為 models/{model}
。
要求主體
要求主體的資料會採用以下結構:
content
object (Content
)
必要欄位。要嵌入的內容。系統只會計算 parts.text
欄位。
taskType
enum (TaskType
)
(選用步驟) 要使用嵌入內容的選用工作類型。舊款機型 (models/embedding-001
) 不支援這項功能。
title
string
(選用步驟) 文字的選用標題。只有在 TaskType 為 RETRIEVAL_DOCUMENT
時才適用。
注意:指定 title
的 RETRIEVAL_DOCUMENT
可提供更優質的擷取內嵌內容。
outputDimensionality
integer
(選用步驟) 輸出嵌入的選用縮減維度。如果設定此值,輸出嵌入中的過多值會從結尾截斷。僅支援 2024 年以後的新型號。如果使用舊版模型 (models/embedding-001
),則無法設定這個值。
要求範例
Python
Node.js
Go
貝殼
回應主體
如果成功,回應主體會包含 EmbedContentResponse
的執行例項。
方法:models.batchEmbedContents
從輸入 Content
產生多個嵌入向量,輸入 Content
包含以 EmbedContentRequest
物件表示的一批字串。
端點
貼文https: / /generativelanguage.googleapis.com /v1beta /{model=models /*}:batchEmbedContents
路徑參數
model
string
必要欄位。模型的資源名稱。這是模型使用的 ID。
這個名稱應與 models.list
方法傳回的模型名稱相符。
格式:models/{model}
,形式為 models/{model}
。
要求主體
要求主體的資料會採用以下結構:
requests[]
object (EmbedContentRequest
)
必要欄位。批次處理的嵌入要求。這些要求中的模型必須與指定的 BatchEmbedContentsRequest.model
模型相符。
要求範例
Python
Node.js
Go
貝殼
回應主體
對 BatchEmbedContentsRequest
的回應。
如果成功,回應主體會含有以下結構的資料:
embeddings[]
object (ContentEmbedding
)
僅供輸出。每個要求的嵌入內容,順序與批次要求中提供的順序相同。
JSON 表示法 |
---|
{
"embeddings": [
{
object ( |
方法:models.asyncBatchEmbedContent
將一批 models.embedContent
要求排入佇列,以進行批次處理。我們在 GenerativeService
中有一個 models.batchEmbedContents
處理常式,但已同步處理。因此我們將這個命名為 Async
,以免混淆。
端點
貼文https: / /generativelanguage.googleapis.com /v1beta /{batch.model=models /*}:asyncBatchEmbedContent
路徑參數
batch.model
string
必要欄位。用於生成完成內容的 Model
名稱。
格式:models/{model}
。格式為 models/{model}
。
要求主體
要求主體的資料會採用以下結構:
batch.name
string
僅供輸出。ID。批次的資源名稱。
格式:batches/{batchId}
。
batch.displayName
string
必要欄位。使用者定義的這批名稱。
batch.inputConfig
object (InputEmbedContentConfig
)
必要欄位。輸入執行批次處理作業的執行個體設定。
batch.output
object (EmbedContentBatchOutput
)
僅供輸出。批次要求的輸出內容。
batch.createTime
string (Timestamp
format)
僅供輸出。批次建立時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
batch.endTime
string (Timestamp
format)
僅供輸出。批次處理完成的時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
batch.updateTime
string (Timestamp
format)
僅供輸出。批次上次更新的時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
batch.batchStats
object (EmbedContentBatchStats
)
僅供輸出。批次的統計資料。
batch.state
enum (BatchState
)
僅供輸出。批次的狀態。
batch.priority
string (int64 format)
(選用步驟) 批次的優先順序。優先順序值較高的批次,會優先於優先順序值較低的批次處理。允許使用負值。預設值為 0。
回應主體
如果成功,回應主體會包含 Operation
的執行例項。
EmbedContentRequest
要求,內含模型要嵌入的 Content
。
model
string
必要欄位。模型的資源名稱。這是模型使用的 ID。
這個名稱應與 models.list
方法傳回的模型名稱相符。
格式:models/{model}
content
object (Content
)
必要欄位。要嵌入的內容。系統只會計算 parts.text
欄位。
taskType
enum (TaskType
)
(選用步驟) 要使用嵌入內容的選用工作類型。舊款機型 (models/embedding-001
) 不支援這項功能。
title
string
(選用步驟) 文字的選用標題。只有在 TaskType 為 RETRIEVAL_DOCUMENT
時才適用。
注意:指定 title
的 RETRIEVAL_DOCUMENT
可提供更優質的擷取內嵌內容。
outputDimensionality
integer
(選用步驟) 輸出嵌入的選用縮減維度。如果設定此值,輸出嵌入中的過多值會從結尾截斷。僅支援 2024 年以後的新型號。如果使用舊版模型 (models/embedding-001
),則無法設定這個值。
EmbedContentResponse
對 EmbedContentRequest
的回應。
embedding
object (ContentEmbedding
)
僅供輸出。從輸入內容生成的嵌入。
JSON 表示法 |
---|
{
"embedding": {
object ( |
TaskType
要使用嵌入內容的任務類型。
列舉 | |
---|---|
TASK_TYPE_UNSPECIFIED |
未設定值,預設為其他列舉值之一。 |
RETRIEVAL_QUERY |
指定給定文字是搜尋/擷取設定中的查詢。 |
RETRIEVAL_DOCUMENT |
指定給定文字是所搜尋語料庫中的文件。 |
SEMANTIC_SIMILARITY |
指定要將提供的文字用於 STS。 |
CLASSIFICATION |
指定要分類的文字。 |
CLUSTERING |
指定嵌入內容將用於叢集。 |
QUESTION_ANSWERING |
指定給定文字將用於回答問題。 |
FACT_VERIFICATION |
指定所提供的文字將用於事實查核。 |
CODE_RETRIEVAL_QUERY |
指定要使用提供的文字擷取驗證碼。 |
EmbedContentBatch
- JSON 表示法
- InputEmbedContentConfig
- InlinedEmbedContentRequests
- InlinedEmbedContentRequest
- EmbedContentBatchOutput
- InlinedEmbedContentResponses
- InlinedEmbedContentResponse
- EmbedContentBatchStats
代表一批 EmbedContent
要求的資源。
model
string
必要欄位。用於生成完成內容的 Model
名稱。
格式:models/{model}
。
name
string
僅供輸出。ID。批次的資源名稱。
格式:batches/{batchId}
。
displayName
string
必要欄位。使用者定義的這批名稱。
inputConfig
object (InputEmbedContentConfig
)
必要欄位。輸入執行批次處理作業的執行個體設定。
output
object (EmbedContentBatchOutput
)
僅供輸出。批次要求的輸出內容。
createTime
string (Timestamp
format)
僅供輸出。批次建立時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
endTime
string (Timestamp
format)
僅供輸出。批次處理完成的時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
updateTime
string (Timestamp
format)
僅供輸出。批次上次更新的時間。
使用 RFC 3339,產生的輸出內容一律會經過 Z 標準化,並使用 0、3、6 或 9 個小數點後位數。系統也接受「Z」以外的偏移量。例如:"2014-10-02T15:01:23Z"
、"2014-10-02T15:01:23.045123456Z"
或 "2014-10-02T15:01:23+05:30"
。
batchStats
object (EmbedContentBatchStats
)
僅供輸出。批次的統計資料。
state
enum (BatchState
)
僅供輸出。批次的狀態。
priority
string (int64 format)
(選用步驟) 批次的優先順序。優先順序值較高的批次,會優先於優先順序值較低的批次處理。允許使用負值。預設值為 0。
JSON 表示法 |
---|
{ "model": string, "name": string, "displayName": string, "inputConfig": { object ( |
InputEmbedContentConfig
設定批次要求的輸入內容。
source
Union type
source
只能是下列其中一項:fileName
string
包含輸入要求的 File
名稱。
requests
object (InlinedEmbedContentRequests
)
批次處理的要求。
JSON 表示法 |
---|
{
// source
"fileName": string,
"requests": {
object ( |
InlinedEmbedContentRequests
如果要求是批次建立要求的一部分,則為批次中要處理的要求。
requests[]
object (InlinedEmbedContentRequest
)
必要欄位。批次處理的要求。
JSON 表示法 |
---|
{
"requests": [
{
object ( |
InlinedEmbedContentRequest
要在批次中處理的要求。
request
object (EmbedContentRequest
)
必要欄位。要在批次中處理的要求。
metadata
object (Struct
format)
(選用步驟) 要與要求建立關聯的中繼資料。
JSON 表示法 |
---|
{
"request": {
object ( |
EmbedContentBatchOutput
批次要求的輸出內容。這會傳回 AsyncBatchEmbedContentResponse
或 EmbedContentBatch.output
欄位。
output
Union type
output
只能是下列其中一項:responsesFile
string
僅供輸出。包含回覆內容的檔案 ID。這個檔案會是 JSONL 檔案,每行一個回覆。回應會是格式化為 JSON 的 EmbedContentResponse
訊息。回覆的順序與輸入要求相同。
inlinedResponses
object (InlinedEmbedContentResponses
)
僅供輸出。批次要求的回覆。使用內嵌要求建構批次時,系統會傳回這個錯誤代碼。回應順序與輸入要求相同。
JSON 表示法 |
---|
{
// output
"responsesFile": string,
"inlinedResponses": {
object ( |
InlinedEmbedContentResponses
批次中的要求回覆。
inlinedResponses[]
object (InlinedEmbedContentResponse
)
僅供輸出。批次中的要求回覆。
JSON 表示法 |
---|
{
"inlinedResponses": [
{
object ( |
InlinedEmbedContentResponse
批次中單一要求的相關回應。
metadata
object (Struct
format)
僅供輸出。與要求相關聯的中繼資料。
output
Union type
output
只能是下列其中一項:error
object (Status
)
僅供輸出。處理要求時發生錯誤。
response
object (EmbedContentResponse
)
僅供輸出。要求的相關回覆。
JSON 表示法 |
---|
{ "metadata": { object }, // output "error": { object ( |
EmbedContentBatchStats
批次的統計資料。
requestCount
string (int64 format)
僅供輸出。批次中的要求數量。
successfulRequestCount
string (int64 format)
僅供輸出。成功處理的要求數量。
failedRequestCount
string (int64 format)
僅供輸出。無法處理的要求數。
pendingRequestCount
string (int64 format)
僅供輸出。仍待處理的要求數量。
JSON 表示法 |
---|
{ "requestCount": string, "successfulRequestCount": string, "failedRequestCount": string, "pendingRequestCount": string } |