Top AI Repos — open-source AI, indexed and scored
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
Top AI Repos tracks AI repositories on GitHub and answers two different questions about each one: is it moving right now, and would you bet a product on it.
| Date | Stars |
|---|---|
| 2026-07-31 | 458 |
| 2026-08-02 | 458 |
| 2026-08-03 | 458 |
| 2026-08-04 | 459 |
| 2026-08-06 | 459 |
Today
— stars today
This week
— stars this week
This month
— stars this month
Momentum
0.0
growth rate 0.00%/day
# 个人知识库助手项目
## 一、引言
### 1、项目背景介绍
在当今信息爆炸的时代,人们面临着海量数据的挑战,如何快速、准确地获取所需信息成为了一个迫切的需求。为了解决这一问题,本项目应运而生,它是一个基于大型语言模型应用开发教程的个人知识库助手。该项目通过精心设计和开发,实现了对大量复杂信息的有效管理和检索,为用户提供了一个强大的信息获取工具。
本项目的开发初衷是利用大型语言模型的强大处理能力,结合用户的实际需求,打造一个能够理解自然语言查询并提供精确答案的智能助手。在这一过程中,开发团队对现有的大模型应用进行了深入分析和研究,进而进行了一系列的封装和完善工作,以确保项目的稳定性和易用性。
### 2、目标与意义
本项目的目的是为了提供一个高效、智能的解决方案,帮助用户在面对海量信息时能够快速定位和获取所需知识,从而提高工作效率和决策质量。通过构建一个个人知识库助手,项目旨在简化信息检索过程,使得用户能够通过自然语言查询,轻松访问和整合分散在不同数据源中的信息。
意义方面,该项目具有以下几个关键点:
- **提升信息获取效率**:通过智能检索和问答系统,用户可以迅速找到相关信息,减少了在多个平台或数据库中手动搜索的时间。
- **增强知识管理能力**:项目支持用户构建和维护个人知识库,有助于积累和组织专业知识,形成个人的知识资产。
- **促进决策支持**:通过提供准确、及时的信息,项目能够辅助用户做出更加明智的决策,特别是在需要快速响应的情况下。
- **支持个性化定制**:项目允许用户根据自己的需求和偏好定制知识库,使得信息检索更加个性化和精准。
- **推动技术创新**:项目的开发和应用展示了大型语言模型在信息管理和检索领域的潜力,为未来的技术创新提供了实践案例和灵感。
- **普及智能助手概念**:通过易于使用的界面和部署方式,项目降低了智能助手技术的门槛,使其更加普及和易于接受。
### 3、主要功能
本项目可以实现基于 Datawhale 的现有项目 README 的知识问答,使用户可以快速了解 Datawhale 现有项目情况。
**项目开始界面**

**问答演示界面**

**实例演示界面**
1. ***介绍下 joyrl 演示***

2. ***joyrl-book 与 joyrl 是什么关系演示***

## 二、技术实现
### 1、环境依赖
#### 1.1 技术资源要求
- **CPU**: Intel 5代处理器(云CPU方面,建议选择 2 核以上的云CPU服务)
- **内存(RAM)**: 至少 4 GB
- **操作系统**:Windows、macOS、Linux均可
#### 1.2 项目设置
**克隆储存库**
```shell
git clone https://github.com/logan-zou/Chat_with_Datawhale_langchain.git
cd Chat_with_Datawhale_langchain
```
**创建 Conda 环境并安装依赖项**
- python>=3.9
- pytorch>=2.0.0
```shell
# 创建 Conda 环境
conda create -n llm-universe python==3.9.0
# 激活 Conda 环境
conda activate llm-universe
# 安装依赖项
pip install -r requirements.txt
```
#### 1.3 项目运行
- 启动服务为本地 API
```shell
# Linux 系统
cd project/serve
uvicorn api:app --reload
```
```shell
# Windows 系统
cd project/serve
python api.py
```
- 运行项目
```shell
cd llm-universe/project/serve
python run_gradio.py -model_name='chatglm_std' -embedding_model='m3e' -db_path='../../data_base/knowledge_db' -persist_path='../../data_base/vector_db'
```
### 2、开发流程简述
#### 2.1 当前的项目版本及未来规划
- **当前版本**:0.2.0(更新于2024.3.17)
- **更新内容**
- [√] 新增 m3e embedding
- [√] 新增知识库内容
- [√] 新增 Datawhale 的所有 Md 的总结
- [√] 修复 gradio 显示错误
- **目前支持的模型**
- OpenAi
- [√] gpt-3.5-turbo
- [√] gpt-3.5-turbo-16k-0613
- [√] gpt-3.5-turbo-0613
- [√] gpt-4
- [√] gpt-4-32k
- 文心一言
- [√] ERNIE-Bot
- [√] ERNIE-Bot-4
- [√] ERNIE-Bot-turbo
- 讯飞星火
- [√] Spark-1.5
- [√] Spark-2.0
- 智谱 AI
- [√] chatglm_pro
- [√] chatglm_std
- [√] chatglm_lite
- **未来规划**
- [ ] 更新 智谱Ai embedding
#### 2.2 核心Idea
核心是针对四种大模型 API 实现了底层封装,基于 Langchain 搭建了可切换模型的检索问答链,并实现 API 以及 Gradio 部署的个人轻量大模型应用。
#### 2.3 使用的技术栈
本项目为一个基于大模型的个人知识库助手,基于 LangChain 框架搭建,核心技术包括 LLM API 调用、向量数据库、检索问答链等。项目整体架构如下:

