Files
2026-07-22 13:48:46 +08:00

54 lines
1.9 KiB
Python

from bootstrap_env import load_project_env
load_project_env()
from SimpleLLMFunc import OpenAICompatible
from functools import lru_cache
import os
from typing import Optional
from dotenv import load_dotenv
# Load the .env file under the working directory.
load_dotenv()
current_file_dir = (
__file__.rsplit("/", 1)[0] if "/" in __file__ else __file__.rsplit("\\", 1)[0]
)
class Config:
JSON_FILE = current_file_dir + "/provider.json"
INTERFACE_COLLECTION = OpenAICompatible.load_from_json_file(JSON_FILE)
BASIC_INTERFACE = INTERFACE_COLLECTION["openrouter"]["anthropic/claude-sonnet-4.6"]
CODE_INTERFACE = INTERFACE_COLLECTION["openrouter"]["google/gemini-3.1-pro-preview"]
REASONING_INTERFACE = INTERFACE_COLLECTION["openrouter"]["anthropic/claude-sonnet-4.6"]
QUICK_INTERFACE = INTERFACE_COLLECTION["openrouter"]["google/gemini-3-flash-preview"]
MULTIMODALITY_INTERFACE = INTERFACE_COLLECTION["openrouter"]["google/gemini-3-flash-preview"]
CONTEXT_SUMMARY_INTERFACE = INTERFACE_COLLECTION["openrouter"]["google/gemini-3-flash-preview"]
# ==================== Context & Sketch configuration parameters ====================
# redis url
REDIS_DB: int = int(os.getenv("REDIS_DB", 0))
REDIS_PASSWORD: Optional[str] = os.getenv("REDIS_PASSWORD", None)
REDIS_HOST: str = os.getenv("REDIS_HOST", "localhost")
REDIS_PORT: int = int(os.getenv("REDIS_PORT", 9736))
# Context storage directory configuration.
CONTEXT_DIR: str = os.getenv("CONTEXT_DIR", "workspace/data/contexts")
CONTEXT_MAX_HISTORY_LENGTH: int = int(os.getenv("CONTEXT_MAX_HISTORY_LENGTH", 10))
CONTEXT_AUTO_SUMMARIZE_TRIGGER: int = int(
os.getenv("CONTEXT_AUTO_SUMMARIZE_TRIGGER", 1000000)
)
# SketchPad storage directory configuration.
SKETCH_DIR: str = os.getenv("SKETCH_DIR", "workspace/data/sketches")
@lru_cache()
def get_config() -> Config:
"""Get the configuration instance."""
return Config()