Spaces:
Paused
Paused
File size: 3,565 Bytes
c844813 f131a12 c844813 f131a12 c844813 f131a12 c844813 ef805fe c844813 3d13055 c844813 3d13055 c844813 37eaaad c844813 3d13055 c844813 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 |
#!/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()
|