6c1a69af0d
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
53 lines
1.6 KiB
Python
53 lines
1.6 KiB
Python
"""
|
|
配置管理模块
|
|
"""
|
|
|
|
import os
|
|
from pathlib import Path
|
|
from typing import Optional
|
|
from dotenv import load_dotenv
|
|
|
|
# 加载.env文件
|
|
env_path = Path(__file__).parent.parent.parent / ".env"
|
|
if env_path.exists():
|
|
load_dotenv(env_path)
|
|
|
|
|
|
class Config:
|
|
"""配置类"""
|
|
|
|
# API Keys
|
|
OPENAI_API_KEY: Optional[str] = os.getenv("OPENAI_API_KEY")
|
|
ANTHROPIC_API_KEY: Optional[str] = os.getenv("ANTHROPIC_API_KEY")
|
|
DASHSCOPE_API_KEY: Optional[str] = os.getenv("DASHSCOPE_API_KEY")
|
|
VOLCENGINE_ACCESS_KEY: Optional[str] = os.getenv("VOLCENGINE_ACCESS_KEY")
|
|
VOLCENGINE_SECRET_KEY: Optional[str] = os.getenv("VOLCENGINE_SECRET_KEY")
|
|
ZHIPUAI_API_KEY: Optional[str] = os.getenv("ZHIPUAI_API_KEY")
|
|
SILICONFLOW_API_KEY: Optional[str] = os.getenv("SILICONFLOW_API_KEY")
|
|
SILICONFLOW_API_BASE: Optional[str] = os.getenv("SILICONFLOW_API_BASE", "https://api.siliconflow.cn/v1")
|
|
|
|
# 路径配置
|
|
DATA_DIR: str = os.getenv("DATA_DIR", "../data")
|
|
OUTPUT_DIR: str = os.getenv("OUTPUT_DIR", "./output")
|
|
|
|
# 日志配置
|
|
LOG_LEVEL: str = os.getenv("LOG_LEVEL", "INFO")
|
|
|
|
# HanLP配置
|
|
HANLP_MODEL_PATH: Optional[str] = os.getenv("HANLP_MODEL_PATH")
|
|
|
|
# LLM配置
|
|
TEMPERATURE: float = float(os.getenv("TEMPERATURE", "0.4"))
|
|
FREQUENCY_PENALTY: float = float(os.getenv("FREQUENCY_PENALTY", "0.6"))
|
|
PRESENCE_PENALTY: float = float(os.getenv("PRESENCE_PENALTY", "0.6"))
|
|
|
|
# 文本处理配置
|
|
MAX_TEXTUNIT_LENGTH: int = int(os.getenv("MAX_TEXTUNIT_LENGTH", "500"))
|
|
|
|
|
|
def load_config() -> Config:
|
|
"""加载配置"""
|
|
return Config()
|
|
|
|
|