如上,本项目从底向上依次分为 LLM 层、数据层、数据库层、应用层与服务层。
① LLM 层主要基于四种流行 LLM API 进行了 LLM 调用封装,支持用户以统一的入口、方式来访问不同的模型,支持随时进行模型的切换;
② 数据层主要包括个人知识库的源数据以及 Embedding API,源数据经过 Embedding 处理可以被向量数据库使用;
③ 数据库层主要为基于个人知识库源数据搭建的向量数据库,在本项目中我们选择了 Chroma;
④ 应用层为核心功能的最顶层封装,我们基于 LangChain 提供的检索问答链基类进行了进一步封装,从而支持不同模型切换以及便捷实现基于数据库的检索问答;
⑤ 最顶层为服务层,我们分别实现了 Gradio 搭建 Demo 与 FastAPI 组建 API 两种方式来支持本项目的服务访问。
## 三、应用详解
### 1、核心架构
llm-universe 个人知识库助手地址:
https://github.com/datawhalechina/llm-universe/tree/main
该项目是个典型的RAG项目,通过langchain+LLM实现本地知识库问答,建立了全流程可使用开源模型实现的本地知识库对话应用。目前已经支持使用 ***ChatGPT***,***星火spark模型***,***文心大模型***,***智谱GLM*** 等大语言模型的接入。该项目实现原理和一般 RAG 项目一样,如前文和下图所示:
整个 RAG 过程包括如下操作:
1.用户提出问题 Query
2.加载和读取知识库文档
3.对知识库文档进行分割
4.对分割后的知识库文本向量化并存入向量库建立索引
5.对问句 Query 向量化
6.在知识库文档向量中匹配出与问句 Query 向量最相似的 top k 个
7.匹配出的知识库文本文本作为上下文 Context 和问题⼀起添加到 prompt 中
8.提交给 LLM 生成回答 Answer
可以大致分为索引,检索和生成三个阶段,这三个阶段将在下面小节配合该 llm-universe 知识库助手项目进行拆解。
### 2、索引-indexing
本节讲述该项目 llm-universe 个人知识库助手:创建知识库并加载文件-读取文件-**文本分割**(Text splitter) ,知识库**文本向量化**(embedding)以及存储到**向量数据库**的实现,
其中**加载文件**:这是读取存储Excerpt of 26,502 characters
Read on GitHubWould you bet a product on this? Bounded 0–100 and slow moving.
matched fp:51bc1c7b9cc71e8a, llm:Repository name 'Chat_with_Datawhale_langchain' suggests a chat or chatbot built using LangChain (chat with Datawhale). Language: Python. No topics or README provided, but name indicates use of LangChain for conversational access to Datawhale resources/data.
matched fp:51bc1c7b9cc71e8a, llm:Repository name 'Chat_with_Datawhale_langchain' suggests a chat or chatbot built using LangChain (chat with Datawhale). Language: Python. No topics or README provided, but name indicates use of LangChain for conversational access to Datawhale resources/data.
matched fp:51bc1c7b9cc71e8a, llm:Repository name 'Chat_with_Datawhale_langchain' suggests a chat or chatbot built using LangChain (chat with Datawhale). Language: Python. No topics or README provided, but name indicates use of LangChain for conversational access to Datawhale resources/data.