init the project
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
# ZeekerWatchman - Configuration Management
|
||||
|
||||
import os
|
||||
from pathlib import Path
|
||||
|
||||
from dotenv import load_dotenv
|
||||
from pydantic_settings import BaseSettings
|
||||
import logging
|
||||
|
||||
# Load .env into os.environ so non-prefixed keys (API keys) are also available
|
||||
load_dotenv(Path(__file__).parent.parent / ".env")
|
||||
|
||||
# Configure testflow logger — used by all services
|
||||
logging.basicConfig(
|
||||
level=logging.INFO,
|
||||
format="%(asctime)s.%(msecs)03d %(levelname)-5s %(message)s",
|
||||
datefmt="%H:%M:%S",
|
||||
)
|
||||
logging.getLogger("httpx").setLevel(logging.WARNING)
|
||||
logging.getLogger("openai").setLevel(logging.WARNING)
|
||||
|
||||
|
||||
class Settings(BaseSettings):
|
||||
APP_NAME: str = "ZeekerWatchman"
|
||||
VERSION: str = "0.1.0"
|
||||
DEBUG: bool = True
|
||||
|
||||
# Paths
|
||||
ZEEKERWATCHMEN_DIR: Path = Path(__file__).parent.parent / ".zeekerwatchmen"
|
||||
SKILLS_DIR: Path = ZEEKERWATCHMEN_DIR / "skills"
|
||||
MEMORY_DIR: Path = ZEEKERWATCHMEN_DIR / "memory"
|
||||
SOUL_DIR: Path = ZEEKERWATCHMEN_DIR / "soul"
|
||||
OUTPUT_DIR: Path = Path(__file__).parent.parent / "output"
|
||||
|
||||
# LLM Configuration
|
||||
LLM_PROVIDER: str = "deepseek"
|
||||
TEXT_MODEL: str = "deepseek-chat"
|
||||
IMAGE_MODEL: str = "qwen3-vl-plus"
|
||||
USE_MOCK: bool = True # True=左侧流水线用Mock / False=真实LLM
|
||||
CHAT_USE_MOCK: bool = False # True=右侧AI助手用Mock / False=真实LLM
|
||||
|
||||
# CORS
|
||||
CORS_ORIGINS: list = ["http://localhost:3000"]
|
||||
|
||||
# Upload
|
||||
MAX_UPLOAD_SIZE_MB: int = 10
|
||||
|
||||
class Config:
|
||||
env_file = ".env"
|
||||
env_prefix = "ZEEKER_"
|
||||
extra = "ignore"
|
||||
|
||||
|
||||
settings = Settings()
|
||||
|
||||
# API Keys loaded from env directly (no prefix)
|
||||
DEEPSEEK_API_KEY = os.environ.get("DEEPSEEK_API_KEY", "")
|
||||
DEEPSEEK_BASE_URL = os.environ.get("DEEPSEEK_BASE_URL", "https://api.deepseek.com/v1")
|
||||
DASHSCOPE_API_KEY = os.environ.get("DASHSCOPE_API_KEY", "")
|
||||
DASHSCOPE_BASE_URL = os.environ.get("DASHSCOPE_BASE_URL", "https://dashscope.aliyuncs.com/compatible-mode/v1")
|
||||
Reference in New Issue
Block a user