refactor: Web 服务内嵌主进程 + 文档移到 docs/ 二级目录

1. Web 服务改为 threading 模式:
   - 新增 run_web_server(port) / stop_web_server() 函数
   - TUI 通过 from web_api import run_web_server 直接调用
   - 使用 werkzeug make_server 实现线程内优雅启动/停止
2. 构建脚本精简为单二进制:
   - 移除 trulymem-web 独立打包步骤
   - 添加 werkzeug 到 hidden-imports
3. 详细启动文档移到 docs/zh/quick_start.md
4. README 精简为概述,指向 docs/ 目录
This commit is contained in:
root
2026-04-28 10:50:24 +08:00
parent aefaea7b90
commit 4770b3b990
11 changed files with 526 additions and 777 deletions

View File

@ -22,25 +22,8 @@ pip install -r requirements.txt
echo "Cleaning previous builds..."
rm -rf build/dist build/__pycache__ 2>/dev/null || true
# 共用 hidden imports(TUI + Web 都需要的核心库)
CORE_HIDDEN=(
--hidden-import core
--hidden-import core.embedded_db
--hidden-import core.graph_client
--hidden-import core.tool_executor
--hidden-import core.tool_limiter
--hidden-import core.tools
--hidden-import core.tools.memory_tools
--hidden-import core.prompts
--hidden-import core.prompts.prompt_manager
--hidden-import core.server
--hidden-import core.client
--hidden-import core.migrate
--hidden-import core.activity_recorder
)
echo "================================"
echo "1️⃣ Build TUI: TrulyMEM"
echo "Building TrulyMEM (TUI + Web embedded)"
echo "================================"
python -m PyInstaller trulymem_entry.py \
--clean --onefile --console --name TrulyMEM \
@ -57,7 +40,19 @@ python -m PyInstaller trulymem_entry.py \
--hidden-import openai._client \
--hidden-import neo4j \
--hidden-import sqlite3 \
"${CORE_HIDDEN[@]}" \
--hidden-import core \
--hidden-import core.embedded_db \
--hidden-import core.graph_client \
--hidden-import core.tool_executor \
--hidden-import core.tool_limiter \
--hidden-import core.tools \
--hidden-import core.tools.memory_tools \
--hidden-import core.prompts \
--hidden-import core.prompts.prompt_manager \
--hidden-import core.server \
--hidden-import core.client \
--hidden-import core.migrate \
--hidden-import core.activity_recorder \
--hidden-import ui \
--hidden-import ui.app \
--hidden-import ui.login_screen \
@ -73,25 +68,13 @@ python -m PyInstaller trulymem_entry.py \
--hidden-import web_api \
--hidden-import flask \
--hidden-import flask_cors \
--hidden-import werkzeug \
--collect-all textual \
--noconfirm
echo "================================"
echo "2️⃣ Build Web: trulymem-web"
echo "================================"
python -m PyInstaller web_api.py \
--clean --onefile --console --name trulymem-web \
--add-data "templates:templates" \
--add-data "static:static" \
--hidden-import flask \
--hidden-import flask_cors \
"${CORE_HIDDEN[@]}" \
--noconfirm
echo "================================"
echo "===== Build Complete ====="
echo "Binary: dist/TrulyMEM"
echo "Binary: dist/trulymem-web"
ls -la dist/
deactivate