AI dan LLMAplikasi LLM

Gateway LLM dengan Caching

Arahkan SDK OpenAI atau Anthropic Anda ke satu URL dan permintaan yang berulang dijawab dari HotKV, bukan dibayar lagi. Tanpa perubahan kode.

baris kode untuk diubah
1
biner statis
~6 MB
open source
Apache-2.0
Langkah 1 dari 5
Jalankan gateway

Satu biner atau container di depan penyedia. Kunci API milik pemanggil diteruskan, jadi gateway tidak memerlukannya.

Sesi contohplaying
# Jalankan gateway
$ hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
(gateway listening on 127.0.0.1:8080, cache in HotKV)

Panduan beranimasi dengan perintah HotKV yang sebenarnya dan balasan contoh. Klik langkah mana pun untuk melompat ke sana. Perintah dan balasan tetap dalam bahasa Inggris, persis seperti yang Anda ketik dan lihat di HotKV.

Masalahnya

Sebagian besar trafik LLM mengulang dirinya sendiri. System prompt dan pertanyaan yang sama datang berulang kali dari pengguna yang berbeda, percobaan ulang, dan eksekusi pengujian, dan setiap satunya ditagih. Menambahkan cache di dalam setiap layanan, di setiap bahasa yang Anda pakai, lambat dan mudah salah.

Cara HotKV menanganinya

hotkv-gateway berada di antara aplikasi Anda dan API LLM. Ubah base URL SDK dan permintaan yang identik dilayani dari HotKV, respons streaming diputar ulang sebagai stream, pertanyaan yang dirumuskan ulang dapat dilayani berdasarkan makna, dan permintaan identik yang sedang berjalan berbagi satu panggilan upstream. Jika HotKV lambat atau mati, permintaan langsung menuju penyedia.

Langkah demi langkah

Apa yang terjadi, perintah demi perintah

  1. 01

    Jalankan gateway

    Satu biner atau container di depan penyedia. Kunci API milik pemanggil diteruskan, jadi gateway tidak memerlukannya.

    hotkv-gateway --upstream https://api.openai.com --semantic --embedding-model text-embedding-3-small
  2. 02

    Permintaan pertama, sebuah miss

    Belum ada yang di-cache. Permintaan pergi ke upstream sekali, dan respons 200 yang selesai disimpan.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  3. 03

    Permintaan yang sama, sebuah hit

    Permintaan identik, bahkan dengan kunci dalam urutan berbeda, dijawab dari HotKV dan tidak pernah sampai ke penyedia.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @question.json | grep -i x-hotkv-cache
  4. 04

    Pertanyaan yang dirumuskan ulang

    Dengan semantic cache aktif, pertanyaan satu giliran dengan susunan kata berbeda dapat dilayani oleh jawaban atas pertanyaan yang serupa.

    curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -H "Content-Type: application/json" -d @rephrased.json | grep -i x-hotkv-cache
  5. 05

    Sekumpulan permintaan identik

    Tiga permintaan identik tiba saat yang pertama masih berjalan. Mereka berbagi satu panggilan upstream.

    for i in 1 2 3; do curl -si localhost:8080/v1/chat/completions -H "Authorization: Bearer $OPENAI_API_KEY" -d @new.json & done
Di mana ini cocok

Skenario dunia nyata

Eksekusi evaluasi dan CI

Rangkaian pengujian dan evaluasi prompt mengirim permintaan yang sama setiap kali dijalankan. Di belakang gateway, hanya prompt yang berubah yang menimbulkan biaya.

Platform multi-bahasa

Backend Python, worker Node.js, dan layanan Go semuanya mendapat cache yang sama dengan mengubah satu base URL, tanpa pustaka di setiap bahasa.

Model yang di-host sendiri

Di depan vLLM atau Ollama, gateway menghemat waktu GPU, bukan biaya API, karena prompt yang berulang tidak pernah sampai ke server model.

Bawaan

Yang Anda dapatkan

Cache persis dan semantik

Permintaan chat, completion, dan embedding yang identik di-cache, dan pertanyaan chat satu giliran juga dapat dicocokkan berdasarkan makna (--semantic).

Pemutaran ulang streaming

Respons yang di-stream ditangkap dan diputar ulang sebagai stream, sehingga klien berperilaku persis seperti sebelumnya.

Aman secara default

Setiap kunci API memiliki cache sendiri. Error dan jawaban yang difilter tidak pernah disimpan, dan permintaan dapat melewati cache dengan sebuah header.

Tidak pernah menghalangi

Jika HotKV lambat atau tidak tersedia, permintaan langsung menuju penyedia. Gateway juga melaporkan angkanya di /_hotkv/metrics.

Satu-satunya perubahan di kode Anda

python
from openai import OpenAI

client = OpenAI(base_url="http://localhost:8080/v1")   # the only change

# For Anthropic: start the gateway with --upstream https://api.anthropic.com
import anthropic
client = anthropic.Anthropic(base_url="http://localhost:8080")

Pertanyaan umum

Apakah gateway memerlukan lisensi HotKV?

Tidak. Ia bekerja pada server HotKV mana pun. Dengan lisensi yang menyertakan prompt cache, entri berada di namespace PCACHE dan HotKV melacak token yang dihemat. Semantic cache selalu memerlukan lisensi.

Bisakah dua pelanggan melihat jawaban satu sama lain?

Tidak. Kunci cache menyertakan kredensial pemanggil, jadi setiap kunci API memiliki cache sendiri, kecuali Anda menyimpan satu kunci upstream di gateway atau menjalankannya dengan --scope global.

Dengan penyedia mana ia bekerja?

OpenAI, Azure OpenAI, OpenRouter, vLLM, Ollama, LiteLLM, dan apa pun yang berbicara API OpenAI, plus Messages API Anthropic dengan cache persis.

Kasus penggunaan terkait

Coba pada beban kerja Anda sendiri

HotKV berbicara protokol Redis, jadi Anda dapat mengarahkan klien yang sudah ada ke HotKV dan menjalankan perintah yang sama.