98 lines
3.1 KiB
Python
98 lines
3.1 KiB
Python
|
|
# config.py
|
|||
|
|
import os
|
|||
|
|
import sys
|
|||
|
|
from pathlib import Path
|
|||
|
|
import json
|
|||
|
|
|
|||
|
|
def get_app_base_path():
|
|||
|
|
"""
|
|||
|
|
获取应用程序基础路径,兼容开发和打包环境
|
|||
|
|
"""
|
|||
|
|
if getattr(sys, 'frozen', False):
|
|||
|
|
# 如果是打包后的exe文件
|
|||
|
|
if hasattr(sys, '_MEIPASS'):
|
|||
|
|
# 临时解压目录(包含打包的资源文件)
|
|||
|
|
return Path(sys._MEIPASS)
|
|||
|
|
else:
|
|||
|
|
# exe文件所在目录
|
|||
|
|
return Path(sys.executable).parent
|
|||
|
|
else:
|
|||
|
|
# 开发环境:当前脚本所在目录
|
|||
|
|
return Path(__file__).parent
|
|||
|
|
|
|||
|
|
# 获取基础路径
|
|||
|
|
BASE_PATH = get_app_base_path()
|
|||
|
|
|
|||
|
|
# API 配置 - 硬编码
|
|||
|
|
QWEN_API_URL = os.getenv(
|
|||
|
|
"QWEN_API_URL",
|
|||
|
|
os.getenv("DASH_SCOPE_API_BASE", "https://dashscope.aliyuncs.com/compatible-mode/v1"),
|
|||
|
|
)
|
|||
|
|
QWEN_API_KEY = (
|
|||
|
|
os.getenv("DASHSCOPE_API_KEY")
|
|||
|
|
or os.getenv("DASH_SCOPE_API_KEY")
|
|||
|
|
or os.getenv("QWEN_API_KEY")
|
|||
|
|
or ""
|
|||
|
|
)
|
|||
|
|
QWEN_CHAT_MODEL = os.getenv("QWEN_CHAT_MODEL", "qwen-max")
|
|||
|
|
QWEN_EMBEDDING_MODEL = os.getenv("QWEN_EMBEDDING_MODEL", "text-embedding-v4")
|
|||
|
|
|
|||
|
|
# 项目路径配置 - 硬编码
|
|||
|
|
PROJECT_ROOT = BASE_PATH
|
|||
|
|
Default_PROJECT_ROOT = BASE_PATH / "PrjAttCtrlMng"
|
|||
|
|
|
|||
|
|
# 数据文件路径配置 - 硬编码
|
|||
|
|
VECTOR_DB_PATH = ""
|
|||
|
|
Default_VECTOR_DB_PATH = str(BASE_PATH / "satellite_rag.faiss")
|
|||
|
|
METADATA_PATH = ""
|
|||
|
|
Default_METADATA_PATH = str(BASE_PATH / "satellite_rag_metadata.json")
|
|||
|
|
GRAPH_DATA_PATH = ""
|
|||
|
|
Default_GRAPH_DATA_PATH = str(BASE_PATH / "code_knowledge_graph.json")
|
|||
|
|
|
|||
|
|
# 代码处理配置 - 硬编码
|
|||
|
|
MAX_CODE_LENGTH = 800
|
|||
|
|
CPP_EXTENSIONS = {'.c', '.cpp', '.h', '.hpp', '.tcc'}
|
|||
|
|
IGNORE_DIRS = {'build', 'cmake-build', '.git', 'vendor', 'lib', 'external', 'Debug'}
|
|||
|
|
|
|||
|
|
# 功能检索配置 - 硬编码
|
|||
|
|
KNOWLEDGE_GRAPH_PATH = ""
|
|||
|
|
Default_KNOWLEDGE_GRAPH_PATH = str(BASE_PATH / "project_code_knowledge_graph.json")
|
|||
|
|
TOP_K = 8
|
|||
|
|
MAX_HOPS = 3
|
|||
|
|
MIN_SIMILARITY_THRESHOLD = 0.6
|
|||
|
|
|
|||
|
|
# 辅助函数,用于实际使用时的动态路径获取
|
|||
|
|
def get_vector_db_path():
|
|||
|
|
"""获取向量数据库实际路径"""
|
|||
|
|
return VECTOR_DB_PATH or Default_VECTOR_DB_PATH
|
|||
|
|
|
|||
|
|
def get_metadata_path():
|
|||
|
|
"""获取元数据文件实际路径"""
|
|||
|
|
return METADATA_PATH or Default_METADATA_PATH
|
|||
|
|
|
|||
|
|
def get_graph_data_path():
|
|||
|
|
"""获取图谱数据实际路径"""
|
|||
|
|
return GRAPH_DATA_PATH or Default_GRAPH_DATA_PATH
|
|||
|
|
|
|||
|
|
def get_knowledge_graph_path():
|
|||
|
|
"""获取知识图谱数据实际路径"""
|
|||
|
|
return KNOWLEDGE_GRAPH_PATH or Default_KNOWLEDGE_GRAPH_PATH
|
|||
|
|
|
|||
|
|
# 导出路径信息,便于调试
|
|||
|
|
def print_path_info():
|
|||
|
|
"""打印路径信息,用于调试"""
|
|||
|
|
print("=== 配置文件路径信息 ===")
|
|||
|
|
print(f"BASE_PATH: {BASE_PATH}")
|
|||
|
|
print(f"PROJECT_ROOT: {PROJECT_ROOT}")
|
|||
|
|
print(f"Default_PROJECT_ROOT: {Default_PROJECT_ROOT}")
|
|||
|
|
print(f"Default_VECTOR_DB_PATH: {Default_VECTOR_DB_PATH}")
|
|||
|
|
print(f"Default_METADATA_PATH: {Default_METADATA_PATH}")
|
|||
|
|
print(f"Default_GRAPH_DATA_PATH: {Default_GRAPH_DATA_PATH}")
|
|||
|
|
print(f"Default_KNOWLEDGE_GRAPH_PATH: {Default_KNOWLEDGE_GRAPH_PATH}")
|
|||
|
|
print(f"是否打包环境: {getattr(sys, 'frozen', False)}")
|
|||
|
|
print("=======================")
|
|||
|
|
|
|||
|
|
# 如果直接运行此文件,打印路径信息
|
|||
|
|
if __name__ == "__main__":
|
|||
|
|
print_path_info()
|