Untuk skenario dengan permintaan AI yang sangat berulang, AI Gateway telah meningkatkan kemampuan caching-nya. Fitur ini menggabungkan cache presisi Redis dan cache semantik DashVector untuk mengurangi biaya serta meningkatkan efisiensi pemanggilan model bahasa besar (LLM). Topik ini menjelaskan fitur, manfaat, dan metode konfigurasi kebijakan cache semantik dan cache presisi.
Konsep utama cache semantik
Untuk membantu Anda lebih memahami mekanisme caching semantik, bagian berikut menjelaskan konsep-konsep utamanya:
Penyematan vektor
Inti dari cache semantik adalah menggunakan teknologi vektor untuk mencocokkan maksud pengguna. Saat pengguna membuat permintaan baru, sistem terlebih dahulu mengubah teks menjadi vektor berdimensi tinggi melalui text embedding. Proses ini disebut vector embedding.
Vektor-vektor ini secara akurat menangkap fitur semantik teks. Misalnya, meskipun kata 'ponsel Apple' dan 'iPhone' berbeda, vektornya sangat berdekatan dalam ruang vektor. Representasi vektorisasi ini mengatasi keterbatasan cache presisi tradisional yang memerlukan kecocokan teks persis. Hal ini memungkinkan sistem memahami bahwa 'cuaca besok di Beijing' dan 'prakiraan cuaca Beijing untuk 24 jam ke depan' memiliki kesamaan semantik.
Perbandingan vektor
Setelah vektor dihasilkan, sistem menggunakan algoritma cosine similarity untuk menghitung sudut antara vektor permintaan baru dan vektor permintaan yang telah di-cache. Ketika tingkat kemiripan mencapai ambang batas yang telah ditentukan, sistem akan memicu respons dari cache. Nilai ambang batas antara 0,8 hingga 0,9 direkomendasikan, tetapi Anda dapat menyesuaikannya sesuai kebutuhan.
Mekanisme ini memungkinkan sistem mengenali ekspresi sinonim secara cerdas. Misalnya, dalam skenario layanan pelanggan E-dagang, pengguna mungkin bertanya 'Kapan paket ini tiba?' atau 'Berapa perkiraan waktu pengirimannya?'. Sistem dapat mencocokkan kedua pertanyaan tersebut dengan jawaban cache yang sama: 'Berdasarkan informasi logistik, paket Anda akan dikirimkan sebelum pukul 15.00 besok.'
Database vektor
Untuk mengelola vektor secara efisien, kami menggunakan database vektor DashVector. Jenis database ini menggunakan algoritma Hierarchical Navigable Small World (HNSW) untuk mengambil jutaan vektor dalam hitungan milidetik dan mendukung pembaruan dinamis. Dibandingkan dengan cache presisi tradisional, cache semantik tidak hanya mendukung pencocokan jumlah tak terbatas varian semantik, tetapi juga meningkatkan pemanfaatan sumber daya dengan berbagi ruang penyimpanan untuk item-item yang secara semantik mirip.
Perbandingan kebijakan
Dimensi perbandingan | Cache presisi tradisional | Cache semantik |
Metode pencocokan | Pencocokan string persis. | Menentukan jarak dalam ruang vektor menggunakan cosine similarity. |
Toleransi kesalahan | Tidak mengenali ekspresi sinonim atau hampir sinonim. | Mendukung pencocokan fuzzy untuk sinonim, variasi kalimat, dan lainnya. |
Kecepatan respons | Tingkat milidetik (kueri kunci-nilai lokal). | Tingkat milidetik (pencarian tetangga terdekat dalam database vektor). |
Skenario khas | FAQ standar dan pemanggilan API dengan parameter tetap. | Instruksi bahasa alami, percakapan multi-putaran, dan kueri fuzzy. |
Nilai efisiensi biaya | Ideal untuk permintaan berfrekuensi tinggi dan berulang. | Ideal untuk skenario dengan keragaman semantik tinggi dan maksud pengguna yang serupa. |
Fitur dan manfaat
Sistem cache mode ganda: Anda dapat memilih antara dua jenis cache dan menyesuaikan ambang batas pencocokan secara dinamis sesuai kebutuhan.
Precise Cache: Berbasis arsitektur penyimpanan kunci-nilai Redis, memberikan respons tingkat milidetik untuk permintaan identik.
Semantic Cache: Menggunakan database vektor DashVector (Vector Retrieval Service Alibaba Cloud) untuk mencocokkan permintaan yang secara semantik mirip secara cerdas. Ambang batas kemiripan dapat disesuaikan. Hal ini mengatasi keterbatasan pencocokan string tradisional.
Mengurangi komputasi berulang: Untuk permintaan AI yang identik, data respons dari cache dikembalikan langsung, sehingga menghindari pemanggilan berulang ke model bahasa besar.
Peningkatan kinerja: Dengan mengambil hasil secara cepat dari cache, waktu respons dan beban pada server backend berkurang secara signifikan. Cache semantik memungkinkan respons berbasis maksud, yang secara signifikan meningkatkan kepuasan dan pengalaman pengguna.
Cakupan skenario yang diperluas: Cocok untuk skenario standar, seperti sistem layanan pelanggan dan kueri basis pengetahuan, serta mendukung pemrosesan varian instruksi bahasa alami, seperti 'cuaca besok' dan 'prakiraan cuaca untuk 24 jam ke depan'.
Pemantauan Log: Menyediakan analisis metrik rasio hit cache.
Prosedur
Di panel navigasi sebelah kiri, klik LLM API. Lalu, klik nama API untuk membuka halaman detail API.
Klik Policies and Plug-ins, aktifkan sakelar Cache, dan konfigurasikan parameter-parameter tersebut.
AI Gateway telah meningkatkan kemampuan caching-nya untuk mendukung Semantic Cache dan Precise Cache. Pilih metode cache yang sesuai berdasarkan Perbandingan kebijakan.
Semantic cache
PentingJika suatu permintaan berisi header permintaan
x-higress-skip-ai-cache: on, permintaan tersebut melewati cache. Permintaan diteruskan langsung ke layanan backend, dan tanggapannya tidak di-cache.
Cache Key Generation Policy: Pilih opsi default, Use Only The Latest Question, atau pilih Integrate Historical Questions sesuai kebutuhan Anda.
Text Embedding Configuration:
AI Service: Pilih layanan AI yang telah Anda buat. Jika Anda belum memiliki layanan AI, klik Create Service untuk membuatnya.
Model Name: Pilih nama model yang ingin Anda gunakan.
Timeout: Tetapkan periode timeout. Nilai default adalah 5000 ms.
Vector Database Configuration:
Service Provider Type: Jika Anda belum mengaktifkan DashVector (Vector Retrieval Service), klik Go to console untuk membuka halaman aktivasi layanan. Ikuti langkah-langkah berikut: . Catat nama koleksi untuk digunakan nanti.
PentingSaat membuat koleksi, pilih
Cosinesebagai ukuran jarak. Dimensi vektor harus sesuai dengan dimensi model text embedding. Untuk informasi lebih lanjut mengenai dimensi vektor keluaran model text embedding di platform Alibaba Cloud Model Studio, lihat General-purpose text embeddings.Endpoint: Masukkan endpoint DashVector Anda.
Collection Name: Masukkan nama koleksi yang telah Anda buat.
API Key: Kredensial akses. Untuk informasi selengkapnya, lihat Manage API keys.
Vector Similarity Threshold: Nilai ini menentukan seberapa ketat kueri dicocokkan dengan konten yang di-cache. Nilainya berkisar antara 0 hingga 1. Nilai 0,8 atau 0,9 direkomendasikan. Nilai yang lebih besar menunjukkan kemiripan semantik yang lebih tinggi. Untuk informasi selengkapnya, lihat Vector similarity threshold configuration guide.
Timeout: Tetapkan periode timeout. Nilai default adalah 3000 ms.
Precise cache
PentingDi Konsol Redis, tambahkan blok CIDR VPC dari instans gateway ke daftar putih.
Jika suatu permintaan berisi header permintaan
x-higress-skip-ai-cache: on, permintaan tersebut melewati cache. Permintaan diteruskan langsung ke layanan backend, dan tanggapannya tidak di-cache.

