61 lines
1.6 KiB
Go
61 lines
1.6 KiB
Go
package config
|
|
|
|
import "os"
|
|
|
|
const (
|
|
defaultHTTPAddr = ":8080"
|
|
defaultEnvironment = "development"
|
|
defaultModelKey = "deepseek-v4-flash"
|
|
defaultImageModelKey = "gpt-image-v2"
|
|
defaultThirdOneBin = "thirdone"
|
|
defaultWorkflowRuntime = ""
|
|
)
|
|
|
|
type Config struct {
|
|
HTTPAddr string
|
|
DatabaseURL string
|
|
Environment string
|
|
WorkflowRuntime string
|
|
ModelKey string
|
|
ImageModelKey string
|
|
ThirdOneBin string
|
|
LLMAPIKey string
|
|
LLMEndpoint string
|
|
GoogleClientID string
|
|
JWTSecret string
|
|
DeploySecret string
|
|
}
|
|
|
|
func LoadFromEnv() Config {
|
|
return Config{
|
|
HTTPAddr: envOrDefault("TUTOR_HTTP_ADDR", defaultHTTPAddr),
|
|
DatabaseURL: envOrDefault("DATABASE_URL", ""),
|
|
Environment: envOrDefault("TUTOR_ENV", defaultEnvironment),
|
|
WorkflowRuntime: envOrDefault("TUTOR_WORKFLOW_RUNTIME", defaultWorkflowRuntime),
|
|
ModelKey: envOrDefault("TUTOR_MODEL_KEY", defaultModelKey),
|
|
ImageModelKey: envOrDefault("TUTOR_IMAGE_MODEL_KEY", defaultImageModelKey),
|
|
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", ""),
|
|
DeploySecret: envOrDefault("TUTOR_DEPLOY_SECRET", ""),
|
|
}
|
|
}
|
|
|
|
func (c Config) HasLLM() bool {
|
|
return c.LLMEndpoint != ""
|
|
}
|
|
|
|
func (c Config) HasDeploy() bool {
|
|
return c.DeploySecret != ""
|
|
}
|
|
|
|
func envOrDefault(key string, fallback string) string {
|
|
value := os.Getenv(key)
|
|
if value == "" {
|
|
return fallback
|
|
}
|
|
return value
|
|
}
|