forked from templates/template-go-orm
Go-сервис-прокси между Codex CLI и Ollama. Добавляет Bearer-авторизацию, LLM-маршрутизатор (deepseek классифицирует запросы: code/doc/general), поддержку OpenAI Responses API для Codex CLI, стриминг SSE, кеш модели. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
35 lines
869 B
Go
35 lines
869 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
|
|
"github.com/caarlos0/env/v11"
|
|
)
|
|
|
|
type Config struct {
|
|
ProxyPort int `env:"PROXY_PORT" envDefault:"11435"`
|
|
AuthToken string `env:"AUTH_TOKEN,required"`
|
|
OllamaURL string `env:"OLLAMA_URL" envDefault:"http://localhost:11434"`
|
|
RouterModel string `env:"ROUTER_MODEL" envDefault:"deepseek-llm:7b"`
|
|
CodeModel string `env:"CODE_MODEL" envDefault:"qwen2.5-coder:1.5b"`
|
|
DocModel string `env:"DOC_MODEL" envDefault:"gemma:1b"`
|
|
GeneralModel string `env:"GENERAL_MODEL" envDefault:"deepseek-llm:7b"`
|
|
NumCtx int `env:"OLLAMA_NUM_CTX" envDefault:"32768"`
|
|
}
|
|
|
|
func Load() (*Config, error) {
|
|
cfg := &Config{}
|
|
if err := env.Parse(cfg); err != nil {
|
|
return nil, fmt.Errorf("config parse: %w", err)
|
|
}
|
|
return cfg, nil
|
|
}
|
|
|
|
func MustLoad() *Config {
|
|
cfg, err := Load()
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return cfg
|
|
}
|