Cache Key Generation Policy: Pilih Use Only The Latest Question (default) atau Integrate Historical Questions sesuai kebutuhan.
Redis Cache Configuration:
Redis Endpoint: Masukkan endpoint Redis Anda.
Port: Masukkan nomor port Anda.
Access Method: Pilih metode untuk mengakses layanan Redis. Opsi yang tersedia adalah Log On With An Account And Password, Log On With A Password, dan Log On Without A Password.
Database Account: Masukkan akun database jika Anda masuk menggunakan akun dan kata sandi.
Database Password: Jika Anda memilih autentikasi berbasis kata sandi, Anda harus memasukkan kata sandi database.
Database Number: Nomor database.
Cache Duration (seconds): Durasi cache default adalah 1800 detik. Selama periode ini, jika API menerima permintaan AI yang identik, LLM tidak dipanggil, dan respons dari cache dikembalikan langsung.
Konfirmasi konfigurasi dan klik Save.
Panduan konfigurasi ambang batas kemiripan vektor
Konsep inti
Ambang batas kemiripan vektor adalah parameter kunci yang mengontrol sensitivitas pencocokan cache semantik. Parameter ini menentukan seberapa ketat kueri dicocokkan dengan konten yang di-cache.
Rentang nilai: Nilai dari 0,0 (sama sekali tidak mirip) hingga 1,0 (sama persis).
Rentang yang direkomendasikan: 0,8 hingga 0,9 (dapat disesuaikan berdasarkan kebutuhan bisnis). Jangan mengatur nilai kurang dari 0,8.
Ambang batas lebih rendah (misalnya 0,75): Meskipun pengguna menggunakan ekspresi berbeda, hasil cache dikembalikan selama semantiknya mirip.
Ambang batas lebih tinggi (misalnya 0,99): Hasil cache hanya dikembalikan ketika pengguna menggunakan ekspresi yang hampir identik.
Mengapa nilai 0,8 atau lebih direkomendasikan?
Ketika ambang batas lebih rendah dari 0,8, sistem mungkin salah menganggap kueri yang tidak relevan sebagai kecocokan. Hal ini dapat menyebabkan positif palsu (sistem salah mengembalikan hasil yang tidak relevan), yang dapat berdampak negatif pada pengalaman pengguna atau akurasi bisnis.
Contoh perbandingan efek
Konfigurasi contoh | Kemiripan | Contoh kueri | Deskripsi fitur |
| 1,0 | "Kapan paket saya tiba?" | Gunakan entri ini sebagai patokan perbandingan. |
0,89 | "Berapa perkiraan waktu pengiriman paket saya?" | Cocok dengan "Kapan paket saya tiba?". Hit dicatat. | |
0,86 | "Apakah paket saya bisa dikirim hari ini?" | Cocok dengan "Kapan paket saya tiba?". Hit dicatat. | |
0,83 | "Di mana paket saya bisa dikirim hari ini?" | Tidak ada hit yang dicatat. |
Saran penyetelan
Pengujian benchmark: Anda dapat memulai dengan nilai default 0,8 dan secara bertahap menurunkan atau menaikkan ambang batas untuk mengamati perubahan pada tingkat hit cache.
Adaptasi skenario:
Untuk kueri yang sensitif terhadap waktu (seperti pelacakan logistik waktu nyata), ambang batas kemiripan yang lebih tinggi direkomendasikan.
Untuk skenario yang memerlukan jawaban yang sangat terstandarisasi (seperti respons FAQ), ambang batas kemiripan yang lebih rendah dapat digunakan.
Keseimbangan kinerja: Menurunkan ambang batas meningkatkan jumlah pemanggilan LLM.
Pertanyaan umum
T: Bagaimana cara menentukan ambang batas optimal?
J: Dengan membandingkan hasil Pengujian A/B:
Hitung rasio hit cache versus biaya pemanggilan LLM.
Kumpulkan umpan balik pengguna mengenai jawaban cache yang tidak relevan (misalnya, "Mengapa pertanyaan baru saya mengembalikan jawaban lama?").
Pantau fluktuasi waktu respons kueri penting (misalnya, "kueri waktu nyata" versus "kueri historis").
Kami merekomendasikan agar Anda mengevaluasi ulang pengaturan ambang batas secara berkala (misalnya, bulanan) berdasarkan data bisnis terbaru. Selama jam sibuk, Anda dapat mempertimbangkan untuk menurunkan ambang batas guna menangani lonjakan volume kueri.
Rasio hit cache
Anda harus mengaktifkan Simple Log Service sebelum dapat mengkueri rasio hit cache.
Pernyataan pencarian contoh berikut menunjukkan cara mengkueri rasio hit cache di tingkat gateway:
cluster_id:{your-gatewayId} and inner-ai-cache-{your-gatewayId} | SELECT
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) AS hit_count,
SUM(CASE WHEN content LIKE '%cache miss for key%' OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END) AS miss_count,
SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' THEN 1 ELSE 0 END) * 100.0 /
NULLIF(SUM(CASE WHEN content LIKE '%cache hit for key%' OR content LIKE '%key accepted%' OR content LIKE '%cache miss for key%'
OR content LIKE '%score not meet the threshold%' THEN 1 ELSE 0 END), 0) AS hit_rateGanti
{your-gatewayId}dengan ID instans gateway Anda. Perhatikan bahwa placeholder pertama memerlukan awalangw-, sedangkan yang kedua tidak. Jika Anda membuka halaman kueri log dari pengaturan cache, `cluster_id` sudah otomatis disertakan. Dalam hal ini, Anda hanya perlu menempelkan sisa pernyataan pencarian.
Hasil kueri menunjukkan rasio hit cache.

Contoh
Saat Precise Cache diaktifkan, hanya kueri identik yang dicocokkan:

Saat Semantic Cache diaktifkan, kueri yang secara semantik mirip juga dapat dicocokkan. Jika kemiripan semantik lebih rendah dari ambang batas, kecocokan tidak ditemukan:

