func Load()

in llm/config/config.go [50:115]


func Load(envFile string) (*Config, error) {
	configOnce.Do(func() {
		config = &Config{}
		err := godotenv.Load(envFile)
		if err != nil {
			configErr = fmt.Errorf("error loading .env file: %v", err)
			return
		}

		modelsEnv := os.Getenv("OLLAMA_MODELS")
		if modelsEnv == "" {
			configErr = fmt.Errorf("error: OLLAMA_MODELS environment variable is not set")
			return
		}

		modelsList := strings.Split(modelsEnv, ",")
		for i, model := range modelsList {
			modelsList[i] = strings.TrimSpace(model)
		}
		if len(modelsList) == 0 {
			configErr = fmt.Errorf("error: No models available")
			return
		}

		config.OllamaModels = modelsList

		ollamaURL := os.Getenv("OLLAMA_URL")
		if ollamaURL == "" {
			configErr = fmt.Errorf("OLLAMA_URL is not set")
			return
		}
		config.OllamaURL = ollamaURL

		timeoutStr := os.Getenv("TIME_OUT_SECOND")
		if timeoutStr == "" {
			config.TimeoutSeconds = defaultTimeoutSeconds
		} else {
			timeout, err := strconv.Atoi(timeoutStr)
			if err != nil {
				configErr = fmt.Errorf("invalid TIME_OUT_SECOND value: %v", err)
				return
			}
			config.TimeoutSeconds = timeout
		}

		nacosURL := os.Getenv("NACOS_URL")
		if nacosURL == "" {
			configErr = fmt.Errorf("OLLAMA_URL is not set")
			return
		}
		config.NacosURL = nacosURL
		maxContextStr := os.Getenv("MAX_CONTEXT_COUNT")
		if maxContextStr == "" {
			config.MaxContextCount = defaultMaxContextCount
		} else {
			maxContext, err := strconv.Atoi(maxContextStr)
			if err != nil {
				configErr = fmt.Errorf("invalid MAX_CONTEXT_COUNT value: %v", err)
				return
			}
			config.MaxContextCount = maxContext
		}
	})

	return config, configErr
}