Tìm hiểu thông tin cơ bản trên Google Tìm kiếm

Tính năng Kết nối với Google Tìm kiếm kết nối mô hình Gemini với nội dung web theo thời gian thực và hoạt động với tất cả các ngôn ngữ hiện có. Điều này cho phép Gemini đưa ra câu trả lời chính xác hơn và trích dẫn các nguồn có thể xác minh ngoài phạm vi kiến thức của mô hình.

Tính năng Kết nối giúp bạn xây dựng các ứng dụng có thể:

  • Tăng độ chính xác về mặt thực tế: Giảm hiện tượng ảo giác của mô hình bằng cách dựa trên thông tin thực tế.
  • Truy cập vào thông tin theo thời gian thực: Trả lời các câu hỏi về các sự kiện và chủ đề gần đây.
  • Cung cấp thông tin trích dẫn: Xây dựng niềm tin của người dùng bằng cách cho biết nguồn của các tuyên bố của mô hình.

Python

from google import genai
from google.genai import types

client = genai.Client()

grounding_tool = types.Tool(
    google_search=types.GoogleSearch()
)

config = types.GenerateContentConfig(
    tools=[grounding_tool]
)

response = client.models.generate_content(
    model="gemini-3-flash-preview",
    contents="Who won the euro 2024?",
    config=config,
)

print(response.text)

JavaScript

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({});

const groundingTool = {
  googleSearch: {},
};

const config = {
  tools: [groundingTool],
};

const response = await ai.models.generateContent({
  model: "gemini-3-flash-preview",
  contents: "Who won the euro 2024?",
  config,
});

console.log(response.text);

REST

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3-flash-preview:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -X POST \
  -d '{
    "contents": [
      {
        "parts": [
          {"text": "Who won the euro 2024?"}
        ]
      }
    ],
    "tools": [
      {
        "google_search": {}
      }
    ]
  }'

Bạn có thể tìm hiểu thêm bằng cách dùng thử sổ tay về công cụ Tìm kiếm.

Cách hoạt động của tính năng Kết nối với Google Tìm kiếm

Khi bạn bật công cụ google_search, mô hình sẽ tự động xử lý toàn bộ quy trình tìm kiếm, xử lý và trích dẫn thông tin.

grounding-overview

  1. Câu lệnh của người dùng: Ứng dụng của bạn gửi câu lệnh của người dùng đến Gemini API khi công cụ google_search được bật.
  2. Phân tích câu lệnh: Mô hình phân tích câu lệnh và xác định xem Google Tìm kiếm có thể cải thiện câu trả lời hay không.
  3. Google Tìm kiếm: Nếu cần, mô hình sẽ tự động tạo một hoặc nhiều cụm từ tìm kiếm và thực thi các cụm từ đó.
  4. Xử lý kết quả tìm kiếm: Mô hình xử lý kết quả tìm kiếm, tổng hợp thông tin và đưa ra câu trả lời.
  5. Câu trả lời dựa trên thông tin thực tế: API trả về một câu trả lời cuối cùng, thân thiện với người dùng và dựa trên kết quả tìm kiếm. Câu trả lời này bao gồm câu trả lời bằng văn bản của mô hình và groundingMetadata có các cụm từ tìm kiếm, kết quả trên web và thông tin trích dẫn.

Tìm hiểu về câu trả lời dựa trên thông tin thực tế

Khi một câu trả lời được kết nối thành công với thông tin thực tế, câu trả lời đó sẽ bao gồm trường groundingMetadata. Dữ liệu có cấu trúc này là yếu tố cần thiết để xác minh các tuyên bố và xây dựng trải nghiệm trích dẫn phong phú trong ứng dụng của bạn.

