# -*- coding: utf-8 -*- """ RAG 服务配置文件 支持与 jar 包同级目录部署 使用本地 Ollama 进行向量化 """ import os import sys # 服务配置 HOST = "0.0.0.0" PORT = 5000 # Ollama 配置(使用本地 Ollama 生成向量) OLLAMA_URL = "http://localhost:11434" OLLAMA_EMBED_MODEL = "nomic-embed-text" # 你已经下载的嵌入模型 # 获取程序运行目录(支持打包后部署) # 当与 jar 包同级部署时,BASE_DIR 就是 rag-python 文件夹 if getattr(sys, 'frozen', False): # 如果是打包后的 exe BASE_DIR = os.path.dirname(sys.executable) else: # 正常 Python 运行 BASE_DIR = os.path.dirname(os.path.abspath(__file__)) # 文件夹配置 - 都在 rag-python 目录下 KNOWLEDGE_DIR = os.path.join(BASE_DIR, "knowledge_docs") # 知识库文档目录 INDEX_DIR = os.path.join(BASE_DIR, "index_data") # 索引存储目录 UPLOAD_DIR = os.path.join(BASE_DIR, "uploads") # 上传文件临时目录 # 确保目录存在 for dir_path in [KNOWLEDGE_DIR, INDEX_DIR, UPLOAD_DIR]: os.makedirs(dir_path, exist_ok=True) # 支持的文件类型 SUPPORTED_EXTENSIONS = {'.txt', '.md', '.pdf', '.docx', '.doc'} # 文本分块配置 CHUNK_SIZE = 300 # 每个文本块的字符数(减小以适应 nomic-embed-text 的 2048 token 限制) CHUNK_OVERLAP = 30 # 文本块之间的重叠字符数 # 检索配置 TOP_K = 5 # 返回最相关的文档数量 # 打印配置信息 print(f"[配置] 程序目录: {BASE_DIR}") print(f"[配置] 知识库目录: {KNOWLEDGE_DIR}") print(f"[配置] 索引目录: {INDEX_DIR}") print(f"[配置] Ollama地址: {OLLAMA_URL}") print(f"[配置] 嵌入模型: {OLLAMA_EMBED_MODEL}")