Files
tutor-service/internal/config/config.go

55 lines
1.5 KiB
Go
Raw Normal View History

2026-04-26 16:14:31 +09:00
package config
import "os"
const (
defaultHTTPAddr = ":8080"
defaultEnvironment = "development"
defaultModelKey = "deepseek-v4-flash"
2026-04-26 17:54:23 +09:00
defaultImageModelKey = "gpt-image-v2"
2026-04-26 16:14:31 +09:00
defaultThirdOneBin = "thirdone"
defaultWorkflowRuntime = ""
)
type Config struct {
HTTPAddr string
DatabaseURL string
2026-04-26 16:14:31 +09:00
Environment string
WorkflowRuntime string
ModelKey string
2026-04-26 17:54:23 +09:00
ImageModelKey string
2026-04-26 16:14:31 +09:00
ThirdOneBin string
LLMAPIKey string
LLMEndpoint string
GoogleClientID string
JWTSecret string
2026-04-26 16:14:31 +09:00
}
func LoadFromEnv() Config {
return Config{
HTTPAddr: envOrDefault("TUTOR_HTTP_ADDR", defaultHTTPAddr),
DatabaseURL: envOrDefault("DATABASE_URL", ""),
2026-04-26 16:14:31 +09:00
Environment: envOrDefault("TUTOR_ENV", defaultEnvironment),
WorkflowRuntime: envOrDefault("TUTOR_WORKFLOW_RUNTIME", defaultWorkflowRuntime),
ModelKey: envOrDefault("TUTOR_MODEL_KEY", defaultModelKey),
2026-04-26 17:54:23 +09:00
ImageModelKey: envOrDefault("TUTOR_IMAGE_MODEL_KEY", defaultImageModelKey),
2026-04-26 16:14:31 +09:00
ThirdOneBin: envOrDefault("THIRDONE_BIN", defaultThirdOneBin),
LLMAPIKey: envOrDefault("TUTOR_LLM_API_KEY", ""),
LLMEndpoint: envOrDefault("TUTOR_LLM_ENDPOINT", ""),
GoogleClientID: envOrDefault("GOOGLE_CLIENT_ID", ""),
JWTSecret: envOrDefault("JWT_SECRET", ""),
2026-04-26 16:14:31 +09:00
}
}
func (c Config) HasLLM() bool {
return c.LLMEndpoint != ""
}
2026-04-26 16:14:31 +09:00
func envOrDefault(key string, fallback string) string {
value := os.Getenv(key)
if value == "" {
return fallback
}
return value
}