Thực Tiễn Tốt Nhất
Prompt Caching
Prompt Caching là một kỹ thuật mạnh mẽ tái sử dụng tiền tố prompt đã lưu trong bộ nhớ đệm giữa các cuộc gọi API, giảm cả độ trễ và chi phí. Được hỗ trợ bởi Claude, GPT-4o và Gemini.
Cách Thức Hoạt Động
Khi bạn gửi cùng một tiền tố prompt qua nhiều lệnh gọi API, nhà cung cấp ngược dòng nhận ra sự trùng lặp, bỏ qua việc xử lý lại và tính phí cho bạn ở mức chiết khấu cho phần đã cache. Mức tiết kiệm điển hình:
| Chỉ Số | Không Cache | Cache Hit |
|---|---|---|
| Thời gian đến token đầu tiên | Cơ sở | Nhanh hơn đến 80% |
| Chi phí prompt token | Giá đầy đủ | Rẻ hơn 50–90% |
Caching được bật theo mặc định trên tất cả mô hình được hỗ trợ — không cần cấu hình. Nhà cung cấp tự động quản lý vòng đời cache (cache thường tồn tại 5–30 phút, tùy nhà cung cấp và tải).
Thiết Kế Prompt Thân Thiện với Cache
Cache khớp theo tiền tố — các token từ đầu mảng messages của bạn. Thiết kế prompt sao cho mọi thứ tĩnh được đặt ở đầu:
# ✅ GOOD: Static content first = high cache hit rate
messages = [
{"role": "system", "content": "You are a legal assistant. Reference case law when answering..."},
{"role": "user", "content": "What are the elements of negligence?"},
]
# ❌ BAD: Dynamic prefix kills cache
messages = [
{"role": "user", "content": "What are the elements of negligence?"}, # Cache miss
{"role": "system", "content": "You are a legal assistant..."}, # Too late
]Danh Sách Kiểm Tra Thiết Kế
- System message đầu tiên — Luôn đặt nó làm phần tử đầu tiên trong
messages - Ngữ cảnh tĩnh trước truy vấn động — Ví dụ few-shot, ngữ cảnh RAG đã truy xuất, định nghĩa công cụ đặt trước câu hỏi hiện tại của người dùng
- Không có timestamp / ID trong tiền tố — Đừng đặt dữ liệu duy nhất theo từng request trước nội dung có thể cache
- Giữ system prompt giống hệt — Toàn bộ tiền tố phải khớp từng byte để cache hit
- Tiền tố dài hơn = tiết kiệm nhiều hơn — Cache một system prompt 10K token tiết kiệm nhiều hơn hẳn so với prompt 200 token
Giám Sát Cache Hit
Đối tượng usage trong response cho biết prompt của bạn có cache hit hay không:
- Claude (Anthropic): Tìm
cache_read_input_tokensvàcache_creation_input_tokens - GPT-4o (OpenAI): Token đã cache được phản ánh qua hóa đơn
prompt_tokensthấp hơn - Gemini (Google): Context caching hiển thị trong usage metadata
import requests
response = requests.post(
"https://api.tokspan.com/v1/chat/completions",
headers={"Authorization": "Bearer sk-your-key"},
json={"model": "claude-opus-4-8", "messages": [...]},
)
# Check for cache hits in the usage object
usage = response.json()["usage"]
if "cache_read_input_tokens" in usage:
print(f"Cache hit! {usage['cache_read_input_tokens']} tokens served from cache")
print(f"Cache creation: {usage.get('cache_creation_input_tokens', 0)} tokens written")
else:
print("Cache miss — all prompt tokens billed at full price")Mô Hình Được Hỗ Trợ
| Mô Hình | Nhà Cung Cấp | Token Có Thể Cache Tối Thiểu | Cache TTL (điển hình) |
|---|---|---|---|
| Claude Opus 4.8 | Anthropic | 1024 | ~5 phút |
| Claude Sonnet 4.6 | Anthropic | 1024 | ~5 phút |
| GPT-4o | OpenAI | 1024 | ~5–10 phút |
| Gemini 2.5 Pro | 32768 | Có thể cấu hình (context cache API) |