嵌入 Gemini API

Gemini API 中的嵌入服務會產生最先進的嵌入 字詞、片語和語句產生的嵌入就能用於 自然語言處理 (NLP) 工作,例如語意搜尋、文字 評估和分群法等問題

本頁面會簡要說明嵌入功能,並特別說明 來協助您快速上手

什麼是嵌入?

文字嵌入是一種自然語言處理 (NLP) 技術 將文字轉換成數值座標 (稱為「向量」),您可以 ND 空間。這個方法可以將文字片段視為 可用來訓練模型的關聯資料

嵌入功能可擷取語意含義和背景資訊,藉此產生文字 類似含量的嵌入例如:「我拿走 「dog to the vet」以及「我將貓帶到獸醫」會含有 在向量空間中彼此相近,因為兩者都形塑了 相關資訊

您可以使用嵌入功能比較不同文字,並瞭解這些文字會如何 關係舉例來說,如果嵌入的是「cat」文字和「dog」差一點。 就能推斷出這些字詞的意思或情境相似 兩者。此功能允許各式各樣的用途,下一節會說明。

用途

文字嵌入可用於多種自然語言處理用途,例如:

  • 資訊擷取:您可以使用嵌入功能,在語意上擷取內容 所提供的類似文字各種應用程式 「語意搜尋」等 回答問題或總結
  • 分類:您可以使用嵌入項目訓練模型,以便進行分類 並將這些文件分門別類例如,如想將使用者分類 您可以使用嵌入服務來取得 以訓練分類器來訓練分類器。
  • 分群:比較文字向量可顯示相似或相異之處 其次是可行的這項功能可用來訓練分群模型 偵測資料中的異常狀況
  • 向量資料庫:您可以將產生的嵌入儲存在向量中 資料庫,提升自然語言處理應用程式的準確度和效率。 請參閱下列教學課程,瞭解如何使用向量資料庫 將文字提示轉換成數值向量

Gemini 嵌入模型

Gemini API 提供兩種產生文字嵌入的模型:文字 嵌入項目 嵌入。「文字嵌入」是一種 新版嵌入模型提供彈性的嵌入大小, 768 個維度Elastic 嵌入會產生較小的輸出尺寸 可節省運算和儲存空間費用,但也幾乎不會影響效能。

為新專案或應用程式使用文字嵌入功能。您的應用程式 請只在無法遷移嵌入模型來使用文字嵌入時,再使用嵌入模型。

使用 Gemini API 產生嵌入項目

使用 embedContent 方法產生文字嵌入:

Python

result = genai.embed_content(
    model="models/text-embedding-004",
    content="What is the meaning of life?",
    task_type="retrieval_document",
    title="Embedding of single string")

# 1 input > 1 vector output
print(str(result['embedding'])[:50], '... TRIMMED]')

造訪入門指南 教學課程 以取得完整的可執行範例

Go

ctx := context.Background()
// Access your API key as an environment variable (see our Getting Started tutorial)
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("API_KEY")))
if err != nil {
    log.Fatal(err)
}
defer client.Close()
// For embeddings, use the Text Embeddings model
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("The quick brown fox jumps over the lazy dog."))

if err != nil {
    panic(err)
}
fmt.Println(res.Embedding.Values)

造訪入門指南 教學課程 完整的可執行範例

Node.js

const { GoogleGenerativeAI } = require("@google/generative-ai");

// Access your API key as an environment variable (see our Getting Started tutorial)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);

async function run() {
// For embeddings, use the Text Embeddings model
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});

const text = "The quick brown fox jumps over the lazy dog."

const result = await model.embedContent(text);
const embedding = result.embedding;
console.log(embedding.values);
}

run();

造訪入門指南 教學課程 以取得完整的可執行範例

飛鏢 (Flutter)

final model = GenerativeModel(model: 'text-embedding-004', apiKey: apiKey);
final content = Content.text('The quick brown fox jumps over the lazy dog.');
final result = await model.embedContent(content);
print(result.embedding.values);

造訪入門指南 教學課程 以取得完整的可執行範例

curl

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
     "content": {
     "parts":[{
     "text": "Hello world"}]}, }' 2> /dev/null | head

請造訪我們的嵌入快速入門導覽課程,使用 REST 教戰手冊: GitHub 以取得完整的可執行範例

後續步驟