import configparser import os def set_api_key() -> None: config = configparser.ConfigParser() config.read("config.ini") provider = config.get("llm", "PROVIDER", fallback="gemini") if provider == "gemini": set_gemini_api_key() elif provider == "ollama": set_ollama_config() elif provider == "openai": set_openai_api_key() def set_openai_api_key() -> None: config = configparser.ConfigParser() config.read("config.ini") openai_api_key = config.get("llm", "OPENAI_API_KEY", fallback=None) if not os.environ.get("OPENAI_API_KEY"): if openai_api_key: os.environ["OPENAI_API_KEY"] = openai_api_key else: raise ValueError( "Error: OPENAI_API_KEY not found in config.ini or environment variables" ) return def set_gemini_api_key() -> None: config = configparser.ConfigParser() config.read("config.ini") google_api_key = config.get("llm", "GOOGLE_API_KEY", fallback=None) if not os.environ.get("GOOGLE_API_KEY"): if google_api_key: os.environ["GOOGLE_API_KEY"] = google_api_key else: raise ValueError( "Error: GOOGLE_API_KEY not found in config.ini or environment variables" ) return def set_ollama_config() -> None: config = configparser.ConfigParser() config.read("config.ini") ollama_base_url = config.get( "llm", "OLLAMA_BASE_URL", fallback="http://localhost:11434" ) if not os.environ.get("OLLAMA_BASE_URL"): os.environ["OLLAMA_BASE_URL"] = ollama_base_url return def get_model_name() -> str: config = configparser.ConfigParser() config.read("config.ini") provider = config.get("llm", "PROVIDER", fallback="gemini") if provider == "gemini": return config.get("llm", "GEMINI_MODEL_NAME", fallback="gemini-2.5-flash") elif provider == "ollama": return config.get("llm", "OLLAMA_MODEL_NAME", fallback="gemma3:latest") elif provider == "openai": return config.get("llm", "OPENAI_MODEL_NAME", fallback="gpt-5-mini") return "gemini-2.5-flash" # Default fallback def get_temperature() -> float: config = configparser.ConfigParser() config.read("config.ini") return float(config.get("llm", "TEMPERATURE", fallback=0.7))