Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| """ | |
| 知识图谱检索启动脚本 | |
| 负责配置环境并运行 main_graphrag.py | |
| 使用方法: | |
| python run_graphrag.py | |
| """ | |
| import os | |
| import sys | |
| import subprocess | |
| print("="*60) | |
| print("🚀 启动知识图谱检索 (GraphRAG)") | |
| print("="*60) | |
| # ============================================================ | |
| # 1. 配置环境 | |
| # ============================================================ | |
| def setup_environment(): | |
| """配置环境变量""" | |
| print("\n⚙️ 步骤 1/2: 配置环境变量...") | |
| # 检查.env文件 | |
| if os.path.exists(".env"): | |
| print(" ✅ 发现 .env 文件,加载配置...") | |
| try: | |
| from dotenv import load_dotenv | |
| load_dotenv() | |
| print(" ✅ 环境变量已加载") | |
| except ImportError: | |
| print(" ⚠️ python-dotenv 未安装,跳过 .env 加载") | |
| else: | |
| print(" ℹ️ 未找到 .env 文件") | |
| # 显示环境变量状态 | |
| print("\n 📋 环境变量状态:") | |
| print(f" • TAVILY_API_KEY: {'✅ 已设置' if os.environ.get('TAVILY_API_KEY') else '⚠️ 未设置'}") | |
| print(f" • NOMIC_API_KEY: {'✅ 已设置' if os.environ.get('NOMIC_API_KEY') else '⚠️ 未设置'}") | |
| # 添加当前目录到 Python 路径 | |
| current_dir = os.getcwd() | |
| if current_dir not in sys.path: | |
| sys.path.insert(0, current_dir) | |
| print(f"\n ✅ 已添加到 Python 路径: {current_dir}") | |
| print("\n 💡 注意: 新增的多模态功能需要Pillow库,请确保已安装") | |
| # ============================================================ | |
| # 2. 运行 main_graphrag.py | |
| # ============================================================ | |
| def run_main_graphrag(): | |
| """运行 main_graphrag.py""" | |
| print("\n🚀 步骤 2/2: 运行 main_graphrag.py...") | |
| print("="*60) | |
| # 检查文件是否存在 | |
| if not os.path.exists("main_graphrag.py"): | |
| print("\n❌ 错误: 未找到 main_graphrag.py 文件") | |
| print(" 请确保在正确的目录中运行此脚本") | |
| return False | |
| print("\n🔄 启动 GraphRAG...\n") | |
| try: | |
| # 运行 main.py | |
| result = subprocess.run( | |
| [sys.executable, "main_graphrag.py"], | |
| capture_output=False, # 实时显示输出 | |
| ) | |
| if result.returncode == 0: | |
| print("\n" + "="*60) | |
| print("✅ 运行成功!") | |
| print("="*60) | |
| return True | |
| else: | |
| print("\n" + "="*60) | |
| print(f"❌ 运行失败 (返回码: {result.returncode})") | |
| print("="*60) | |
| return False | |
| except KeyboardInterrupt: | |
| print("\n\n⚠️ 用户中断执行") | |
| return False | |
| except Exception as e: | |
| print(f"\n❌ 运行时错误: {e}") | |
| return False | |
| # ============================================================ | |
| # 主函数 | |
| # ============================================================ | |
| def main(): | |
| """主执行流程""" | |
| try: | |
| # 1. 配置环境 | |
| setup_environment() | |
| # 2. 运行 main_graphrag.py | |
| success = run_main_graphrag() | |
| if success: | |
| print("\n💡 提示: 生成的知识图谱保存在配置的路径中") | |
| except KeyboardInterrupt: | |
| print("\n\n⚠️ 用户中断执行") | |
| except Exception as e: | |
| print(f"\n❌ 执行过程中出错: {e}") | |
| import traceback | |
| traceback.print_exc() | |
| if __name__ == "__main__": | |
| main() | |