Kendi sunucunuzda AI gateway
Bütün modeller tek bir API’nin ardında.Bütün yanıtlar kendi belgelerinize dayalı.
Ragmux, uygulamalarınızla OpenAI, Anthropic, Gemini, DeepSeek, Ollama ya da kendi vLLM’iniz arasında duran tek bir Go binary’si. Dışarıya tek bir OpenAI uyumlu API konuşur ve ilettiği her isteğe kendi PDF’lerinizden getirdiği pasajları ekler.
Docker Compose/PostgreSQL 17 + pgvector/AGPL-3.0-or-later
- OpenAI
- Anthropic
- Gemini
- DeepSeek
- Ollama
- vLLM · LM Studio · LiteLLM
- Statik Go binary, CGO_ENABLED=0, distroless taban imaj
- İki container — Redis yok, ayrı vektör veritabanı yok
- Sağlayıcı anahtarları diskte AES-256-GCM ile şifreli
Nasıl çalışır
İçeri tek istek. Dışarı doğru model, doğru bağlamla.
Yapılandırmanın tamamı proje anahtarında toplanır: hangi sağlayıcının yanıtlayacağı, hangi system prompt’un uygulanacağı, hangi belgelerin aranacağı ve çağıranın ne kadar harcayabileceği.
Uygulamanız
Resmî OpenAI SDK’ları olduğu gibi çalışır. model alanı geri yansıtılır — gerçek modele proje karar verir.
Ragmux:8080
- 01Projeyi çözAnahtar → model bağlantısı, system prompt, hız sınırları ve token bütçesi.
- 02Projenin store’u varsa getirSorguyu embed et, chunk’larda hibrit arama yap, en iyi k pasajı system prompt’a yerleştir.
- 03Uyarla, ilet, normalize etSağlayıcının şemasına çevir — Anthropic için tool call’lar dâhil — ve yanıtı OpenAI SSE olarak geri akıt.
Sağlayıcı
- OpenAI
- Anthropic
- Gemini
- DeepSeek
- Ollama /api/chat
- custom_openai
Kimlik bilgileri sunucu tarafında kalır, API tarafından hiçbir zaman döndürülmez.
PostgreSQL + pgvector
- kullanıcılar & roller
- bağlantılar
- projeler
- belgeler (bytea)
- chunk’lar
- HNSW vektör indeksleri
- istek kayıtları
Yerine geçer
İki satır değişir. SDK’nız aynı kalır.
/v1/chat/completions ve /v1/models uçlarını OpenAI şemasında, hem JSON hem SSE olarak yanıtlar. Kod tabanınızda başka hiçbir şey kıpırdamaz.
- Anthropic ve Gemini istekleri ile stream’leri sizin yerinize çevrilir — Anthropic’te tool call’lar dâhil.
- Her yanıt x-ragmux-rag-hits taşır: kaç pasajın eklendiğini söyler.
- Sınır aşıldığında OpenAI biçiminde 429 döner; Retry-After ve x-ratelimit-* başlıklarıyla.
Retrieval
Belgelerinizin yeri isteğin içidir — ikinci bir sistem değil.
Bir RAG store’a dosya yükleyin; ingestion worker onu pending’den ready’ye taşısın. Vektörler diğer her şeyle aynı veritabanına iner.
- 01AyrıştırPDF, DOCX, HTML, Markdown ve düz metin; doğrudan veritabanına bytea olarak.
- 02BölBölüm farkındalıklı bölme ve bağlamsal chunk’lar — pasaj, sayfasından koptuğunda da anlamlı kalır.
- 03Embed etStore için seçtiğiniz embedding bağlantısı üzerinden; pgvector’da HNSW ile indekslenir.
- 04AraVektör benzerliği ile Postgres tam metin araması, reciprocal rank fusion ile birleştirilir.
- 05YerleştirEn iyi k pasaj system prompt’un başına eklenir ve yanıt başlıklarında sayılır.
İsteğe bağlı LLM rerank
Kesinlik gecikmeden önemliyse aday pasajları prompt’a girmeden önce bir modele yeniden sıralatın.
Mesafe eşiği
max_distance zayıf eşleşmeleri eler; prompt’u gürültüyle doldurmak yerine.
Store başına metin arama yapılandırması
fts_config Postgres sözlüğünü seçer; böylece aramanın sözcüksel yarısı sizin dilinizi konuşur.
Yönetim düzlemi
Anahtarlar, roller, sınırlar — ve hepsine dokunan her şeyin kaydı.
Ortak bir sağlayıcı anahtarının veremediği şey: kimin, hangi projede, hangi prompt altında ne harcadığı.
Projeler ve anahtarlar
Proje başına bir sk-proj-… anahtarı; bir model bağlantısına, bir system prompt’a ve isteğe bağlı bir RAG store’a bağlanır. Sağlayıcı kimlik bilgileri diskte AES-256-GCM ile şifrelenir.
Roller ve üyelik
admin, editor, viewer ve proje bazlı üyelik. Admin olmayanlar yalnız kendi projelerini görür; başkasının proje id’si 403 değil 404 döner.
Hız sınırları ve bütçeler
Dakikada istek ve token, ayrıca UTC pencerelerinde günlük ve aylık token bütçeleri — veritabanında sayıldığı için replikalar tek tavanı paylaşır.
Giriş koruması
Kullanıcı adı ve IP başına deneme sınırı, kilitlenme penceresiyle birlikte Postgres’te tutulur. Proxy başlıklarını açıkça açmadıkça istemci IP’si TCP karşı ucudur.
Denetim kaydı
Her giriş ve her yönetim işlemi kaydedilir; /admin/api/audit ucundan ve kendi dashboard sekmesinden okunur.
Metrikler ve saklama
İstek başına token, gecikme, durum, streaming ve RAG kullanımı; üstünde özetler ve günlük seriler. Saklama penceresini siz belirlersiniz, saatlik bir görev uygular.
Dashboard & API
Arayüz de yalnızca bir istemci.
/admin/ adresindeki dashboard binary’nin içinde gelir; modelleri, RAG store’ları, belgeleri, projeleri, metrikleri, kullanıcıları ve denetim kaydını yönetir. Bir proje anahtarını bağlamadan denemek için playground’u vardır. Yaptığı her şey sizin de çağırabileceğiniz bir REST isteğidir.
Build adımı yok
Gömülü, sade JavaScript
Aynı kimlik doğrulama
Bearer oturum token’ı
- POST
/v1/chat/completionsproxy — JSON ya da SSE - GET
/v1/modelsbu anahtarın çağırabildikleri - POST
/admin/api/modelssağlayıcı bağlantısı ekle - POST
/admin/api/rag-storesstore oluştur - POST
/admin/api/rag-stores/{id}/documentsdosya yükle - POST
/admin/api/projectsanahtar bir kez gösterilir - GET
/admin/api/auditkim neyi değiştirdi - GET
/admin/api/systemsürümler, veritabanı boyutu, yedek - GET
/healthzorkestratörünüz için
Hızlı başlangıç
Sıfırdan, belgeye dayalı ilk yanıta.
01İki container’ı ayağa kaldırın
$ cp .env.example .env$ echo "SECRET_KEY=$(openssl rand -hex 32)" >> .env$ docker compose up -d02Bir model bağlantısı ve bir RAG store ekleyin
$ curl -s localhost:8080/admin/api/models -H "$AUTH" \-d '{"name":"claude","provider_type":"anthropic", …}'$ curl -s localhost:8080/admin/api/rag-stores/1/documents \-H "$AUTH" -F [email protected]03Projeyi oluşturun ve OpenAI gibi çağırın
$ curl -N localhost:8080/v1/chat/completions \-H "Authorization: Bearer sk-proj-…" \-d '{"model":"default","stream":true,"messages":[…]}'x-ragmux-rag-hits: 4
Dokümantasyon
Nöbetteki kişi için yazıldı.
Yapılandırma
Bütün ortam değişkenleri ve varsayılanları, -healthcheck ve -version bayrakları, ters proxy notları.
API referansı
Kimlik doğrulama, uç başına gereken rol, istek ve yanıt örnekleri, hata zarfı.
Retrieval
Biçimler, bağlamsal chunk’lama, hibrit arama ve fts_config, rerank, bağlam biçimi.
Kullanıcılar, roller ve sınırlar
Rol matrisi, proje üyeliği, giriş koruması, denetim kaydı, bütçeler ve saklama.
Sağlayıcılar
Sağlayıcı tipleri ve uçları, Anthropic, Gemini ve Ollama çeviri ayrıntıları, passthrough ve model yansıtma.
Yedekleme ve geri yükleme
Neyin yedekleneceği, betikler, zamanlanmış yedekler, PITR ve geri yükleme yordamı.
0.2.0’da yokGemini tool calling · taranmış PDF’ler için OCR · Prometheus ucu · SSO ve OIDC girişi · prompt caching passthrough · 0.1 SQLite veritabanları için içe aktarma aracı