import os from typing import Optional class Settings: # API Keys OPENAI_API_KEY: Optional[str] = os.getenv("OPENAI_API_KEY") ANTHROPIC_API_KEY: Optional[str] = os.getenv("ANTHROPIC_API_KEY") QWEN_API_KEY: Optional[str] = os.getenv("QWEN_API_KEY") # Third-party provider API keys OPENROUTER_API_KEY: Optional[str] = os.getenv("OPENROUTER_API_KEY") SILICONFLOW_API_KEY: Optional[str] = os.getenv("SILICONFLOW_API_KEY") # API Base URLs (支持中转站) OPENAI_API_BASE: Optional[str] = os.getenv("OPENAI_API_BASE", "https://api.openai.com/v1") ANTHROPIC_API_BASE: Optional[str] = os.getenv("ANTHROPIC_API_BASE", "https://api.anthropic.com/v1") QWEN_API_BASE: Optional[str] = os.getenv("QWEN_API_BASE", "https://dashscope.aliyuncs.com/api/v1") # Third-party provider API base URLs OPENROUTER_API_BASE: Optional[str] = os.getenv("OPENROUTER_API_BASE", "https://openrouter.ai/api/v1") SILICONFLOW_API_BASE: Optional[str] = os.getenv("SILICONFLOW_API_BASE", "https://api.siliconflow.cn/v1") # Model settings EMBEDDING_MODEL = "text-embedding-ada-002" GENERATION_MODEL = "gpt-3.5-turbo" # Model provider settings EMBEDDING_PROVIDER = "openai" # openai, anthropic, qwen, openrouter, siliconflow GENERATION_PROVIDER = "openai" # openai, anthropic, qwen, openrouter, siliconflow # Processing settings BATCH_SIZE = 50 MAX_RETRIES = 3 RETRY_DELAY = 2 # Retrieval settings TOP_K = 8 MIN_SEGMENT_LENGTH = 50 # Generation settings TEMPERATURE = 0.25 MAX_TOKENS_FACTOR = 2 # Storage settings VECTOR_INDEX_FILE = "vector_index.faiss" METADATA_FILE = "metadata.json" # Upload settings MAX_FILES = 20 # 更新为20个文件 UPLOAD_FOLDER = "uploads" # Celery settings CELERY_BROKER_URL = "redis://localhost:6379/0" CELERY_RESULT_BACKEND = "redis://localhost:6379/0" settings = Settings()