Thanks to visit codestin.com
Credit goes to github.com

Skip to content

GoModel - AI gateway, high-performent, easy-to-use, written in Go.

License

Notifications You must be signed in to change notification settings

ENTERPILOT/GOModel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

161 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

GOModel

CI Docs Discord

A high-performance AI gateway written in Go, providing a unified OpenAI-compatible API for multiple AI model providers, full-observability and more.

Quick Start

Step 1: Start GOModel

docker run --rm -p 8080:8080 \
  -e OPENAI_API_KEY="your-openai-key" \
  enterpilot/gomodel

Pass only the provider credentials or base URL you need (at least one required):

docker run --rm -p 8080:8080 \
  -e OPENAI_API_KEY="your-openai-key" \
  -e ANTHROPIC_API_KEY="your-anthropic-key" \
  -e GEMINI_API_KEY="your-gemini-key" \
  -e GROQ_API_KEY="your-groq-key" \
  -e XAI_API_KEY="your-xai-key" \
  -e OLLAMA_BASE_URL="http://host.docker.internal:11434/v1" \
  enterpilot/gomodel

⚠️ Avoid passing secrets via -e on the command line—they can leak via shell history and process lists. For production, use docker run --env-file .env to load API keys from a file instead.

Step 2: Make your first API call

curl http://localhost:8080/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "gpt-5-chat-latest",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'

That's it! GOModel automatically detects which providers are available based on the credentials you supply.

Supported Providers

Example model identifiers are illustrative and subject to change; consult provider catalogs for current models.

Provider Features
Name Credential Example Model Chat Passthru Voice Image Video /responses Embed Cache
OpenAI OPENAI_API_KEY gpt‑4o‑mini 🚧🚧🚧🚧🚧🚧🚧
Anthropic ANTHROPIC_API_KEY claude‑sonnet‑4‑20250514 🚧🚧🚧🚧🚧🚧🚧
Google Gemini GEMINI_API_KEY gemini‑2.5‑flash 🚧🚧🚧🚧🚧🚧🚧
Groq GROQ_API_KEY llama‑3.3‑70b‑versatile 🚧🚧🚧🚧🚧🚧🚧
xAI (Grok) XAI_API_KEY grok‑2 🚧🚧🚧🚧🚧🚧🚧
Ollama OLLAMA_BASE_URL llama3.2 🚧🚧🚧🚧🚧

✅ Supported 🚧 Coming soon — Not applicable


Alternative Setup Methods

Running from Source

Prerequisites: Go 1.22+

  1. Create a .env file:

    cp .env.template .env
  2. Add your API keys to .env (at least one required).

  3. Start the server:

    make run

Docker Compose (Full Stack)

Includes GOModel + Redis + PostgreSQL + MongoDB + Adminer + Prometheus:

cp .env.template .env
# Add your API keys to .env
docker compose up -d
Service URL
GOModel API http://localhost:8080
Adminer (DB UI) http://localhost:8081
Prometheus http://localhost:9090

Building the Docker Image Locally

docker build -t gomodel .
docker run --rm -p 8080:8080 --env-file .env gomodel

API Endpoints

Endpoint Method Description
/v1/chat/completions POST Chat completions (streaming supported)
/v1/responses POST OpenAI Responses API
/v1/models GET List available models
/health GET Health check
/metrics GET Prometheus metrics (when enabled)
/admin/api/v1/usage/summary GET Aggregate token usage statistics
/admin/api/v1/usage/daily GET Per-period token usage breakdown
/admin/api/v1/models GET List models with provider type
/admin/dashboard GET Admin dashboard UI

Configuration

GOModel is configured through environment variables. See .env.template for all options.

Key settings:

Variable Default Description
PORT 8080 Server port
GOMODEL_MASTER_KEY (none) API key for authentication
CACHE_TYPE local Cache backend (local or redis)
STORAGE_TYPE sqlite Storage backend (sqlite, postgresql, mongodb)
METRICS_ENABLED false Enable Prometheus metrics
LOGGING_ENABLED false Enable audit logging

Quick Start — Authentication: By default GOMODEL_MASTER_KEY is unset. Without this key, API endpoints are unprotected and anyone can call them. This is insecure for production. Strongly recommend setting a strong secret before exposing the service. Add GOMODEL_MASTER_KEY to your .env or environment for production deployments.


See DEVELOPMENT.md for testing, linting, and pre-commit setup.


Roadmap

Features

Feature Basic Full
Billing Management 🚧 🚧
Full-observability 🚧 🚧
Budget management 🚧 🚧
Many keys support 🚧 🚧
Administrative endpoints 🚧
Guardrails 🚧
SSO 🚧 🚧
System Prompt (GuardRails) 🚧

Integrations

Integration Basic Full
Prometheus 🚧
DataDog 🚧 🚧
OpenTelemetry 🚧 🚧

✅ Supported 🚧 Coming soon

Star History

Star History Chart