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

Trong quy trình làm việc AI thông thường, bạn có thể truyền đi truyền lại các mã thông báo đầu vào giống nhau cho một mô hình. Khi sử dụng tính năng lưu vào bộ nhớ đệm theo bối cảnh của Gemini API, bạn có thể chuyể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ố 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 (và có thể có độ trễ thấp hơn) so với việc truyền nhiều lần trong cùng một tập hợp mã thông báo.

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). 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 duy trì mã thông báo này.

Tính năng lưu vào bộ nhớ đệm theo ngữ cảnh hỗ trợ cả Gemini 1.5 Pro và Gemini 1.5 Flash.

Trường hợp sử dụng tính năng lưu vào bộ nhớ đệm theo bối cảnh

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

  • Bot trò chuyện với hướng dẫn chuyên sâu về hệ thống
  • 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 hợ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

Việc lưu vào bộ nhớ đệm giúp giảm chi phí như thế nào

Lưu vào bộ nhớ đệm ngữ 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. Việc thanh toán dựa trên các yếu tố sau:

  1. Cache token count: Số lượng mã thông báo đầu vào được lưu vào bộ nhớ đệm, được tính phí theo tỷ lệ giảm khi được đưa vào các câu lệnh tiếp theo.
  2. Thời lượng lưu trữ: Thời gian mã thông báo đã lưu vào bộ nhớ đệm được lưu trữ (TTL), được lập hoá đơn hằng giờ. Không có giới hạn tối thiểu hoặc tối đa nào trên TTL.
  3. Các yếu tố khác: Có áp dụng các khoản phí khác, chẳng hạn như mã thông báo dữ liệu đầ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 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ách sử dụng tính năng lưu vào bộ nhớ đệm theo bối cảnh

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

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

Khi sử dụng tính năng lưu vào bộ nhớ đệm theo bối cảnh, hãy ghi nhớ những điều sau:

  • Số lượng mã thông báo đầu vào tối thiểu để lưu vào bộ nhớ đệm theo ngữ cảnh là 32.768 và tối đa bằng với số lượng tối đa cho mô hình đã cho. (Để biết thêm thông tin về cách đếm mã thông báo, hãy xem phần Hướng dẫn về mã thông báo).
  • Bạn có thể đặt thời gian tồn tại (TTL) cho bộ nhớ đệm, như trong mã ví dụ. Nếu bạn không đặt chính sách này, thì TTL được đặt mặc định là 1 giờ.
  • Mô hình này không tạo ra sự khác biệt nào 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 chỉ là tiền tố cho lời nhắc.
  • Dịch vụ lưu vào bộ nhớ đệm cung cấp thao tác xoá để xoá nội dung khỏi bộ nhớ đệm theo cách thủ công. Để biết thông tin chi tiết, vui lòng xem tài liệu về SDK mà bạn chọn.
  • Đối với cấp có tính phí, không có giới hạn mức sử dụng hoặc tỷ lệ đặc biệt đối với việc lưu vào bộ nhớ đệm theo bối cảnh; giới hạn số lượng yêu cầu chuẩn cho GenerateContent được áp dụng, còn giới hạn về mã thông báo sẽ bao gồm cả mã thông báo đã lưu vào bộ nhớ đệm. Đối với bậc miễn phí, giới hạn lưu trữ là 1 triệu mã thông báo cho Gemini 1.5 Flash và tính năng lưu vào bộ nhớ đệm không hoạt động trên Gemini 1.5 Pro.
  • Không thể truy xuất hoặc xem nội dung đã lưu vào bộ nhớ đệm, nhưng bạn có thể truy xuất siêu dữ liệu (name, display_name, model cũng như thời gian tạo, cập nhật và hết hạn).
  • Bạn có thể đặt một ttl hoặc expire_time mới. Không hỗ trợ thay đổi bất kỳ thông tin nào khác về nội dung đã lưu vào bộ nhớ đệm.
  • Số lượng mã thông báo đã 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 dùng bộ nhớ đệm.