Embeddings

임베딩은 클러스터링, 유사성 측정, 정보 검색과 같은 고유한 사용 사례를 여는 텍스트 입력을 수치로 나타낸 것입니다. 소개는 임베딩 가이드를 참고하세요.

메서드: 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인 경우에만 적용됩니다.

참고: RETRIEVAL_DOCUMENTtitle를 지정하면 검색을 위한 더 나은 품질의 임베딩이 제공됩니다.

outputDimensionality integer

선택사항입니다. 출력 임베딩의 축소된 차원(선택사항). 설정하면 출력 임베딩에서 초과 값이 끝에서 잘립니다. 2024년 이후의 최신 모델에서만 지원됩니다. 이전 모델(models/embedding-001)을 사용하는 경우 이 값을 설정할 수 없습니다.

요청 예시

Python


text = "Hello World!"
result = genai.embed_content(
    model="models/text-embedding-004", content=text, output_dimensionality=10
)
print(result["embedding"])

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

const result = await model.embedContent("Hello world!");

console.log(result.embedding);

Shell

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

응답 본문

EmbedContentRequest에 대한 응답입니다.

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

필드
embedding object (ContentEmbedding)

출력 전용입니다. 입력 콘텐츠에서 생성된 임베딩입니다.

JSON 표현
{
  "embedding": {
    object (ContentEmbedding)
  }
}

메서드: models.batchEmbedContents

입력 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

texts = [
    "What is the meaning of life?",
    "How much wood would a woodchuck chuck?",
    "How does the brain work?",
]
result = genai.embed_content(
    model="models/text-embedding-004", content=texts, output_dimensionality=10
)
print(result)

Node.js

// Make sure to include these imports:
// import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
const model = genAI.getGenerativeModel({
  model: "text-embedding-004",
});

function textToRequest(text) {
  return { content: { role: "user", parts: [{ text }] } };
}

const result = await model.batchEmbedContents({
  requests: [
    textToRequest("What is the meaning of life?"),
    textToRequest("How much wood would a woodchuck chuck?"),
    textToRequest("How does the brain work?"),
  ],
});

console.log(result.embeddings);

Shell

curl "https://generativelanguage.googleapis.com/v1beta/models/text-embedding-004:batchEmbedContents?key=$GOOGLE_API_KEY" \
-H 'Content-Type: application/json' \
-d '{"requests": [{
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "What is the meaning of life?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How much wood would a woodchuck chuck?"}]}, },
      {
      "model": "models/text-embedding-004",
      "content": {
      "parts":[{
        "text": "How does the brain work?"}]}, }, ]}' 2> /dev/null | grep -C 5 values

응답 본문

BatchEmbedContentsRequest에 대한 응답입니다.

성공할 경우 응답 본문에 다음 구조의 데이터가 포함됩니다.

필드
embeddings[] object (ContentEmbedding)

출력 전용입니다. 각 요청의 임베딩으로, 배치 요청에 제공된 순서와 동일합니다.

JSON 표현
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

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인 경우에만 적용됩니다.

참고: RETRIEVAL_DOCUMENTtitle를 지정하면 검색을 위한 더 나은 품질의 임베딩이 제공됩니다.

outputDimensionality integer

선택사항입니다. 출력 임베딩의 축소된 차원(선택사항). 이 매개변수를 설정하면 출력 임베딩에서 초과된 값이 끝에서 잘립니다. 2024년 이후 최신 모델에서만 지원됩니다. 이전 모델(models/embedding-001)을 사용하는 경우 이 값을 설정할 수 없습니다.

JSON 표현
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

임베딩을 나타내는 부동 소수점 수 목록입니다.

를 통해 개인정보처리방침을 정의할 수 있습니다. <ph type="x-smartling-placeholder">
</ph> 입력란 <ph type="x-smartling-placeholder">
</ph>
values[] number

임베딩 값입니다.

JSON 표현
{
  "values": [
    number
  ]
}

TaskType

임베딩이 사용될 작업 유형입니다.

열거형
TASK_TYPE_UNSPECIFIED 설정되지 않은 값으로, 기본값은 다른 enum 값 중 하나입니다.
RETRIEVAL_QUERY 지정된 텍스트가 검색/가져오기 설정의 쿼리임을 지정합니다.
RETRIEVAL_DOCUMENT 지정된 텍스트가 검색 중인 코퍼스의 문서임을 지정합니다.
SEMANTIC_SIMILARITY 지정된 텍스트를 STS에 사용하도록 지정합니다.
CLASSIFICATION 지정된 텍스트가 분류되도록 지정합니다.
CLUSTERING 클러스터링에 임베딩을 사용하도록 지정합니다.
QUESTION_ANSWERING 지정된 텍스트를 질문에 답변하는 데 사용하도록 지정합니다.
FACT_VERIFICATION 지정된 텍스트를 사실 확인에 사용하도록 지정합니다.