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 以取得完整的可執行範例
後續步驟
- 如要進一步瞭解嵌入功能,請造訪 Dale Markowitz 在以下頻道上發布的文章: Google Cloud 網誌 瞭解詳情
- 如果您已準備好著手開發程式,可以前往以下網頁找到完整的可執行程式碼: Python 的快速入門導覽課程 Go、 Node.js 和 Dart (Flutter)。