Skip to content

建议重构目录结构:收敛 RAG 三处重复实现,剥离模板脚手架与 vendored 第三方代码 #11

Open

Description

@gdemoni

背景

给这个项目点了 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

  1. github-actions commented on Sep 27, 2026

    @github-actions

    你好!虽然你是主人,但我还是检测到你发了新 Issue!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions