Files
rag_agent/RAG-TEST-TOOLS/config.py

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