Embeddings

Nhúng là cách biểu diễn bằng số của văn bản đầu vào, mở ra một số trường hợp sử dụng duy nhất, chẳng hạn như phân cụm, đo lường sự tương đồng và truy xuất thông tin. Hãy xem hướng dẫn Nhúng để biết thông tin giới thiệu.

Phương thức: model.embedContent

Tạo vectơ nhúng văn bản từ dữ liệu đầu vào Content bằng cách sử dụng mô hình Nhúng Gemini được 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. Giá trị này đóng vai trò là mã nhận dạng cho Mô hình sử dụng.

Tên này phải khớp với tên mô hình được 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:

Số trường
content object (Content)

Bắt buộc. Nội dung muố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 mục 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 đề tuỳ ý 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. Kích thước rút gọn (không bắt buộc) đối với tính năng nhúng đầu ra. Nếu được đặt, các giá trị vượt quá trong mục nhúng đầu ra sẽ bị cắt bớ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. Mục 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: Model.batchNhúngContents

Tạo nhiều vectơ nhúng từ đầu vào Content. Dữ liệu đầu vào này bao gồm một loạt các 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. Giá trị này đóng vai trò là mã nhận dạng cho Mô hình sử dụng.

Tên này phải khớp với tên mô hình được 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:

Số 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 mục nhúng cho từng yêu cầu, theo cùng thứ tự như được cung cấp trong yêu cầu hàng loạt.

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

EmbedContentRequest

Yêu cầu chứa Content dành cho mô hình sẽ nhúng.

Số trường
model string

Bắt buộc. Tên tài nguyên của mô hình. Giá trị này đóng vai trò là mã nhận dạng cho Mô hình sử dụng.

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

Định dạng models/{model}

content object (Content)

Bắt buộc. Nội dung muố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 mục 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 đề tuỳ ý 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. Kích thước rút gọn (không bắt buộc) đối với tính năng nhúng đầu ra. Nếu được đặt, các giá trị vượt quá trong mục nhúng đầu ra sẽ bị cắt bớ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).

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.

Số 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. Giá trị này sẽ được đặt mặc định thành 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 Cho biết văn bản đã cho là một tài liệu trong tập sao lục đ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.