Spaces:
Paused
Paused
File size: 2,671 Bytes
371a40c |
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 |
#!/usr/bin/env python3
"""
Colab环境依赖安装脚本
确保所有LangChain相关包都是最新版本,避免导入错误
"""
import subprocess
import sys
def install_package(package):
"""安装单个包"""
subprocess.check_call([sys.executable, "-m", "pip", "install", "-q", package])
def main():
print("="*70)
print("📦 Colab GraphRAG 依赖安装")
print("="*70)
# 关键包列表(指定版本以确保兼容性)
packages = [
# LangChain核心包(最新版本)
"langchain>=0.1.0",
"langchain-core>=0.1.52",
"langchain-community>=0.0.38",
"langchain-text-splitters>=0.0.1",
"langgraph>=0.0.40",
# Ollama支持
"langchain-ollama>=0.1.0",
# 向量数据库和嵌入
"chromadb>=0.4.22",
"sentence-transformers>=2.2.0",
# 文档处理
"tiktoken>=0.5.0",
"beautifulsoup4>=4.12.0",
"requests>=2.31.0",
# 网络搜索
"tavily-python>=0.3.0",
# 工具库
"python-dotenv>=1.0.0",
# GraphRAG特定
"networkx>=3.1",
"python-louvain>=0.16",
# PyTorch和Transformers
"torch>=2.0.0",
"transformers>=4.30.0",
]
print("\n🔄 开始安装依赖包...\n")
for i, package in enumerate(packages, 1):
try:
print(f"[{i}/{len(packages)}] 安装 {package}...")
install_package(package)
print(f" ✅ {package} 安装成功")
except Exception as e:
print(f" ❌ {package} 安装失败: {e}")
print("\n" + "="*70)
print("✅ 依赖安装完成!")
print("="*70)
# 验证关键导入
print("\n🔍 验证关键导入...")
imports_to_check = [
("langchain", "LangChain"),
("langchain_core", "LangChain Core"),
("langchain_community", "LangChain Community"),
("langchain_text_splitters", "LangChain Text Splitters"),
("chromadb", "ChromaDB"),
("sentence_transformers", "Sentence Transformers"),
("networkx", "NetworkX"),
]
all_ok = True
for module, name in imports_to_check:
try:
__import__(module)
print(f" ✅ {name}")
except ImportError as e:
print(f" ❌ {name}: {e}")
all_ok = False
if all_ok:
print("\n🎉 所有依赖验证通过!")
else:
print("\n⚠️ 部分依赖验证失败,请检查错误信息")
print("\n" + "="*70)
if __name__ == "__main__":
main()
|