Gecholog is an open-source LLM Gateway and Endpoint Manager, originally developed and contributed by the team at teneo.ai. This project is available under the MIT License.
Gecholog is written in Go, and it is recommended to run it containerized. You can find the latest container build in the public container repository on Docker Hub.
From the root of the source tree, run:
VERSION=$(git describe --tags | cut -d'-' -f1 | sed 's/^v//')
NATS_TOKEN=not_set
GUI_SECRET=not_set
docker build --secret id=NATS_TOKEN,env=NATS_TOKEN --secret id=GUI_SECRET,env=GUI_SECRET --no-cache --build-arg VERSION=$VERSION -f ./Dockerfile -t gecholog .
docker run -d -p 8080:8080 -p 5380:5380 -e GUI_SECRET=set_a_password --name gecholog gecholog
Then click http://localhost:8080/login and log in using the password you set. Start by running through the tutorials to learn the basic features of Gecholog.
docker run -d -p 8080:8080 -p 5380:5380 -e GUI_SECRET=set_a_password -e AISERVICE_API_BASE=https://your.openai.azure.com/ --name gecholog gecholog
To use environment variable references such as ${AISERVICE_API_BASE}
in the configuration files.
docker run -d -p 8080:8080 -p 5380:5380 -e GUI_SECRET=set_a_password -v ./conf:/app/conf -v ./log:/app/log -v ./certs:/config/certs --name gecholog gecholog
To mount one directory for config files, one for log writing and one for cert files.
The Gecholog container contains the following services (see cmd/
folder)
entrypoint
prepares configuration files and starts theginit
service. Read more...ginit
is the process supervisor and monitors configuration file changes. Read more...gl
is the actual API call routing service. Read more...gui
runs the configuration UI. Read more...healthcheck
is a simple service to confirm if a service is running. Read more...nats2log
listens to thenats-server
bus for log entries and writes them to a file, rest api, elastic or azure log analytics. Read more...nats-server
is the internal lightweight service bus. Kudos to the team at nats.io.tokencounter
is a processor to standardize the token consumption fields in the logs. Read more...
If you want to manipulate (process) the payload, headers or response body you can connect your own processors to Gecholog for real-time or post-processing. Visit gecholog-resources for examples on how to mock an LLM API, load balancing or run natural language processing via Gecholog.
This project is licensed under the MIT License. See the LICENSE file for the full license text.
The Gecholog container build includes and utilizes NATS server, an open-source messaging system. Find license at /usr/share/doc/nats-server/LICENSE
. We use NATS server under the terms of the Apache License 2.0. Our team acknowledges and appreciates the contributions of the developers and community behind NATS server to the open-source ecosystem. For details on the license, please find the Apache License 2.0 here.
Looking for an overview of the interface? Check it out!