Files

1 line
12 KiB
JSON

{"repo": "chuanminglu/aidocs", "files": {"config/settings.py": {"c4d348c0d63ad569a219f57d8568f5bba101c857": {"t": 1785746907.0110745, "n": 4810, "h": "569ffc309a15d47e", "c": "\"\"\"\nAI文档管理系统配置文件\n基于 PyQt6 + FastAPI + SQLAlchemy + DeepSeek 架构\n\"\"\"\n\nimport os\nfrom pathlib import Path\nfrom pydantic_settings import BaseSettings\nfrom typing import Optional, List\n\n\nclass Settings(BaseSettings):\n \"\"\"应用程序配置\"\"\"\n \n # 应用基础配置\n app_name: str = \"AI文档管理系统\"\n app_version: str = \"1.0.0\"\n debug: bool = True\n \n # 项目路径\n project_root: Path = Path(__file__).parent.parent\n data_dir: Path = project_root / \"data\"\n documents_dir: Path = data_dir / \"documents\"\n templates_dir: Path = data_dir / \"templates\"\n database_dir: Path = data_dir / \"database\"\n cache_dir: Path = data_dir / \"cache\"\n \n # FastAPI 配置\n api_host: str = \"127.0.0.1\"\n api_port: int = 8000\n api_prefix: str = \"/api/v1\"\n cors_origins: List[str] = [\"*\"]\n \n # 数据库配置\n database_url: str = \"\"\n async_database_url: str = \"\"\n database_echo: bool = False\n \n # DeepSeek AI 配置\n deepseek_api_key: Optional[str] = \"sk-4b7b1f6ec79040ffa41768c3c267b6c9\"\n deepseek_api_base: str = \"https://api.deepseek.com/v1\"\n deepseek_model: str = \"deepseek-chat\"\n \n # 搜索配置\n search_index_dir: Path = cache_dir / \"search_index\"\n max_search_results: int = 100\n \n # 文档配置\n max_file_size: int = 50 * 1024 * 1024 # 50MB\n supported_formats: List[str] = [\".md\", \".txt\", \".docx\", \".pdf\", \".html\"]\n \n # 缓存配置\n cache_ttl: int = 3600 # 1小时\n max_cache_size: int = 100 * 1024 * 1024 # 100MB\n cache_retention_days: int = 7\n \n # 日志配置\n log_level: str = \"INFO\"\n log_file: Path = project_root / \"logs\" / \"aidocs.log\"\n \n # 模板配置\n default_template: str = \"default.md\"\n template_extensions: List[str] = [\".md\", \".txt\", \".html\"]\n \n # GUI配置\n window_width: int = 1200\n window_height: int = 800\n theme: str = \"light\"\n \n def __init__(self, **kwargs):\n super().__init__(**kwargs)\n # 初始化时设置数据库URL\n self.database_url = f\"sqlite:///{self.database_dir}/aidocs.db\"\n self.async_database_url = f\"sqlite+aiosqlite:///{self.database_dir}/aidocs.db\"\n \n # 创建必要的目录\n self.create_directories()\n \n def create_directories(self):\n \"\"\"创建必要的目录\"\"\"\n directories = [\n self.data_dir,\n self.documents_dir,\n self.templates_dir,\n self.database_dir,\n self.cache_dir,\n self.search_index_dir,\n self.project_root / \"logs\"\n ]\n \n for directory in directories:\n directory.mkdir(parents=True, exist_ok=True)\n \n def get_database_url(self, async_mode: bool = False) -> str:\n \"\"\"获取数据库连接URL\"\"\"\n if async_mode:\n return self.async_database_url\n return self.database_url\n \n def get_documents_path(self) -> Path:\n \"\"\"获取文档存储路径\"\"\"\n return self.documents_dir\n \n def get_templates_path(self) -> Path:\n \"\"\"获取模板存储路径\"\"\"\n return self.templates_dir\n \n def is_supported_format(self, file_path: str) -> bool:\n \"\"\"检查文件格式是否支持\"\"\"\n return Path(file_path).suffix.lower() in self.supported_formats\n \n def get_ai_config(self) -> dict:\n \"\"\"获取AI配置\"\"\"\n return {\n \"api_key\": self.deepseek_api_key,\n \"api_base\": self.deepseek_api_base,\n \"model\": self.deepseek_model\n }\n \n class Config:\n \"\"\"Pydantic配置\"\"\"\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n\n\n# 创建全局配置实例\nsettings = Settings()\n\n\n# 时间维度配置\nTIME_DIMENSIONS = {\n \"year\": {\"format\": \"%Y\", \"display\": \"年度\"},\n \"month\": {\"format\": \"%Y-%m\", \"display\": \"月度\"},\n \"week\": {\"format\": \"%Y-W%W\", \"display\": \"周度\"},\n \"day\": {\"format\": \"%Y-%m-%d\", \"display\": \"日期\"},\n}\n\n# 专业维度配置\nPROFESSIONAL_DIMENSIONS = {\n \"人工智能\": {\n \"subcategories\": [\"机器学习\", \"深度学习\", \"自然语言处理\", \"计算机视觉\", \"强化学习\"],\n \"color\": \"#FF6B6B\",\n \"icon\": \"🤖\"\n },\n \"项目管理\": {\n \"subcategories\": [\"敏捷开发\", \"需求管理\", \"风险管理\", \"团队协作\", \"项目复盘\"],\n \"color\": \"#4ECDC4\",\n \"icon\": \"📊\"\n },\n \"DevOps\": {\n \"subcategories\": [\"持续集成\", \"监控运维\", \"质量工程\", \"容器化\", \"自动化\"],\n \"color\": \"#45B7D1\",\n \"icon\": \"🔧\"\n },\n \"技术研究\": {\n \"subcategories\": [\"新技术调研\", \"技术选型\", \"最佳实践\", \"技术方案\", \"问题解决\"],\n \"color\": \"#96CEB4\",\n \"icon\": \"🔬\"\n }\n}\n\n# 文档模板配置\nDOCUMENT_TEMPLATES = {\n \"技术研究笔记\": {\n \"file\": \"技术研究笔记模板.md\",\n \"category\": \"技术研究\",\n \"description\": \"用于记录技术研究过程和结果\"\n },\n \"项目复盘\": {\n \"file\": \"项目复盘模板.md\",\n \"category\": \"项目管理\",\n \"description\": \"项目结束后的复盘总结\"\n },\n \"日报\": {\n \"file\": \"日报模板.md\",\n \"category\": \"日常工作\",\n \"description\": \"每日工作记录和总结\"\n }\n}\n\n\n# 导出配置\n__all__ = [\"Settings\", \"settings\", \"TIME_DIMENSIONS\", \"PROFESSIONAL_DIMENSIONS\", \"DOCUMENT_TEMPLATES\"]\n"}, "655c6f506976a053fed9de74f3f5f426df9385e5": {"t": 1785768793.2618182, "n": 4810, "h": "569ffc309a15d47e", "c": "\"\"\"\nAI文档管理系统配置文件\n基于 PyQt6 + FastAPI + SQLAlchemy + DeepSeek 架构\n\"\"\"\n\nimport os\nfrom pathlib import Path\nfrom pydantic_settings import BaseSettings\nfrom typing import Optional, List\n\n\nclass Settings(BaseSettings):\n \"\"\"应用程序配置\"\"\"\n \n # 应用基础配置\n app_name: str = \"AI文档管理系统\"\n app_version: str = \"1.0.0\"\n debug: bool = True\n \n # 项目路径\n project_root: Path = Path(__file__).parent.parent\n data_dir: Path = project_root / \"data\"\n documents_dir: Path = data_dir / \"documents\"\n templates_dir: Path = data_dir / \"templates\"\n database_dir: Path = data_dir / \"database\"\n cache_dir: Path = data_dir / \"cache\"\n \n # FastAPI 配置\n api_host: str = \"127.0.0.1\"\n api_port: int = 8000\n api_prefix: str = \"/api/v1\"\n cors_origins: List[str] = [\"*\"]\n \n # 数据库配置\n database_url: str = \"\"\n async_database_url: str = \"\"\n database_echo: bool = False\n \n # DeepSeek AI 配置\n deepseek_api_key: Optional[str] = \"sk-4b7b1f6ec79040ffa41768c3c267b6c9\"\n deepseek_api_base: str = \"https://api.deepseek.com/v1\"\n deepseek_model: str = \"deepseek-chat\"\n \n # 搜索配置\n search_index_dir: Path = cache_dir / \"search_index\"\n max_search_results: int = 100\n \n # 文档配置\n max_file_size: int = 50 * 1024 * 1024 # 50MB\n supported_formats: List[str] = [\".md\", \".txt\", \".docx\", \".pdf\", \".html\"]\n \n # 缓存配置\n cache_ttl: int = 3600 # 1小时\n max_cache_size: int = 100 * 1024 * 1024 # 100MB\n cache_retention_days: int = 7\n \n # 日志配置\n log_level: str = \"INFO\"\n log_file: Path = project_root / \"logs\" / \"aidocs.log\"\n \n # 模板配置\n default_template: str = \"default.md\"\n template_extensions: List[str] = [\".md\", \".txt\", \".html\"]\n \n # GUI配置\n window_width: int = 1200\n window_height: int = 800\n theme: str = \"light\"\n \n def __init__(self, **kwargs):\n super().__init__(**kwargs)\n # 初始化时设置数据库URL\n self.database_url = f\"sqlite:///{self.database_dir}/aidocs.db\"\n self.async_database_url = f\"sqlite+aiosqlite:///{self.database_dir}/aidocs.db\"\n \n # 创建必要的目录\n self.create_directories()\n \n def create_directories(self):\n \"\"\"创建必要的目录\"\"\"\n directories = [\n self.data_dir,\n self.documents_dir,\n self.templates_dir,\n self.database_dir,\n self.cache_dir,\n self.search_index_dir,\n self.project_root / \"logs\"\n ]\n \n for directory in directories:\n directory.mkdir(parents=True, exist_ok=True)\n \n def get_database_url(self, async_mode: bool = False) -> str:\n \"\"\"获取数据库连接URL\"\"\"\n if async_mode:\n return self.async_database_url\n return self.database_url\n \n def get_documents_path(self) -> Path:\n \"\"\"获取文档存储路径\"\"\"\n return self.documents_dir\n \n def get_templates_path(self) -> Path:\n \"\"\"获取模板存储路径\"\"\"\n return self.templates_dir\n \n def is_supported_format(self, file_path: str) -> bool:\n \"\"\"检查文件格式是否支持\"\"\"\n return Path(file_path).suffix.lower() in self.supported_formats\n \n def get_ai_config(self) -> dict:\n \"\"\"获取AI配置\"\"\"\n return {\n \"api_key\": self.deepseek_api_key,\n \"api_base\": self.deepseek_api_base,\n \"model\": self.deepseek_model\n }\n \n class Config:\n \"\"\"Pydantic配置\"\"\"\n env_file = \".env\"\n env_file_encoding = \"utf-8\"\n case_sensitive = False\n\n\n# 创建全局配置实例\nsettings = Settings()\n\n\n# 时间维度配置\nTIME_DIMENSIONS = {\n \"year\": {\"format\": \"%Y\", \"display\": \"年度\"},\n \"month\": {\"format\": \"%Y-%m\", \"display\": \"月度\"},\n \"week\": {\"format\": \"%Y-W%W\", \"display\": \"周度\"},\n \"day\": {\"format\": \"%Y-%m-%d\", \"display\": \"日期\"},\n}\n\n# 专业维度配置\nPROFESSIONAL_DIMENSIONS = {\n \"人工智能\": {\n \"subcategories\": [\"机器学习\", \"深度学习\", \"自然语言处理\", \"计算机视觉\", \"强化学习\"],\n \"color\": \"#FF6B6B\",\n \"icon\": \"🤖\"\n },\n \"项目管理\": {\n \"subcategories\": [\"敏捷开发\", \"需求管理\", \"风险管理\", \"团队协作\", \"项目复盘\"],\n \"color\": \"#4ECDC4\",\n \"icon\": \"📊\"\n },\n \"DevOps\": {\n \"subcategories\": [\"持续集成\", \"监控运维\", \"质量工程\", \"容器化\", \"自动化\"],\n \"color\": \"#45B7D1\",\n \"icon\": \"🔧\"\n },\n \"技术研究\": {\n \"subcategories\": [\"新技术调研\", \"技术选型\", \"最佳实践\", \"技术方案\", \"问题解决\"],\n \"color\": \"#96CEB4\",\n \"icon\": \"🔬\"\n }\n}\n\n# 文档模板配置\nDOCUMENT_TEMPLATES = {\n \"技术研究笔记\": {\n \"file\": \"技术研究笔记模板.md\",\n \"category\": \"技术研究\",\n \"description\": \"用于记录技术研究过程和结果\"\n },\n \"项目复盘\": {\n \"file\": \"项目复盘模板.md\",\n \"category\": \"项目管理\",\n \"description\": \"项目结束后的复盘总结\"\n },\n \"日报\": {\n \"file\": \"日报模板.md\",\n \"category\": \"日常工作\",\n \"description\": \"每日工作记录和总结\"\n }\n}\n\n\n# 导出配置\n__all__ = [\"Settings\", \"settings\", \"TIME_DIMENSIONS\", \"PROFESSIONAL_DIMENSIONS\", \"DOCUMENT_TEMPLATES\"]\n"}}}}