Gemini API의 임베딩

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차원 미만의 탄력적 임베딩 크기를 제공하는 업데이트된 버전의 임베딩 모델입니다. 탄성 임베딩은 더 작은 출력 크기를 생성하고 약간의 성능 저하로 컴퓨팅 및 스토리지 비용을 절약할 수 있습니다.

새 프로젝트 또는 애플리케이션에 텍스트 임베딩을 사용합니다.