start_langgraph.py
3.04 KB
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
#!/usr/bin/env python3
"""
LangGraph 服务启动脚本
"""
import subprocess
import sys
import os
import time
from pathlib import Path
def check_dependencies():
"""检查依赖是否安装"""
try:
import langgraph
import langchain
import langchain_openai
print("✅ 所有依赖已安装")
return True
except ImportError as e:
print(f"❌ 缺少依赖: {e}")
print("请运行: pip install -r requirements.txt")
return False
def start_langgraph_server():
"""启动 LangGraph 服务器"""
print("🚀 启动 LangGraph 服务器...")
# 检查 langgraph.json 是否存在
if not Path("langgraph.json").exists():
print("❌ 未找到 langgraph.json 配置文件")
return False
try:
# 启动 LangGraph 开发服务器
# 使用 --host 0.0.0.0 允许通过 IP 地址访问
# cmd = ["python", "-m", "langgraph_cli", "dev", "--port", "2025"]
cmd = ["python", "-m", "langgraph_cli", "dev", "--host", "0.0.0.0", "--port", "2025"]
print(f"执行命令: {' '.join(cmd)}")
# 强制使用 UTF-8 编码,避免 GBK 解码错误
try:
sys.stdout.reconfigure(encoding="utf-8", errors="replace")
sys.stderr.reconfigure(encoding="utf-8", errors="replace")
except Exception:
pass
# 设置环境变量确保子进程使用 UTF-8
env = os.environ.copy()
env["PYTHONIOENCODING"] = "UTF-8"
env["PYTHONUTF8"] = "1"
process = subprocess.Popen(
cmd,
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT,
text=True,
encoding="utf-8",
errors="replace",
bufsize=0,
env=env
)
print("🌐 LangGraph 服务器已启动")
print("📡 服务地址: http://0.0.0.0:2025")
print("🔌 WebSocket: ws://0.0.0.0:2025/ws")
print("📚 API 文档: http://0.0.0.0:2025/docs")
print("💡 提示: 可通过本机 IP 地址访问,例如: http://192.168.1.44:2025")
print("\n按 Ctrl+C 停止服务器\n")
# 实时输出日志
for line in process.stdout:
print(line.rstrip())
except KeyboardInterrupt:
print("\n🛑 正在停止服务器...")
process.terminate()
process.wait()
print("✅ 服务器已停止")
except Exception as e:
print(f"❌ 启动失败: {e}")
return False
return True
def main():
"""主函数"""
print("=" * 50)
print("🎯 LangGraph DEEPSEEK Agent 启动器")
print("=" * 50)
# 检查依赖
if not check_dependencies():
sys.exit(1)
# 检查环境变量
if not os.getenv("OPENAI_API_KEY"):
print("⚠️ 警告: 未设置 OPENAI_API_KEY 环境变量")
print("请在 .env 文件中设置或直接设置环境变量")
# 启动服务器
start_langgraph_server()
if __name__ == "__main__":
main()