mirror of
https://gitcode.com/JianFeeeee/TrulyMEM-TrueHumanMEM.git
synced 2026-09-21 09:28:19 +00:00
feat: 入口添加 --web 参数,二进制可直接启动 Web headless 服务
This commit is contained in:
@ -1,6 +1,9 @@
|
||||
#!/usr/bin/env python3
|
||||
import argparse
|
||||
import sys
|
||||
import os
|
||||
import signal
|
||||
import threading
|
||||
from pathlib import Path
|
||||
|
||||
# 用户配置文件始终放在用户目录
|
||||
@ -30,21 +33,54 @@ from ui import GraphMemoryApp
|
||||
|
||||
|
||||
def main():
|
||||
backend_server = BackendServer(
|
||||
db_path=str(DB_PATH),
|
||||
use_embedded_db=True,
|
||||
config_file=str(CONFIG_PATH)
|
||||
)
|
||||
backend_server.start()
|
||||
|
||||
app = GraphMemoryApp(backend_server=backend_server, config_file=str(CONFIG_PATH))
|
||||
|
||||
try:
|
||||
app.run()
|
||||
except KeyboardInterrupt:
|
||||
print("\n退出")
|
||||
finally:
|
||||
parser = argparse.ArgumentParser(description='TrulyMEM - True Human Memory')
|
||||
parser.add_argument('--web', action='store_true', help='以 Web 服务模式启动(headless,不启动 TUI)')
|
||||
parser.add_argument('--port', type=int, default=4096, help='Web 服务端口(默认 4096)')
|
||||
args = parser.parse_args()
|
||||
|
||||
if args.web:
|
||||
# Web headless 模式
|
||||
from web_api import run_web_server, stop_web_server
|
||||
|
||||
backend_server = BackendServer(
|
||||
db_path=str(DB_PATH),
|
||||
use_embedded_db=True,
|
||||
config_file=str(CONFIG_PATH)
|
||||
)
|
||||
backend_server.start()
|
||||
|
||||
print(f"TrulyMEM Web 服务启动在 http://0.0.0.0:{args.port}")
|
||||
run_web_server(port=args.port, host='0.0.0.0')
|
||||
|
||||
# 阻塞主线程直到收到信号
|
||||
shutdown_event = threading.Event()
|
||||
def _handle_signal(signum, frame):
|
||||
print("\n收到停止信号,正在关闭...")
|
||||
shutdown_event.set()
|
||||
signal.signal(signal.SIGINT, _handle_signal)
|
||||
signal.signal(signal.SIGTERM, _handle_signal)
|
||||
|
||||
shutdown_event.wait()
|
||||
stop_web_server()
|
||||
backend_server.shutdown()
|
||||
print("TrulyMEM Web 服务已停止")
|
||||
else:
|
||||
# TUI 模式(默认)
|
||||
backend_server = BackendServer(
|
||||
db_path=str(DB_PATH),
|
||||
use_embedded_db=True,
|
||||
config_file=str(CONFIG_PATH)
|
||||
)
|
||||
backend_server.start()
|
||||
|
||||
app = GraphMemoryApp(backend_server=backend_server, config_file=str(CONFIG_PATH))
|
||||
|
||||
try:
|
||||
app.run()
|
||||
except KeyboardInterrupt:
|
||||
print("\n退出")
|
||||
finally:
|
||||
backend_server.shutdown()
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
|
||||
Reference in New Issue
Block a user