text-embedding-004
模型可為字詞、詞組和句子產生最先進的嵌入。產生的嵌入資料可用於語意搜尋、文字分類、分群等多項工作。如要進一步瞭解嵌入資料,請參閱我們的研究報告。
什麼是嵌入?
嵌入會擷取語意和背景資訊,因此具有相似意義的文字會產生「較接近」的嵌入。舉例來說,「我帶狗去看獸醫」和「我帶貓去看獸醫」這兩句話的嵌入值在向量空間中會彼此靠近,因為兩者描述的都是類似的情況。
您可以使用嵌入值比較不同文字,並瞭解它們之間的關聯。舉例來說,如果「cat」和「dog」這兩個字詞的嵌入值相近,您就可以推斷這兩個字詞的意思或上下文相似,甚至兩者皆是如此。這可支援各種常見的 AI 用途。
生成嵌入
使用 embedContent
方法產生文字嵌入:
Python
import google.generativeai as genai
import os
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
result = genai.embed_content(
model="models/text-embedding-004",
content="What is the meaning of life?")
print(str(result['embedding']))
Node.js
const { GoogleGenerativeAI } = require("@google/generative-ai");
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
const model = genAI.getGenerativeModel({ model: "text-embedding-004"});
async function run() {
const result = await model.embedContent("What is the meaning of life?");
console.log(result.embedding.values);
}
run();
curl
curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:embedContent?key=$GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"model": "models/text-embedding-004",
"content": {
"parts":[{
"text": "What is the meaning of life?"}]}
}'
Go
ctx := context.Background()
client, err := genai.NewClient(ctx, option.WithAPIKey(os.Getenv("GEMINI_API_KEY")))
if err != nil {
log.Fatal(err)
}
defer client.Close()
em := client.EmbeddingModel("text-embedding-004")
res, err := em.EmbedContent(ctx, genai.Text("What is the meaning of life?"))
if err != nil {
panic(err)
}
fmt.Println(res.Embedding.Values)
用途
文字嵌入可用於各種常見的 AI 用途,例如:
資訊擷取:您可以使用嵌入,在給定一段輸入文字時,擷取語義相似的文字。
叢集:比較不同組的嵌入資料,有助於找出隱藏的趨勢。
向量資料庫:當您將不同的嵌入用途導入實際作業環境時,通常會將嵌入項目儲存在向量資料庫中。
分類:您可以使用嵌入值訓練模型,將文件分類。
Gemini 嵌入模型
Gemini API 提供兩種產生文字嵌入值的模型:
文字嵌入是嵌入模型的更新版本,可提供 768 個維度以下的彈性嵌入大小。彈性嵌入會產生較小的輸出維度,並可能在效能略微下降的情況下節省運算和儲存空間成本。
將文字嵌入用於新專案或應用程式。