31 lines
709 B
Go
31 lines
709 B
Go
package config
|
|
|
|
import "os"
|
|
|
|
type Config struct {
|
|
OpenAIAPIKey string
|
|
OpenAIBaseURL string
|
|
OpenAIModel string
|
|
OpenAIEmbedModel string
|
|
DataDir string
|
|
Port string
|
|
}
|
|
|
|
func Load() *Config {
|
|
return &Config{
|
|
OpenAIAPIKey: getEnv("OPENAI_API_KEY", ""),
|
|
OpenAIBaseURL: getEnv("OPENAI_BASE_URL", "https://api.openai.com/v1"),
|
|
OpenAIModel: getEnv("OPENAI_MODEL", "gpt-4o"),
|
|
OpenAIEmbedModel: getEnv("OPENAI_EMBED_MODEL", "text-embedding-3-small"),
|
|
DataDir: getEnv("DATA_DIR", "./data"),
|
|
Port: getEnv("PORT", "8080"),
|
|
}
|
|
}
|
|
|
|
func getEnv(key, fallback string) string {
|
|
if v := os.Getenv(key); v != "" {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|