38 lines
816 B
Go
38 lines
816 B
Go
package config
|
|
|
|
import (
|
|
"fmt"
|
|
"os"
|
|
)
|
|
|
|
type Config struct {
|
|
ListenAddr string
|
|
DatabaseURL string
|
|
TushareAPIURL string
|
|
LLMBaseURL string
|
|
LLMAPIKey string
|
|
LLMModel string
|
|
}
|
|
|
|
func Load() (*Config, error) {
|
|
cfg := &Config{
|
|
ListenAddr: getenv("LISTEN_ADDR", ":8080"),
|
|
DatabaseURL: os.Getenv("DATABASE_URL"),
|
|
TushareAPIURL: getenv("TUSHARE_API_URL", "http://tushare:8000"),
|
|
LLMBaseURL: getenv("LLM_BASE_URL", "https://api.deepseek.com/v1"),
|
|
LLMAPIKey: os.Getenv("LLM_API_KEY"),
|
|
LLMModel: getenv("LLM_MODEL", "deepseek-chat"),
|
|
}
|
|
if cfg.DatabaseURL == "" {
|
|
return nil, fmt.Errorf("DATABASE_URL 环境变量未设置")
|
|
}
|
|
return cfg, nil
|
|
}
|
|
|
|
func getenv(key, fallback string) string {
|
|
if v, ok := os.LookupEnv(key); ok && v != "" {
|
|
return v
|
|
}
|
|
return fallback
|
|
}
|