Skip to content

Gecholog is an open-source LLM Gateway and Endpoint Manager, originally developed and contributed by the team at teneo.ai.

License

Notifications You must be signed in to change notification settings

direktoren/gecholog

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gecholog [ˈɡɛkoʊlɔɡ]

Purpose

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.

Building

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 .

Using

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.

Environment variables

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.

Mount directories

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.

Service Components

The Gecholog container contains the following services (see cmd/ folder)

  • entrypoint prepares configuration files and starts the ginit 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 the nats-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...

Connect Micro-Services to Gecholog

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.

License

This project is licensed under the MIT License. See the LICENSE file for the full license text.

Open Source Declaration

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.

Screenshots

Looking for an overview of the interface? Check it out!

Main Menu Tutorial with Code Generation

About

Gecholog is an open-source LLM Gateway and Endpoint Manager, originally developed and contributed by the team at teneo.ai.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages