Embeddings

Nội dung nhúng là một bản trình bày dạng số của dữ liệu đầu vào văn bản, mở ra một số trường hợp sử dụng riêng biệt, chẳng hạn như cụm, đo lường mức độ tương đồng và truy xuất thông tin. Để biết thông tin giới thiệu, hãy xem Hướng dẫn về tính năng nhúng.

Phương thức: model.embedContent

Tạo một vectơ nhúng văn bản từ Content đầu vào bằng cách sử dụng mô hình Nhúng Gemini đã chỉ định.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/{model=models/*}:embedContent

Tham số đường dẫn

model string

Bắt buộc. Tên tài nguyên của mô hình. Đây là mã nhận dạng để Mô hình sử dụng.

Tên này phải khớp với tên mô hình do phương thức models.list trả về.

Định dạng: models/{model}. Định dạng này có dạng models/{model}.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
content object (Content)

Bắt buộc. Nội dung cần nhúng. Sẽ chỉ có các trường parts.text được tính.

taskType enum (TaskType)

Không bắt buộc. Loại tác vụ không bắt buộc mà các phần nhúng sẽ được sử dụng. Chỉ có thể đặt cho models/embedding-001.

title string

Không bắt buộc. Tiêu đề không bắt buộc cho văn bản. Chỉ áp dụng khi TaskType là RETRIEVAL_DOCUMENT.

Lưu ý: Việc chỉ định title cho RETRIEVAL_DOCUMENT sẽ cung cấp các mục nhúng có chất lượng tốt hơn để truy xuất.

outputDimensionality integer

Không bắt buộc. Không bắt buộc giảm kích thước cho phần nhúng đầu ra. Nếu được đặt, các giá trị thừa trong phần nhúng đầu ra sẽ bị cắt bớt từ cuối. Chỉ được hỗ trợ trong các mô hình mới kể từ năm 2024. Bạn không thể đặt giá trị này nếu sử dụng mô hình cũ hơn (models/embedding-001).

Yêu cầu mẫu

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);

Vỏ

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

Nội dung phản hồi

Phản hồi cho EmbedContentRequest.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Số trường
embedding object (ContentEmbedding)

Chỉ có đầu ra. Nội dung nhúng được tạo từ nội dung đầu vào.

Biểu diễn dưới dạng JSON
{
  "embedding": {
    object (ContentEmbedding)
  }
}

Phương thức: models.batchEmbedContents

Tạo nhiều vectơ nhúng từ Content đầu vào, bao gồm một loạt chuỗi được biểu thị dưới dạng đối tượng EmbedContentRequest.

Điểm cuối

bài đăng https://generativelanguage.googleapis.com/v1beta/{model=models/*}:batchEmbedContents

Tham số đường dẫn

model string

Bắt buộc. Tên tài nguyên của mô hình. Đây là mã nhận dạng để Mô hình sử dụng.

Tên này phải khớp với tên mô hình do phương thức models.list trả về.

Định dạng: models/{model}. Định dạng này có dạng models/{model}.

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Trường
requests[] object (EmbedContentRequest)

Bắt buộc. Nhúng các yêu cầu cho lô. Mô hình trong mỗi yêu cầu này phải khớp với mô hình được chỉ định BatchEmbedContentsRequest.model.

Yêu cầu mẫu

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);

Vỏ

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

Nội dung phản hồi

Phản hồi cho BatchEmbedContentsRequest.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Số trường
embeddings[] object (ContentEmbedding)

Chỉ có đầu ra. Các phần nhúng cho mỗi yêu cầu, theo thứ tự giống như được cung cấp trong yêu cầu theo lô.

Biểu diễn dưới dạng JSON
{
  "embeddings": [
    {
      object (ContentEmbedding)
    }
  ]
}

EmbedContentRequest

Yêu cầu chứa Content để mô hình nhúng.

Trường
model string

Bắt buộc. Tên tài nguyên của mô hình. Đây là mã nhận dạng để Mô hình sử dụng.

Tên này phải khớp với tên mô hình do phương thức models.list trả về.

Định dạng models/{model}

content object (Content)

Bắt buộc. Nội dung cần nhúng. Sẽ chỉ có các trường parts.text được tính.

taskType enum (TaskType)

Không bắt buộc. Loại tác vụ không bắt buộc mà các phần nhúng sẽ được sử dụng. Chỉ có thể đặt cho models/embedding-001.

title string

Không bắt buộc. Tiêu đề không bắt buộc cho văn bản. Chỉ áp dụng khi TaskType là RETRIEVAL_DOCUMENT.

Lưu ý: Việc chỉ định title cho RETRIEVAL_DOCUMENT sẽ cung cấp các mục nhúng có chất lượng tốt hơn để truy xuất.

outputDimensionality integer

Không bắt buộc. Không bắt buộc giảm kích thước cho phần nhúng đầu ra. Nếu được đặt, các giá trị thừa trong phần nhúng đầu ra sẽ bị cắt bớt từ cuối. Chỉ được hỗ trợ trên các mẫu mới hơn kể từ năm 2024. Bạn không thể đặt giá trị này nếu sử dụng mô hình cũ (models/embedding-001).

Biểu diễn dưới dạng JSON
{
  "model": string,
  "content": {
    object (Content)
  },
  "taskType": enum (TaskType),
  "title": string,
  "outputDimensionality": integer
}

ContentEmbedding

Danh sách số thực có độ chính xác đơn đại diện cho một mục nhúng.

Trường
values[] number

Các giá trị nhúng.

Biểu diễn dưới dạng JSON
{
  "values": [
    number
  ]
}

TaskType

Loại tác vụ mà chức năng nhúng sẽ được sử dụng.

Enum
TASK_TYPE_UNSPECIFIED Giá trị chưa đặt, sẽ mặc định là một trong các giá trị enum khác.
RETRIEVAL_QUERY Chỉ định văn bản đã cho là một truy vấn trong chế độ cài đặt tìm kiếm/truy xuất.
RETRIEVAL_DOCUMENT Chỉ định văn bản đã cho là một tài liệu trong tập hợp văn bản đang được tìm kiếm.
SEMANTIC_SIMILARITY Chỉ định văn bản đã cho sẽ được dùng cho STS.
CLASSIFICATION Chỉ định rằng văn bản đã cho sẽ được phân loại.
CLUSTERING Chỉ định xem các mục nhúng có được dùng để phân cụm hay không.
QUESTION_ANSWERING Chỉ định rằng văn bản đã cho sẽ được dùng để trả lời câu hỏi.
FACT_VERIFICATION Chỉ định rằng văn bản đã cho sẽ được dùng để xác minh tính xác thực.