## 背景 给这个项目点了 star,整体思路(LangGraph 意图识别 → FAISS 本地检索 → 兜底 Tavily 联网 → TTS → 数字人渲染)很完整。但在通读源码时发现目录结构对新读者不太友好,提几点重构建议供参考。 ## 当前结构的主要问题 1. **RAG 逻辑散在三处,重复实现**:`backend/agent/src/react_agent/tools.py`、`rag/rag_faiss_build.py` / `rag_faiss_query.py`、`faiss_frontend/app.py` 各自实现了一遍索引构建 / 查询。以后改一处容易漏另外两处。 2. **模板脚手架比业务代码还多**:`backend/agent/` 里是整套 LangGraph 官方模板(`langgraph.json`、`pyproject.toml`、`uv.lock`、`Makefile`、`LICENSE`、`README.md`),真正业务代码只有 `src/react_agent/` 下几个文件,噪音淹没了主体;且 `backend/requirements_backend.txt` 与 `pyproject.toml` 重复声明依赖。 3. **`faiss_frontend/` 定位尴尬**:一个独立 Flask 应用只做知识库管理,顶层又冒出一个"服务",建议并入后端统一管理。 4. **目录拼写错误 + 第三方代码 vendored**:`fronted/` 应为 `frontend/`;且 `fronted/LiveTalking-main/` 把 LiveTalking 整个第三方项目原样塞了进来(含它的 `.github`、`assets`、`results`),仓库 541 个文件里大半是别人的代码,建议改用 git submodule 放到 `third_party/`。 5. **`photos/` 20 张截图堆在顶层**,UUID 名 / "Pasted image" / 中文名混杂,建议移到 `docs/images/` 并规范命名。 ## 建议的新结构 ``` EduAvatar/ ├── README.md / LICENSE / .gitignore / .env.example ├── docs/images/ # photos/ 搬入,规范命名 ├── backend/ # 统一后端服务 │ ├── agent/ # LangGraph 业务代码(graph/tools/prompts/state) │ ├── rag/ # 索引构建 + 查询统一收敛到这里 │ └── admin/ # faiss_frontend 并入,做知识库管理 API ├── frontend/ # 修正拼写 └── third_party/LiveTalking # git submodule,不再 vendored ``` 附带:依赖声明收敛到一处(去掉重复的 requirements),模板脚手架精简到只留业务必需文件。 ## 预期收益 - 新人阅读成本明显降低,一眼看懂"后端 / 前端 / 第三方"的边界; - RAG 只有一份实现,避免三处改漏; - 仓库体积缩小,clone 更快。 如果作者认可这个方向,我可以按上面的方案提 PR。
Activity
github-actions commentedon Sep 27, 2026
你好!虽然你是主人,但我还是检测到你发了新 Issue!