nodebookls/config.py
2025-10-29 13:56:24 +08:00

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()