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.
Tek container/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 imajlı, yalnız gateway içeren bir imaj da var
- Tek 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:8765
- 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 — tool call’lar dâhil.
- RAG store’u olan bir projenin her chat 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.
Rerank, seçim sizin
Aday pasajları prompt’a girmeden önce kendi sohbet modeliniz, Cohere Rerank ya da Voyage Rerank yeniden sıralar. Herhangi bir hata isteği düşürmez, birleştirilmiş sıraya geri döner.
Mesafe eşiği
max_distance zayıf eşleşmeleri eler; prompt’u gürültüyle doldurmak yerine.
BM25 ya da tsvector
Varsayılan Postgres tam metin sıralaması; gerçek BM25 için store’u ParadeDB pg_search’e yöneltin, belgeleriniz Postgres’te kalsın. İki yönde de yeniden işleme gerekmez.
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.
01Container’ı başlatın, ilk yöneticiyi oluşturun
$ docker run -d --name ragmux \-p 127.0.0.1:8765:8765 \-e SECRET_KEY="$(openssl rand -hex 32)" \-v ragmux-data:/data \ragmux/ragmux:latest02Bir model bağlantısı ve bir RAG store ekleyin
$ curl -s localhost:8765/admin/api/models -H "$AUTH" \-d '{"name":"claude","provider_type":"anthropic", …}'$ curl -s localhost:8765/admin/api/rag-stores/1/documents \-H "$AUTH" -F [email protected]03Projeyi oluşturun ve OpenAI gibi çağırın
$ curl -N localhost:8765/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 backend’leri, 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ı.
Gözlemlenebilirlik
/metrics ucu ve neden kimlik istediği, metrik tablosu, kardinalite kuralları, hazır olma, trace span’leri.
Ölçekleme
Tek veritabanında birden çok replika: neyin zaten paylaşıldığı, kiralı ingest, sıralı yeniden başlatma.
Henüz gelmediTaranmış PDF’ler için OCR · SSO ve OIDC girişi · para cinsinden bütçeler · 0.1 SQLite veritabanları için içe aktarma aracı
Öğren
Bayrakların arkasındaki kavramlar.
AI gateway nedir?
Ragmux’un arkasındaki kavram ve bir gateway’in, sağlayıcıyı doğrudan çağırmaya kıyasla üstüne kattıkları.
Ragmux ve LiteLLM karşılaştırması
Farklı işler için kurgulanmış iki self-hosted gateway — sağlayıcı genişliği ile yerleşik retrieval — özellik özellik karşılaştırılıyor.
Self-hosted AI gateway karşılaştırması
LiteLLM, Portkey, OpenRouter, Cloudflare AI Gateway ve diğerleri; lisans, veritabanı ve retrieval eksenlerinde sıralanıyor.
Özel belgelerde soru-cevap
Belgelerinizi üçüncü taraf bir retrieval servisine vermeden kendi PDF’lerinizle konuşan bir asistan kurun.