56 lines
1.9 KiB
Python
56 lines
1.9 KiB
Python
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() |