{
  "candidates": [
    {
      "content": {
        "parts": [
          {
            "text": "Spain won Euro 2024, defeating England 2-1 in the final. This victory marks Spain's record fourth European Championship title."
          }
        ],
        "role": "model"
      },
      "groundingMetadata": {
        "webSearchQueries": [
          "UEFA Euro 2024 winner",
          "who won euro 2024"
        ],
        "searchEntryPoint": {
          "renderedContent": "<!-- HTML and CSS for the search widget -->"
        },
        "groundingChunks": [
          {"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "aljazeera.com"}},
          {"web": {"uri": "https://vertexaisearch.cloud.google.com.....", "title": "uefa.com"}}
        ],
        "groundingSupports": [
          {
            "segment": {"startIndex": 0, "endIndex": 85, "text": "Spain won Euro 2024, defeatin..."},
            "groundingChunkIndices": [0]
          },
          {
            "segment": {"startIndex": 86, "endIndex": 210, "text": "This victory marks Spain's..."},
            "groundingChunkIndices": [0, 1]
          }
        ]
      }
    }
  ]
}

Gemini API trả về thông tin sau đây với groundingMetadata:

  • webSearchQueries : Mảng các cụm từ tìm kiếm được sử dụng. Điều này hữu ích cho việc gỡ lỗi và tìm hiểu quy trình suy luận của mô hình.
  • searchEntryPoint : Chứa HTML và CSS để kết xuất các Đề xuất tìm kiếm bắt buộc. Các yêu cầu sử dụng đầy đủ được nêu chi tiết trong Điều khoản dịch vụ.
  • groundingChunks : Mảng các đối tượng chứa nguồn trên web (urititle).
  • groundingSupports : Mảng các đoạn để kết nối phản hồi của mô hình text với các nguồn trong groundingChunks. Mỗi đoạn liên kết một văn bản segment (được xác định bởi startIndexendIndex) với một hoặc nhiều groundingChunkIndices. Đây là chìa khoá để xây dựng thông tin trích dẫn nội tuyến.

Bạn cũng có thể sử dụng tính năng Kết nối với Google Tìm kiếm kết hợp với công cụ ngữ cảnh URL để kết nối câu trả lời với cả dữ liệu web công khai và các URL cụ thể mà bạn cung cấp.

Phân bổ nguồn bằng thông tin trích dẫn nội tuyến

API trả về dữ liệu trích dẫn có cấu trúc, giúp bạn kiểm soát hoàn toàn cách bạn hiển thị nguồn trong giao diện người dùng. Bạn có thể sử dụng các trường groundingSupportsgroundingChunks để liên kết trực tiếp các câu lệnh của mô hình với nguồn của chúng. Dưới đây là một mẫu phổ biến để xử lý siêu dữ liệu nhằm tạo câu trả lời có thông tin trích dẫn nội tuyến có thể nhấp.

Python

def add_citations(response):
    text = response.text
    supports = response.candidates[0].grounding_metadata.grounding_supports
    chunks = response.candidates[0].grounding_metadata.grounding_chunks

    # Sort supports by end_index in descending order to avoid shifting issues when inserting.
    sorted_supports = sorted(supports, key=lambda s: s.segment.end_index, reverse=True)

    for support in sorted_supports:
        end_index = support.segment.end_index
        if support.grounding_chunk_indices:
            # Create citation string like [1](link1)[2](link2)
            citation_links = []
            for i in support.grounding_chunk_indices:
                if i < len(chunks):
                    uri = chunks[i].web.uri
                    citation_links.append(f"[{i + 1}]({uri})")

            citation_string = ", ".join(citation_links)
            text = text[:end_index] + citation_string + text[end_index:]

    return text

# Assuming response with grounding metadata
text_with_citations = add_citations(response)
print(text_with_citations)

JavaScript

function addCitations(response) {
    let text = response.text;
    const supports = response.candidates[0]?.groundingMetadata?.groundingSupports;
    const chunks = response.candidates[0]?.groundingMetadata?.groundingChunks;

    // Sort supports by end_index in descending order to avoid shifting issues when inserting.
    const sortedSupports = [...supports].sort(
        (a, b) => (b.segment?.endIndex ?? 0) - (a.segment?.endIndex ?? 0),
    );

    for (const support of sortedSupports) {
        const endIndex = support.segment?.endIndex;
        if (endIndex === undefined || !support.groundingChunkIndices?.length) {
        continue;
        }

        const citationLinks = support.groundingChunkIndices
        .map(i => {
            const uri = chunks[i]?.web?.uri;
            if (uri) {
            return `[${i + 1}](${uri})`;
            }
            return null;
        })
        .filter(Boolean);

        if (citationLinks.length > 0) {
        const citationString = citationLinks.join(", ");
        text = text.slice(0, endIndex) + citationString + text.slice(endIndex);
        }
    }

    return text;
}

const textWithCitations = addCitations(response);
console.log(textWithCitations);

Câu trả lời mới có thông tin trích dẫn nội tuyến sẽ có dạng như sau:

Spain won Euro 2024, defeating England 2-1 in the final.[1](https:/...), [2](https:/...), [4](https:/...), [5](https:/...) This victory marks Spain's record-breaking fourth European Championship title.[5]((https:/...), [2](https:/...), [3](https:/...), [4](https:/...)

Giá

Khi bạn sử dụng tính năng Kết nối với Google Tìm kiếm bằng Gemini 3, dự án của bạn sẽ bị tính phí cho mỗi cụm từ tìm kiếm mà mô hình quyết định thực thi. Nếu mô hình quyết định thực thi nhiều cụm từ tìm kiếm để trả lời một câu lệnh (ví dụ: tìm kiếm "UEFA Euro 2024 winner""Spain vs England Euro 2024 final score" trong cùng một lệnh gọi API), thì đây được tính là 2 lần sử dụng công cụ có tính phí cho yêu cầu đó. Đối với mục đích tính phí, chúng tôi bỏ qua các cụm từ tìm kiếm trên web trống khi tính số lượng cụm từ tìm kiếm duy nhất. Mô hình tính phí này chỉ áp dụng cho các mô hình Gemini 3 ; khi bạn sử dụng tính năng kết nối tìm kiếm với Gemini 2.5 hoặc các mô hình cũ hơn, dự án của bạn sẽ bị tính phí cho mỗi câu lệnh.

Để biết thông tin chi tiết về giá, hãy xem trang giá của Gemini API.

Mô hình được hỗ trợ

Bạn có thể xem đầy đủ các tính năng trên trang tổng quan về mô hình.

Mô hình Kết nối với Google Tìm kiếm
Bản xem trước hình ảnh Gemini 3.1 Flash ✔️
Bản xem trước Gemini 3.1 Pro ✔️
Bản xem trước hình ảnh Gemini 3 Pro ✔️
Bản xem trước Gemini 3 Flash ✔️
Gemini 2.5 Pro ✔️
Gemini 2.5 Flash ✔️
Gemini 2.5 Flash-Lite ✔️
Gemini 2.0 Flash ✔️

Các cách kết hợp công cụ được hỗ trợ

Bạn có thể sử dụng tính năng Kết nối với Google Tìm kiếm cùng với các công cụ khác như thực thi mãngữ cảnh URL để hỗ trợ các trường hợp sử dụng phức tạp hơn.

Bước tiếp theo