# jinglinsen/code_know-ai architecture

> Architecture diagram of the GitHub repository jinglinsen/code_know-ai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-29). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/jinglinsen/code_know-ai
- Repository: https://github.com/jinglinsen/code_know-ai

## Overview

码悟 AI 是一个面向 GitHub 代码库的问答与 Wiki 生成系统。用户在前端提交仓库链接后，后端获取文件、切片并建立向量索引，同时保存仓库元数据并异步生成 Wiki；用户提问时，RAG 工作流并行检索代码片段与 Wiki，再由 LLM 生成带源码引用的回答。前端还支持仓库列表、问答历史、Wiki 浏览与重生成、仓库删除。连线依据 README 和已提供源码；未提供的前端 API 封装及部分实现细节不展开。

Main entry points: [`apps/backend/main.py`](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/main.py) (FastAPI 服务), [`apps/backend/embeddings.py`](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/embeddings.py) (嵌入与向量), [`apps/backend/database.py`](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/database.py) (PostgreSQL), [`apps/backend/rag.py`](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/rag.py) (RAG 工作流)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_frontend["交互界面"]
  node_web["交互面板<br/>[page.tsx]"]
  node_api["FastAPI 服务<br/>[main.py]"]
end

subgraph group_indexing["代码索引"]
  node_loader["仓库获取<br/>[repo_loader.py]"]
  node_chunker["代码切片<br/>[chunker.py]"]
  node_embeddings["嵌入与向量<br/>[embeddings.py]"]
end

subgraph group_qa["问答与 Wiki"]
  node_rag["RAG 工作流<br/>[rag.py]"]
  node_wiki_generator["Wiki 生成<br/>[wiki_generator.py]"]
end

subgraph group_storage["持久化"]
  node_vectors[("ChromaDB")]
  node_database[("PostgreSQL<br/>[database.py]")]
  node_wiki_disk["Wiki 文件"]
end

node_user(("用户"))
node_embed_provider["嵌入模型服务"]
node_llm["LLM 服务"]
node_github["GitHub<br/>external system"]

node_user -->|"提交请求"| node_web
node_web -->|"调用接口"| node_api
node_api -->|"获取仓库"| node_loader
node_loader -->|"读取文件"| node_github
node_api -->|"切分文件"| node_chunker
node_api -->|"存储切片"| node_embeddings
node_embeddings -->|"生成向量"| node_embed_provider
node_embeddings -->|"写入向量"| node_vectors
node_api -->|"保存元数据"| node_database
node_api -->|"后台生成"| node_wiki_generator
node_wiki_generator -->|"生成页面"| node_llm
node_wiki_generator -->|"写入页面"| node_wiki_disk
node_wiki_generator -->|"保存 Wiki"| node_database
node_api -->|"提交问题"| node_rag
node_rag -->|"嵌入并检索"| node_embeddings
node_rag -->|"读取 Wiki"| node_database
node_rag -->|"生成回答"| node_llm
node_api -->|"保存问答与读取记录"| node_database
node_api -->|"删除仓库向量"| node_embeddings
node_api -->|"删除仓库记录"| node_database
node_api -->|"重新获取文件"| node_loader
node_web -->|"浏览历史与 Wiki"| node_api

click node_web "https://github.com/jinglinsen/code_know-ai/blob/main/apps/web_UI/app/page.tsx"
click node_api "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/main.py"
click node_loader "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/repo_loader.py"
click node_chunker "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/chunker.py"
click node_embeddings "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/embeddings.py"
click node_rag "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/rag.py"
click node_wiki_generator "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/wiki_generator.py"
click node_database "https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/database.py"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_web,node_api toneBlue
class node_loader,node_chunker,node_embeddings toneAmber
class node_rag,node_wiki_generator toneMint
class node_vectors,node_database,node_wiki_disk toneRose
class node_user,node_embed_provider,node_llm,node_github toneIndigo
```

## Components

### 交互界面

- [交互面板](https://github.com/jinglinsen/code_know-ai/blob/main/apps/web_UI/app/page.tsx): `apps/web_UI/app/page.tsx`
- [FastAPI 服务](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/main.py): `apps/backend/main.py`

### 代码索引

- [仓库获取](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/repo_loader.py): `apps/backend/repo_loader.py`
- [代码切片](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/chunker.py): `apps/backend/chunker.py`
- [嵌入与向量](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/embeddings.py): `apps/backend/embeddings.py`

### 问答与 Wiki

- [RAG 工作流](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/rag.py): `apps/backend/rag.py`
- [Wiki 生成](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/wiki_generator.py): `apps/backend/wiki_generator.py`

### 持久化

- **ChromaDB**
- [PostgreSQL](https://github.com/jinglinsen/code_know-ai/blob/main/apps/backend/database.py): `apps/backend/database.py`
- **Wiki 文件**

### Other components

- **用户**
- **嵌入模型服务**
- **LLM 服务**
- **GitHub**: external system

## Connections

- 用户 → 交互面板: 提交请求
- 交互面板 → FastAPI 服务: 调用接口
- FastAPI 服务 → 仓库获取: 获取仓库
- 仓库获取 → GitHub: 读取文件
- FastAPI 服务 → 代码切片: 切分文件
- FastAPI 服务 → 嵌入与向量: 存储切片
- 嵌入与向量 → 嵌入模型服务: 生成向量
- 嵌入与向量 → ChromaDB: 写入向量
- FastAPI 服务 → PostgreSQL: 保存元数据
- FastAPI 服务 → Wiki 生成: 后台生成
- Wiki 生成 → LLM 服务: 生成页面
- Wiki 生成 → Wiki 文件: 写入页面
- Wiki 生成 → PostgreSQL: 保存 Wiki
- FastAPI 服务 → RAG 工作流: 提交问题
- RAG 工作流 → 嵌入与向量: 嵌入并检索
- RAG 工作流 → PostgreSQL: 读取 Wiki
- RAG 工作流 → LLM 服务: 生成回答
- FastAPI 服务 → PostgreSQL: 保存问答与读取记录
- FastAPI 服务 → 嵌入与向量: 删除仓库向量
- FastAPI 服务 → PostgreSQL: 删除仓库记录
- FastAPI 服务 → 仓库获取: 重新获取文件
- 交互面板 → FastAPI 服务: 浏览历史与 Wiki
