Lưu ngữ cảnh vào bộ nhớ đệm

Trong quy trình làm việc thông thường của AI, bạn có thể truyền cùng một mã thông báo đầu vào lặp đi lặp lại vào mô hình. Gemini API cung cấp hai cơ chế lưu vào bộ nhớ đệm khác nhau:

  • Lưu vào bộ nhớ đệm ngầm ẩn (tự động, không đảm bảo tiết kiệm chi phí)
  • Lưu vào bộ nhớ đệm một cách rõ ràng (thủ công, đảm bảo tiết kiệm chi phí)

Theo mặc định, tính năng lưu vào bộ nhớ đệm ngầm ẩn được bật trên các mô hình Gemini 2.5. Nếu một yêu cầu chứa nội dung là một lượt truy cập vào bộ nhớ đệm, chúng tôi sẽ tự động chuyển lại cho bạn khoản tiết kiệm chi phí.

Việc lưu vào bộ nhớ đệm rõ ràng sẽ hữu ích trong trường hợp bạn muốn đảm bảo tiết kiệm chi phí, nhưng với một số công việc bổ sung cho nhà phát triển.

Lưu vào bộ nhớ đệm ngầm ẩn

Tính năng lưu vào bộ nhớ đệm ngầm ẩn được bật theo mặc định cho tất cả các mô hình Gemini 2.5. Chúng tôi sẽ tự động chuyển khoản tiết kiệm chi phí nếu yêu cầu của bạn truy cập vào bộ nhớ đệm. Bạn không cần làm gì để bật tính năng này. Chính sách này có hiệu lực từ ngày 8 tháng 5 năm 2025. Số lượng mã thông báo đầu vào tối thiểu để lưu ngữ cảnh vào bộ nhớ đệm là 1.024 đối với Flash 2.5 và 2.048 đối với Pro 2.5.

Để tăng cơ hội truy cập bộ nhớ đệm ngầm ẩn, hãy làm như sau:

  • Thử đặt nội dung lớn và phổ biến ở đầu câu lệnh
  • Cố gắng gửi các yêu cầu có tiền tố tương tự trong một khoảng thời gian ngắn

Bạn có thể thấy số lượng mã thông báo là lượt truy cập vào bộ nhớ đệm trong trường usage_metadata của đối tượng phản hồi.

Lưu vào bộ nhớ đệm một cách rõ ràng

Khi sử dụng tính năng lưu vào bộ nhớ đệm rõ ràng của API Gemini, bạn có thể truyền một số nội dung vào mô hình một lần, lưu mã thông báo đầu vào vào bộ nhớ đệm, sau đó tham chiếu đến các mã thông báo đã lưu vào bộ nhớ đệm cho các yêu cầu tiếp theo. Ở một số lượng nhất định, việc sử dụng mã thông báo được lưu vào bộ nhớ đệm sẽ có chi phí thấp hơn so với việc truyền cùng một tập hợp mã thông báo nhiều lần.

Khi lưu một tập hợp mã thông báo vào bộ nhớ đệm, bạn có thể chọn khoảng thời gian bạn muốn bộ nhớ đệm tồn tại trước khi các mã thông báo đó tự động bị xoá. Khoảng thời gian lưu vào bộ nhớ đệm này được gọi là thời gian tồn tại (TTL). Nếu bạn không đặt giá trị này, TTL sẽ mặc định là 1 giờ. Chi phí lưu vào bộ nhớ đệm phụ thuộc vào kích thước mã thông báo đầu vào và khoảng thời gian bạn muốn mã thông báo tồn tại.

Phần này giả định rằng bạn đã cài đặt SDK Gemini (hoặc đã cài đặt curl) và đã định cấu hình khoá API, như trong phần bắt đầu nhanh.

Trường hợp nên sử dụng tính năng lưu vào bộ nhớ đệm rõ ràng

Việc lưu ngữ cảnh vào bộ nhớ đệm đặc biệt phù hợp với các trường hợp mà một ngữ cảnh ban đầu đáng kể được tham chiếu nhiều lần bằng các yêu cầu ngắn hơn. Hãy cân nhắc việc sử dụng tính năng lưu vào bộ nhớ đệm ngữ cảnh cho các trường hợp sử dụng như:

  • Chatbot có hướng dẫn hệ thống chi tiết
  • Phân tích lặp lại các tệp video dài
  • Truy vấn định kỳ đối với các tập tài liệu lớn
  • Thường xuyên phân tích kho lưu trữ mã hoặc sửa lỗi

Cách lưu vào bộ nhớ đệm rõ ràng giúp giảm chi phí

Lưu vào bộ nhớ đệm theo bối cảnh là một tính năng có tính phí, được thiết kế để giảm tổng chi phí vận hành. Hệ thống tính phí dựa trên các yếu tố sau:

  1. Số lượng mã thông báo được lưu vào bộ nhớ đệm: Số lượng mã thông báo đầu vào được lưu vào bộ nhớ đệm, được tính phí theo mức giá giảm khi được đưa vào các lời nhắc tiếp theo.
  2. Thời lượng lưu trữ: Khoảng thời gian lưu trữ mã thông báo được lưu vào bộ nhớ đệm (TTL), được tính phí dựa trên thời lượng TTL của số lượng mã thông báo được lưu vào bộ nhớ đệm. Không có giới hạn tối thiểu hoặc tối đa đối với TTL.
  3. Các yếu tố khác: Các khoản phí khác sẽ áp dụng, chẳng hạn như đối với mã thông báo đầu vào và mã thông báo đầu ra không được lưu vào bộ nhớ đệm.

Để biết thông tin chi tiết mới nhất về giá, hãy tham khảo trang giá của Gemini API. Để tìm hiểu cách đếm mã thông báo, hãy xem Hướng dẫn về mã thông báo.

Các yếu tố cần cân nhắc khác

Hãy lưu ý những điều sau khi sử dụng tính năng lưu vào bộ nhớ đệm ngữ cảnh:

  • Số lượng mã thông báo đầu vào tối thiểu để lưu vào bộ nhớ đệm ngữ cảnh là 1.024 đối với Flash 2.5 và 2.048 đối với Flash 2.5 Pro. Tối đa giống với giá trị tối đa của mô hình đã cho. (Để biết thêm về cách đếm mã thông báo, hãy xem Hướng dẫn về mã thông báo).
  • Mô hình này không phân biệt giữa mã thông báo được lưu vào bộ nhớ đệm và mã thông báo đầu vào thông thường. Nội dung được lưu vào bộ nhớ đệm là tiền tố của lời nhắc.
  • Không có giới hạn về tốc độ hoặc giới hạn sử dụng đặc biệt đối với việc lưu ngữ cảnh vào bộ nhớ đệm; các giới hạn tốc độ tiêu chuẩn cho GenerateContent sẽ áp dụng và giới hạn mã thông báo bao gồm cả mã thông báo được lưu vào bộ nhớ đệm.
  • Số lượng mã thông báo được lưu vào bộ nhớ đệm được trả về trong usage_metadata từ các thao tác tạo, lấy và liệt kê của dịch vụ bộ nhớ đệm, cũng như trong GenerateContent khi sử dụng bộ nhớ đệm.