EJ-pro/ChatFolio
GitHub: EJ-pro/ChatFolio
ChatFolio 是一个基于 GraphRAG 和 AST 解析的 AI 驱动代码分析平台,只需输入 GitHub URL 即可自动可视化代码依赖关系、与 AI 对话并生成高质量多语言 README 文档。
Stars: 2 | Forks: 1
```
██████╗██╗ ██╗ █████╗ ████████╗███████╗ ██████╗ ██╗ ██╗ ██████╗
██╔════╝██║ ██║██╔══██╗╚══██╔══╝██╔════╝██╔═══██╗██║ ██║██╔═══██╗
██║ ███████║███████║ ██║ █████╗ ██║ ██║██║ ██║██║ ██║
██║ ██╔══██║██╔══██║ ██║ ██╔══╝ ██║ ██║██║ ██║██║ ██║
╚██████╗██║ ██║██║ ██║ ██║ ██║ ╚██████╔╝███████╗██║╚██████╔╝
╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚═╝ ╚═════╝
```
**基于 AI 的智能仓库分析 · 自动化文档平台**
仅需一个 GitHub URL,即可可视化代码依赖关系,与 AI 对话,并自动生成高质量的 README。
[](https://github.com/EJ-pro/ChatFolio) [](https://react.dev) [](https://fastapi.tiangolo.com) [](https://langchain-ai.github.io/langgraph) [](LICENSE)
[**🚀 快速开始**](#-시작하기-getting-started) · [**✨ 主要功能**](#-주요-기능) · [**⚙️ 核心架构**](#%EF%B8%8F-핵심-아키텍처) · [**📂 文件夹结构**](#-폴더-구조)
## 💡 项目介绍
当加入一个新的开源项目或接手庞大的遗留代码时,理解代码所花费的成本往往超乎想象。
**ChatFolio** 旨在解决这个问题。只需输入一个 GitHub URL:
- 📊 自动提取数千个文件之间的**依赖关系图**
- 🤖 基于提取的图谱,立即与 **AI 代码聊天机器人**对话
- 📝 通过多智能体(Multi-Agent)分析项目特征,自动编写**高质量 README**
## 🚀 最新更新 (v1.1.0)
- **🌐 全球化服务支持 (多语言支持)**:已完成 UI 的全面英文化,现支持使用韩语和英语进行分析及文档生成。
- **👤 个性化用户画像**:基于用户所在国家及职位信息,提供优化的技能分析与用户画像报告。
- **🏗️ AI 架构分析**:分析项目的依赖关系图,自动生成关于设计模式、组件职责和数据流的专业报告。
- **⚡ 性能优化 (缓存引擎)**:降低了实时 GitHub API 调用的依赖,并构建了 DB 缓存层,使“我的主页”加载速度提升了最高 10 倍以上。
- **📝 多语言 README (韩/英)**:可在韩语和英语中选择所需语言,或一次性生成同时支持双语的 README。
## ✨ 主要功能
[](https://github.com/EJ-pro/ChatFolio) [](https://react.dev) [](https://fastapi.tiangolo.com) [](https://langchain-ai.github.io/langgraph) [](LICENSE)
[**🚀 快速开始**](#-시작하기-getting-started) · [**✨ 主要功能**](#-주요-기능) · [**⚙️ 核心架构**](#%EF%B8%8F-핵심-아키텍처) · [**📂 文件夹结构**](#-폴더-구조)
🕸️ 架构可视化通过物理模拟驱动的 |
💬 智能多语言聊天机器人结合依赖关系图与混合 RAG,向代码提出疑问。可根据设置的韩语或英语,获得实时解答。 |
📄 全球化自动文档不仅是简单翻译,更能生成反映项目结构的高质量多语言 README。可选择多个国家,同步构建多语言文档。 |
🔀 混合 LLM 引擎在标签页内自由切换注重速度的 Groq (Llama 3.3) 和注重质量的 OpenAI (GPT-4o)。API 出错时会自动切换至备用模型。 |
### 2. 动态身份推断(智能项目识别) 从 URL 收集阶段开始,即可动态把握项目的身份特征。 ``` GitHub Repository │ ├─ 📋 Manifest Discovery ← package.json / build.gradle / requirements.txt 우선 탐색 │ → "이건 Android 프로젝트구나" │ ├─ 📊 Graph Centrality ← NetworkX In-degree 분석 │ → 가장 많이 참조된 파일 = 프로젝트 심장부 │ └─ 🔤 Language Weighting ← 전체 파일 확장자 분포 계산 → .kt 90% → Kotlin 특화 분석 가이드 전달 ``` ### 3. 数据收集流水线(10 个步骤) 从输入 GitHub URL 到 RAG 引擎准备就绪,将运行共计 10 个步骤的流水线。 ``` Step 01 🔐 Auth 사용자 PAT 유효성 검증, Rate Limit 체크 ↓ Step 02 🔍 Cache Check GitHub API로 최신 커밋 SHA 확인 → 캐시 재사용 or 재분석 결정 ↓ Step 03 📡 Scan 재귀 디렉토리 순회, .md/.txt 등 기존 문서 배제 및 코드 위주 필터링 ↓ Step 04 📥 Fetch Python Generator 스트리밍으로 대용량 파일 OOM 없이 로드 ↓ Step 05 ✂️ Chunking RecursiveCharacterTextSplitter를 이용한 의미 단위 코드 분할 ↓ Step 06 🔢 Embedding OpenAI text-embedding-3-small 기반 고차원 벡터 변환 ↓ Step 07 🗄️ Indexing Chroma / Elasticsearch 벡터 스토어 최적화 인덱싱 및 저장 ↓ Step 08 🔍 Retrieval 사용자 질문 벡터와의 코사인 유사도 기반 최적 컨텍스트 추출 ↓ Step 09 📊 Re-ranking 메타데이터 및 파일 중요도 기반 검색 결과 재정렬 및 필터링 ↓ Step 10 🤖 RAG & Gen 최종 컨텍스트 주입, 지능형 기술 답변 및 새로운 README 자동 생성 ```
### 4. 多语言解析器支持 基于 `Factory Pattern` 的解析器路由器可检测文件扩展名,并自动分配最佳的分析器。 #### 🔤 语言解析器 (`core/parser/lang/`) | 语言 | 解析器 | 主要提取项 | | :-------------------------: | :------------------: | ----------------------------------------- | | **Python** | `ts_python.py` | `class`, `def`, `import`, `from` | | **JavaScript / TypeScript** | `ts_javascript.py` | `function`, `const`, `import`, `export` | | **Java** | `ts_java.py` | `class`, `interface`, `method`, `package` | | **Kotlin** | `ts_kotlin.py` | `class`, `fun`, `object`, `import` | | **Go** | `ts_go.py` | `func`, `struct`, `package`, `import` | | **C++** | `ts_cpp.py` | `class`, `function`, `#include` | | **C#** | `ts_csharp.py` | `class`, `namespace`, `using` | | **Rust** | `ts_rust.py` | `fn`, `struct`, `mod`, `use` | | **Swift** | `ts_swift.py` | `class`, `struct`, `func`, `import` | | **Dart** | `ts_dart.py` | `class`, `void`, `import` | | **PHP** | `ts_php.py` | `class`, `function`, `namespace`, `use` | | **Ruby** | `ts_ruby.py` | `class`, `def`, `module`, `require` | #### ⚙️ 配置解析器 (`core/parser/config/`) | 格式 | 解析器 | 用途 | | :--------: | :------------------: | ---------------------------------------- | | **Gradle** | `gradle_parser.py` | 提取 Android / Spring 依赖及构建设置 | | **JSON** | `json_parser.py` | 解析 `package.json` 等包元数据 | | **YAML** | `yaml_parser.py` | 提取 Docker Compose, CI/CD 配置 | | **XML** | `xml_parser.py` | 解析 `pom.xml`, `AndroidManifest.xml` | | **SQL** | `sql_parser.py` | 提取 DB 架构及表结构 | ## 🛠 技术栈
| 领域 | 技术 |
|---|---|
| 前端 |
React 18 (Vite) · Vanilla CSS · Zustand react-force-graph-2d · react-markdown · Lucide React |
| 后端 |
FastAPI (Python 3.10+) · LangGraph · LangChain OpenAI GPT-4o · Groq Llama 3.3 · NetworkX |
| 数据库 | PostgreSQL · SQLAlchemy ORM |
| 基础设施 | Docker · Docker Compose |
**EJ-pro** · [GitHub](https://github.com/EJ-pro/ChatFolio)
_ChatFolio — 把阅读代码的时间,还给创造。_
标签:AI驱动, AST解析, AV绕过, FastAPI, GitHub仓库分析, GraphRAG, LangGraph, LLM, React, README生成器, Syscalls, Unmanaged PE, 代码依赖可视化, 代码分析, 代码审查, 代码解析, 凭证管理, 多智能体, 大语言模型应用, 威胁情报, 开发者工具, 技术文档, 智能文档生成, 测试用例, 特权检测, 自定义脚本, 请求拦截, 逆向工具