| domain | ||||
|---|---|---|---|---|
| tags | ||||
| datasets |
|
|||
| models | ||||
| fullWidth | true | |||
| header | mini | |||
| license | Apache License 2.0 |
Read · Organize · Write — 面向论文阅读、知识整理与写作的沉浸式工作台;本目录为 ModelScope 创空间 / Docker 一体部署形态(单端口 FastAPI + 前端静态资源)。
创空间卡片与 YAML 说明见 魔搭创空间文档;上方 front matter 由平台读取,请勿随意删除。
| 主题 | 说明 |
|---|---|
| 静态资源 | frontend/index.html 为 Vite 入口,须纳入版本控制。部署时执行 cd frontend && npm run build,frontend/dist/ 由 Dockerfile 多阶段构建拷入后端 static/,由 FastAPI 挂载;无需手工复制单文件 index。 |
| 环境变量 | 在创空间 设置 → 环境变量 配置 DEEPSEEK_API_KEY、DEEPSEEK_API_BASE;PDF 云解析需 MINERU_API_TOKEN(或 MINERU_API_KEY),无需在镜像内安装 MinerU CLI。 |
| 发布报错 | 若日志已出现 GET / [200]、GET /api/health [200],多为健康检查超时或构建偶发,运行时往往正常;请查看完整构建 / 运行日志是否有 Python 或 npm run build 错误,可重试发布或重启实例。 |
| 代码更新 | 本地在本仓库提交后 git push origin <branch>;或在创空间 设置 / 版本管理 拉取 / 重新部署。 |
Clone(HTTP)
git clone https://www.modelscope.cn/studios/czx0v0/AtomicLab2.git可选:GitHub 镜像 — origin 以魔搭为准。添加第二远程:git remote add github https://github.com/<org>/<repo>.git,同一提交执行 git push origin … 与 git push github …(示例分支名 master / main 自行对齐)。远程 URL 不要写入令牌;用 HTTPS + 凭据管理器或 gh auth。
| 路径 | 职责 |
|---|---|
app.py |
入口;默认 UVICORN_PORT=7860 |
aether_engine/ |
FastAPI、RAG、服务层 |
frontend/ |
Vite + React,构建产物进 static/ |
docs/ |
产品/技术报告、变更记录、对内对外短报告 |
scripts/eval/ |
离线批量评测(context_precision、faithfulness 等) |
方式 A — Docker(推荐,最接近创空间)
docker build -t atomiclab .
docker run --rm -p 7860:7860 --env-file .env atomiclab浏览器访问 http://localhost:7860。
方式 B — 前后端分进程
pip install -r aether_engine/requirements.txt
python app.pycd frontend && npm install && npm run dev前端开发服务器默认 http://localhost:5173(代理至后端端口,与 app.py 监听一致即可)。
应用启动时会自动调用 GET /api/documents 回填「文献库」列表;本地模式下只要 data/documents/ 未删除,刷新页面或重启后端后文献仍可恢复显示。
在文献库点击「确认移除」时,Local 文献会同步调用 DELETE /api/documents/:id 删除后端文件与元数据(笔记保留,可继续 CRUD)。
- 本地运行:项目根目录
modelspace-deploy/.env - 创空间运行:控制台「设置 -> 环境变量」
- 建议至少配置:
DEEPSEEK_API_KEY、DEEPSEEK_API_BASE
| 变量 / 参数 | 说明 |
|---|---|
SECTION_SUMMARY_MODE |
first_paragraph(默认,首节文本,无额外 LLM)或 llm(每章在 SSE chunk 后再发 summary 事件,用 DeepSeek 生成短摘要;无 Key 或失败时仍为首段)。 |
POST /api/parse-document |
Query:section_summary_mode=first_paragraph 或 llm,覆盖单次请求;前端左栏「章节摘要」下拉持久化到 localStorage 并传给该接口。 |
- 切换/刷新不重复请求 MinerU:解析结果(
parsedMarkdown+parsedSections)已落地到浏览器 IndexedDB(localDocumentStore),文献切换优先从本地恢复。 - 文献库支持「重解析」:对本地文献可一键清理该文献的本地解析缓存并重新触发解析,用于纠错与手动刷新。
- 图谱 doc_id 一致性修复:上传后索引写入使用真实后端
doc.id(不再使用文件名拼接 id),确保 Organize 图谱可稳定看到document/section/note节点。 - Demo 种子笔记可同步后端:Demo 加载时
demo_seed支持幂等 upsert 到后端 notes,便于图谱与前端章节树一致。
创空间内会检测 /mnt/workspace 并默认从 ModelScope 拉取 paraphrase-multilingual-MiniLM-L12-v2(见 aether_engine/service/embedding.py)。本机直接运行 python app.py 时,若未设置下面开关,则 sentence-transformers 会按模型名访问 Hugging Face Hub,日志里可能出现对 huggingface.co 的请求;网络不通或超时时,可改用魔搭源:
| 变量 | 说明 |
|---|---|
EMBEDDING_USE_MODELSCOPE=1 |
启用后从 ModelScope snapshot_download 同一模型到本地再加载,避免直连 HF。 |
MODELSCOPE_CACHE |
可选;ModelScope 缓存目录,未设时默认用户目录下 .cache/modelscope。 |
需已安装 modelscope(pip install modelscope)。创空间无需手动设 EMBEDDING_USE_MODELSCOPE。
search/search/global/ 写作检索默认启用全量多通道融合:- 文档向量 + 文档 BM25 + 笔记向量 + 笔记 BM25 + 截图 OCR
- GraphRAG 1-hop + 2-hop + 跨类型 doc-note 扩展
- 不再通过
SEARCH_ENABLE_GRAPH_RAG/GRAPH_RAG_MODE环境变量切换检索路径。 ATOMIC_ENGINE仍可用于原子蒸馏/解构实验(默认default)。
| 内容 | 链接 |
|---|---|
| 文档导航与阅读顺序 | docs/README.md |
| 阶段变更 | docs/CHANGELOG.md |
| 技术长文(含 §3.7.1 离线评测指标) | docs/TECHNICAL_REPORT.md |
| 一页式深读索引 | docs/PROJECT_DEEP_DIVE.md |
| 评测脚本 | scripts/eval/run_evaluation.py · scripts/eval/README.md |
- 阅读:PDF 高亮与批注、多视图(PDF / Markdown / 章节)、MinerU 云端解析、会话内 DocumentRAG + BM25 自动索引。
- 整理:原子笔记(Axiom / Method / Boundary)、图谱与 GraphRAG、笔记手动连边、ArXiv 发现(CJK 关键词英译后检索)。
- 写作:行内指令与写作辅助、引用解析(Crossref / Semantic Scholar)、全局 Copilot 与工具调用。
- 会话:
X-Session-ID隔离;POST /api/demo/load注入 Demo。边界与 API 清单见docs/REPORT_INTERNAL.md。
- Mission Control:截稿时间线、跳转 Organize / 写作 / 助手预填 —
docs/mission-control.md。 - 助手:Markdown、GFM 表格、KaTeX;可点击文献引用
[n]。 - 双库分工:服务端 Chroma + BM25 + 图谱承担语义检索;浏览器 IndexedDB /
parseCacheByDocId存高亮、解析缓存等本地元数据(详见docs/CHANGELOG.md)。 - MinerU:已配置
MINERU_API_TOKEN/MINERU_API_KEY时走云 API;未配置时可回退本地 CLI(若已安装)。 - 图谱跳转行为:
document/section/note/atomic_note节点支持定位到阅读视图;tag/entity为语义节点,不做 PDF 直接跳转,避免“缺少文档标识”误报。 - Demo 切换策略:加载 Demo 不再执行全局
startOver,避免清空本地文献缓存;A→Demo→A 切换优先本地恢复,不重复触发 MinerU。