- paper_writer_service(8097):FastAPI + MCP streamable-http 单端点,9 工具
(propose_paper_outline/write_paper_section/get_paper_progress/search_refs/
revise_paper_section/revise_paper/get_paper/complete_paper/cancel_paper),
SQLite 三表(papers/paper_sections/citations,WAL),GB/T 7714 引用协议
- BFF:services/paper/{mcp_client,agent}.py(裸 JSON-RPC 客户端 + 规则状态机)、
routers/paper.py、schemas.py 4 个 Paper*Block + ArtifactBlock 加 paper_id/citation_count、
config.py 开关、main.py 条件注册、docgen.py 抽 insert_artifact 公共 helper
- 前端:intent.js paperIntent 纯函数、Composer docgen 分支 sub-route、sendPaper/轮询、
PaperBriefCard/PaperOutlineCard/PaperProgressCard、DocPane cite-chip
- deploy/paper_restart.sh + toggle_paper.sh;compile_sdk.sh 白名单追加 paper 文件
- tests/paper 26 条(工具逻辑 + MCP 协议 + BFF 状态机 + 块 schema + 前端 intent 单测)
35 lines
1.3 KiB
Bash
Executable File
35 lines
1.3 KiB
Bash
Executable File
#!/usr/bin/env bash
|
||
# restart.sh —— PAPER 服务重启脚本(8097;不触碰生产服务 8090/8091/8092/8093/8094/8098)。
|
||
# 零硬编码:venv/python/仓库路径全部从脚本位置推导或环境变量覆盖。
|
||
# 用法: restart.sh [python] [port]
|
||
set -euo pipefail
|
||
|
||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||
REPO_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
|
||
PYTHON="${1:-$REPO_ROOT/../plantai-rag-new-venv/bin/python}"
|
||
PORT="${2:-8097}"
|
||
HOST="${PAPER_BIND_HOST:-127.0.0.1}"
|
||
|
||
[[ -x "$PYTHON" ]] || { echo "Python not found: $PYTHON" >&2; exit 2; }
|
||
|
||
APP_MODULE="app.main:app"
|
||
if command -v lsof >/dev/null 2>&1; then
|
||
PID="$(lsof -ti tcp:"$PORT" -sTCP:LISTEN 2>/dev/null || true)"
|
||
if [[ -n "$PID" ]]; then
|
||
echo "[restart] 停止 $PORT 旧进程 pid=$PID"
|
||
kill $PID 2>/dev/null || true
|
||
sleep 2
|
||
fi
|
||
fi
|
||
|
||
cd "$SCRIPT_DIR"
|
||
# 加载运行时配置(.env 不入 git):services/paper/llm.py 直接读 DOCGEN_LLM_* 裸键,
|
||
# search.py 读 VSTORE_BASE_URL——需 set -a 显式导出(同 bioflow_service/restart.sh 先例)。
|
||
set -a
|
||
[ -f .env ] && source .env
|
||
set +a
|
||
echo "[restart] 启动论文撰写服务 :$PORT($PYTHON)"
|
||
nohup "$PYTHON" -m uvicorn "$APP_MODULE" --host "$HOST" --port "$PORT" \
|
||
> "$SCRIPT_DIR/paper.log" 2>&1 &
|
||
echo "[restart] 完成;日志 paper_writer_service/paper.log"
|