Przegląd
LibreChat to self-hosted interfejs czatu, który komunikuje się z API kompatybilnymi z OpenAI przez własne endpointy (custom endpoints). Skierowanie jednego własnego endpointu na GoModel daje każdemu użytkownikowi LibreChat dostęp do wszystkich Twoich providerów przez jedno połączenie, a każdy czat jest logowany, wyceniany i przypisywany w GoModel do zalogowanego użytkownika LibreChat. Przepływ:LibreChat chat -> LibreChat backend -> GoModel -> OpenAI/Anthropic/Gemini/...
Co zyskujesz:
- Pełne treści requestów i odpowiedzi każdego czatu w logu audytowym GoModel.
- Koszt per użytkownik LibreChat dzięki szablonom nagłówków i etykietom.
- Wszystkich providerów za jednym własnym endpointem, bez konfiguracji poszczególnych providerów w LibreChat.
- Metryki Prometheus i trace’y OpenTelemetry dla ruchu z czatu, gdy włączysz te eksportery (zobacz Uwagi).
- Failover, limity żądań, budżety i cache odpowiedzi stosowane do ruchu z czatu, gdy skonfigurujesz je w GoModel.
1. Uruchom GoModel obok LibreChat
LibreChat odczytuje własne endpointy zlibrechat.yaml. Utwórz ten plik obok
pliku compose:
librechat.yaml
docker-compose.yml
Otwórz
http://localhost:3080, zarejestruj pierwsze konto (zostanie
administratorem LibreChat), a endpoint GoModel pojawi się w selektorze modeli z każdym modelem udostępnianym przez GoModel –
łącznie z modelami Anthropic i Gemini oraz wszystkimi
modelami wirtualnymi.
2. Czatuj i oglądaj każde wywołanie w GoModel
Wybierz dowolny model –openai/gpt-5-mini, anthropic/claude-haiku-4-5-20251001,
gemini/gemini-2.5-flash – i czatuj. Odpowiedzi streamowane oraz generowanie tytułu,
które LibreChat uruchamia po pierwszej wymianie, przechodzą przez GoModel.
Każde wywołanie pojawia się w logu audytowym z pełnym promptem, odpowiedzią, tokenami,
kosztem i nagłówkiem identyfikującym użytkownika.
Zweryfikowane z LibreChat v0.8.7: pobieranie modeli, czat i generowanie tytułów
z modelami OpenAI, Anthropic i Gemini, etykiety per użytkownik oraz embedding plików
dla RAG – wszystko kierowane przez GoModel.
Śledzenie kosztów per użytkownik
Dzięki szablonowiheaders z kroku 1 każdy request zawiera
X-LibreChat-User-Email, a GoModel zapisuje jego wartość jako etykietę. Widok
użycia według etykiet w dashboardzie pokazuje wtedy requesty, tokeny i koszt dla każdej
osoby. Jeśli e-maile nie powinny pojawiać się w danych o użyciu, użyj w szablonie
"{{LIBRECHAT_USER_ID}}", zachowując
TAGGING_HEADER_1_DONOTPASS. Nie wyłączaj TAGGING_HEADER_1_DONOTPASS: zwykłe
kierowane requesty nigdy nie przekazują nagłówków klienta, ale
requesty passthrough w przeciwnym razie przekazałyby
nagłówek z e-mailem do providera. Prefiksy i inne opcje nagłówków opisuje strona
Etykietowanie.
Dopasuj selektor modeli
GoModel może udostępniać setki modeli, afetch: true wyświetla je wszystkie.
Aby zamiast tego oferować stałe menu, ustaw fetch: false i wypisz modele, które
mają widzieć Twoi użytkownicy:
fetch: true odzwierciedla GET /v1/models.
Embeddingi i RAG
Pliki przesyłane do LibreChat są przetwarzane na embeddingi przez osobne RAG API, które obsługuje API embeddingów OpenAI i również może wskazywać na GoModel. Dodaj do pliku compose:RAG_API_URL: http://rag_api:8000 do usługi librechat i
pg_data: do listy wolumenów. Każdy przesłany dokument jest dzielony na fragmenty i
przetwarzany przez /v1/embeddings w GoModel, więc użycie embeddingów jest logowane
i wyceniane jak każde inne wywołanie. Routing czatu działa bez problemu bez tej
sekcji.
Rozwiązywanie problemów
Uwagi
- Failover i budżety w GoModel działają automatycznie dla ruchu z czatu; budżet per klucz ogranicza wydatki całej instancji LibreChat.
- Agenci, wyszukiwanie w sieci i generowanie obrazów w LibreChat mają własne ustawienia providerów i nie były częścią weryfikacji.
- Dashboardy i alerty opisują strony Metryki Prometheus i OpenTelemetry.