55 lines
3.3 KiB
Markdown
55 lines
3.3 KiB
Markdown
# AGENTS.md —— 协作约束(科研审稿模块)
|
||||
|
|
|
|||
|
|
## 项目背景
|
|||
|
|
|
|||
|
|
本项目(PlantAI-rag-new)是植物基因组学文献知识工作台,拥有自研 RAG 与知识库
|
|||
|
|
(Qdrant + Neo4j + vstore)。2026-10 起新增「科研投稿与智能审稿助手」功能
|
|||
|
|
(审稿周期/期刊分析/期刊推荐/投稿前自审/审稿意见辅助/格式检查)。
|
|||
|
|
|
|||
|
|
## 审稿模块(review_service)约束 —— 必须遵守
|
|||
|
|
|
|||
|
|
1. **所有审稿相关新代码只允许写在 `review_service/` 目录下新增**。
|
|||
|
|
- 服务自身:FastAPI 独立进程,端口 8100(模式同 `paper_writer_service` 8097 / `bioflow_service` 8098)。
|
|||
|
|
- 环境变量前缀统一 `REVIEW_`;LLM 凭据复用 `DOCGEN_LLM_*` 裸键(回退链见 `review_service/app/services/llm.py`)。
|
|||
|
|
2. **BFF(`sdk/`)层只允许条件注册代理路由**:
|
|||
|
|
- 允许的全部改动 = `sdk/app/config.py` 增加 `review_enabled` / `review_service_url` 等开关键
|
|||
|
|
+ `sdk/app/main.py` 按开关 `include_router(review_proxy.router)`
|
|||
|
|
+ 新文件 `sdk/app/routers/review_proxy.py`(反代实现)。
|
|||
|
|
- **严禁**修改 sdk 下其他 router/service/db 的任何既有逻辑。
|
|||
|
|
3. **严禁修改现有 RAG 核心与既有服务代码**,包括但不限于:
|
|||
|
|
- `agent/`(qa 8091 / methodology 8092 / legacy-rag 8093)
|
|||
|
|
- `vstore/`(8094,审稿服务只经 HTTP 只读消费其 `/api/vstore/*` 接口)
|
|||
|
|
- `paper_writer_service/`、`bioflow_service/`、`bioflow_kernel/`
|
|||
|
|
- `ui/`(前端入口另行按 UI_SPEC 流程评审)
|
|||
|
|
- `knowledge/`、`kb-libraries/`、`tooling/`(依赖锁另议)
|
|||
|
|
4. **依赖纪律**:审稿服务只使用统一 venv(`tooling/requirements.lock`)中已有的库
|
|||
|
|
(fastapi / httpx / pydantic-settings 等)。如确需新增全局依赖,
|
|||
|
|
须先更新 `tooling/requirements.lock` 并经人工确认。
|
|||
|
|
5. **上游对接只读**:PDF 解析走 vstore 8094(`POST /api/vstore/ingest` +
|
|||
|
|
`GET/DELETE /api/vstore/documents/{id}`);LLM 走 DeepSeek OpenAI 兼容接口;
|
|||
|
|
后续期刊数据/期刊推荐等子功能同样以新 service + 新路由在 `review_service/` 内扩展。
|
|||
|
|
6. **format_check 例外**:format_check 允许用 pymupdf 本地解档获取版式元数据
|
|||
|
|
(字体/边距/行距/页数),因为 vstore 只回文本不返回版式信息。正文提取仍走 vstore。
|
|||
|
|
|
|||
|
|
## 目录速览(审稿模块)
|
|||
|
|
|
|||
|
|
```
|
|||
|
|
review_service/
|
|||
|
|
├── app/main.py # FastAPI 入口(/health + 挂载业务路由)
|
|||
|
|
├── app/config.py # pydantic-settings(REVIEW_ 前缀)
|
|||
|
|
├── app/routers/presubmit.py # POST /api/review/presubmit(自审稿报告)
|
|||
|
|
├── app/routers/format_check.py # POST /api/review/format-check(版式与规范检查)
|
|||
|
|
├── app/services/llm.py # DeepSeek httpx 封装(complete_text/complete_json)
|
|||
|
|
├── app/services/paper_parse.py # PDF → 纯文本(经 vstore 解析接口)
|
|||
|
|
├── app/services/format_check.py# 版式规则引擎(pymupdf/docx 本地解档 + 规则检查)
|
|||
|
|
├── restart.sh # 8100 重启脚本
|
|||
|
|
└── pytest.ini
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 启动
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cd review_service && bash restart.sh # 默认 8100,venv 从 ../plantai-rag-new-venv 推导
|
|||
|
|
# BFF 开关:sdk/.env 加 REVIEW_ENABLED=1 后 bff_restart(反代 /api/review/*)
|
|||
|
|
```
|