# Learn-LLM-RAG-Easily
**Repository Path**: franck_zhang/Learn-LLM-RAG-Easily
## Basic Information
- **Project Name**: Learn-LLM-RAG-Easily
- **Description**: 轻松学系列之: 轻松学习LLM大语言模型RAG外挂知识库
- **Primary Language**: Python
- **License**: Not specified
- **Default Branch**: main
- **Homepage**: https://gitee.com/coderwillyan/Learn-LLM-RAG-Easily
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 14
- **Created**: 2025-02-28
- **Last Updated**: 2025-02-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 轻松学大模型应用开发
## 项目概览
**本项目是基于langchain的大模型RAG外挂知识库的开发教程,主要内容包括:**
1. **大模型简介**,什么是大模型、大模型特点是什么、LangChain 是什么,如何实现RAG;
2. **如何调用大模型 API**,介绍了国内外知名大模型产品 (ChatGPT、智谱AI等)API 的多种调用方式,包括调用原生 API、封装为 LangChain LLM等调用方式;
3. **如何调用本地部署的大模型**,使用ollama完成大模型的本地化部署,调用本地大模型的能力;
4. **知识库搭建**,不同类型知识库文档的加载、处理,向量数据库的搭建;
5. **构建 RAG 应用**,包括将 LLM 接入到 LangChain 构建检索问答链,使用 Streamlit 进行应用部署
6. **验证迭代**,大模型开发如何实现验证迭代,一般的评估方法有什么;
**如果希望0代码完成本地知识库的搭建,可以借助一些优秀的开源项目:**
1. [ragflow,一款基于深度文档理解构建的开源 RAG(Retrieval-Augmented Generation)引擎](https://github.com/infiniflow/ragflow/tree/main)
2. [AnythingLLM,一个全栈应用程序,您可以使用现成的商业大语言模型或流行的开源大语言模型,再结合向量数据库解决方案构建一个私有ChatGPT](https://github.com/Mintplex-Labs/anything-llm)
3. [MaxKB = Max Knowledge Base,是一款基于大语言模型和 RAG 的开源知识库问答系统,广泛应用于智能客服、企业内部知识库、学术研究与教育等场景。](https://github.com/1Panel-dev/MaxKB)
## 目录结构说明
```shell
data_base:知识库源文件和向量数据库文件
notebook:Notebook 源代码文件
requirements.txt:安装依赖
figures:图片
```
## 快速开始
1. 克隆仓库:
```
$ git clone https://gitee.com/coderwillyan/llm-rag
```
2. 安装依赖:
进入项目llm-rag的根目录,执行pip install指令:
```
pip install -r requirements.txt
```
3. 使用jupyter lab依次执行代码
> 如果chromadb在windows上安装失败,参考:[issues: chromadb fails to install on windows](https://github.com/chroma-core/chroma/issues/189)
## 内容大纲
1. [LLM 介绍](./notebook/C1%20大型语言模型%20LLM%20介绍/)
1. [LLM 的理论介绍](./notebook/C1%20大型语言模型%20LLM%20介绍/1.大型语言模型%20LLM%20理论简介.md)
2. [检索增强生成 RAG 简介](./notebook/C1%20大型语言模型%20LLM%20介绍/2.检索增强生成%20RAG%20简介.md)
3. [什么是 LangChain](./notebook/C1%20大型语言模型%20LLM%20介绍/3.LangChain%20简介.md)
4. [开发 LLM 应用的整体流程](./notebook/C1%20大型语言模型%20LLM%20介绍/4.开发%20LLM%20应用的整体流程.md)
5. [AutoDL服务器的基本使用](./notebook/C1%20大型语言模型%20LLM%20介绍/5.AutoDL服务器的基本使用.md)
7. [环境配置](./notebook/C1%20大型语言模型%20LLM%20介绍/7.环境配置.md)
2. [调用 LLM 实现基础问答](./notebook/C2%20调用%20LLM%20实现基础问答/)
1. [基本概念](./notebook/C2%20调用%20LLM%20实现基础问答/2.1%20基本概念.md)
2. [使用 LLM API](./notebook/C2%20调用%20LLM%20实现基础问答/2.2%20使用%20LLM%20API.ipynb)
3. [Prompt Engineering](./notebook/C2%20调用%20LLM%20实现基础问答/2.3%20Prompt%20Engineering.ipynb)
3. [构建词向量](./notebook/C3%20构建词向量%20WordEmbedding/)
1. [词向量及向量知识库介绍](./notebook/C3%20构建词向量%20WordEmbedding/3.1%20词向量及向量知识库介绍.md)
2. [使用 Embedding API](./notebook/C3%20构建词向量%20WordEmbedding/3.2%20使用%20Embedding%20API.ipynb)
4. [构建词向量](./notebook/C4%20准备数据/)
1. [数据预处理处理:读取、清洗与切片](./notebook/C4%20准备数据/4.1%20数据预处理.ipynb)
5. [搭建向量数据库](./notebook/C5%20搭建知识库/)
1. [搭建向量数据库](/notebook/C5%20搭建知识库/5.1%20搭建向量数据库.ipynb)
6. [构建 RAG 应用](./notebook/C6%20构建%20RAG%20应用/)
1. [将 LLM 接入 LangChain](./notebook/C6%20构建%20RAG%20应用/6.1%20基于%20LangChain%20调用%20LLM.ipynb)
2. [基于 LangChain 搭建检索问答链](./notebook/C6%20构建%20RAG%20应用/6.2%20构建检索问答链.ipynb)
3. [基于 Streamlit 部署知识库助手](./notebook/C6%20构建%20RAG%20应用/6.3%20部署知识库助手.ipynb)
5. [系统评估与优化](./notebook/C5%20系统评估与优化/)
1. [如何评估 LLM 应用](./notebook/C7%20系统评估与优化/7.1%20如何评估%20LLM%20应用.ipynb)
2. [评估并优化生成部分](./notebook/C7%20系统评估与优化/7.2%20评估并优化生成部分.ipynb)
3. [评估并优化检索部分](./notebook/C7%20系统评估与优化/7.3%20评估并优化检索部分.md)
## 附RAG
