链载Ai

标题: ThinkRAG开源!笔记本电脑可运行的本地知识库大模型检索增强生成系统 [打印本页]

作者: 链载Ai    时间: 2 小时前
标题: ThinkRAG开源!笔记本电脑可运行的本地知识库大模型检索增强生成系统

ThinkRAG 大模型检索增强生成系统,可以轻松部署在笔记本电脑上,实现本地知识库智能问答。


该系统基于 LlamaIndexStreamlit 构建,针对国内用户在模型选择、文本处理等诸多领域进行了优化。


1. 项目地址


ThinkRAG 在Github开源,使用 MIT 协议。你可以通过以下网址或点击“阅读原文”,获取代码和文档,在笔记本电脑上运行和使用。


https://github.com/wzdavid/ThinkRAG



2. 模型支持


ThinkRAG 可使用 LlamaIndex 数据框架支持的所有模型。关于模型列表信息,请参考以下文档。


https://docs.llamaindex.ai/en/stable/module_guides/models/llms/modules/


现在,RAG框架太多,好用的系统太少。


ThinkRAG致力于打造一个直接能用、有用、易用的应用系统。


因此,在各种模型、组件与技术上,我们做了精心的选择与取舍。


首先,使用大模型,ThinkRAG支持OpenAI API 以及所有兼容的 LLM API,包括国内主流大模型厂商,例如:


如果要本地化部署大模型,ThinkRAG 选用了简单易用的 Ollama。我们可以从通过 Ollama 将大模型下载到本地运行。


目前 Ollama 支持几乎所有主流大模型本地化部署,包括 Llama、Gemma、GLM 、Mistral、Phi、Llava等。具体可访问以下 Ollama 官网了解。


https://ollama.com/


系统也使用了嵌入模型和重排模型,可支持来自 Hugging Face 的大多数模型。目前,ThinkRAG主要选用了BAAI的BGE系列模型。国内用户可访问如下网址了解和下载:


https://hf-mirror.com/BAAI


3. 系统特点


ThinkRAG 是为专业人士、科研人员、学生等知识工作者开发的大模型应用系统,可在笔记本电脑上直接使用,且知识库数据都保存在电脑本地。


ThinkRAG具备以下特点:


特别地,ThinkRAG 还为国内用户做了大量定制和优化:


4. 快速开始


第1步 下载与安装


从Github下载代码后,用pip安装所需组件。


pip3install-rrequirements.txt


若要离线运行系统,请首先从官网下载 Ollama。然后,使用 Ollama 命令下载如GLM、 Gemma 和 QWen 等大模型。


同步,从Hugging Face将嵌入模型(BAAI/bge-large-zh-v1.5)和重排模型(BAAI/bge-reranker-base)下载到localmodels目录中。


具体步骤,可参考 docs 目录下的文档:HowToDownloadModels.md


https://github.com/wzdavid/ThinkRAG/blob/main/docs/HowToDownloadModels.md


第2步 系统配置


为了获得更好的性能,推荐使用千亿级参数的商用大模型 LLM API。


首先,从 LLM 服务商获取 API 密钥,配置如下环境变量。


ZHIPU_API_KEY=""MOONSHOT_API_KEY=""DEEPSEEK_API_KEY=""OPENAI_API_KEY=""


你可以跳过这一步,在系统运行后,再通过应用界面配置 API 密钥。


如果选择使用其中一个或多个 LLM API,请在 config.py 配置文件中删除不再使用的服务商。


当然,你也可以在配置文件中,添加兼容OpenAI API 的其他服务商。


ThinkRAG 默认以开发模式运行。在此模式下,系统使用本地文件存储,你不需要安装任何数据库。


若要切换到生产模式,你可以按照以下方式配置环境变量。


THINKRAG_ENV=production


在生产模式下,系统使用向量数据库Chroma和键值数据库Redis


如果你没有安装 Redis,建议通过 Docker 安装,或使用已有的 Redis 实例。请在 config.py 文件里,配置 Redis 实例的参数信息。


第3步 运行系统


现在,你已经准备好运行 ThinkRAG。


请在包含 app.py 文件的目录中运行以下命令。


streamlitrunapp.py


系统将运行,并在浏览器上自动打开以下网址,展示应用界面。


http://localhost:8501/


第一次运行可能会需要等待片刻。如果没有提前下载 Hugging Face 上的嵌入模型,系统还会自动下载模型,将需要等待更长时间。


5. 使用指南


(1)系统配置


ThinkRAG 支持在用户界面,对大模型进行配置与选择,包括:大模型 LLM API 的 Base URL 和 API 密钥,并可以选择使用的具体模型,例如:智谱的 glm-4。



系统将自动检测 API 和密钥是否可用,若可用则在底部用绿色文字,显示当前选择的大模型实例。


同样,系统可以自动获取 Ollama 下载的模型,用户可以在用户界面上选择所需的模型。



若你已经将嵌入模型和重排模型下载到本地localmodels目录下。在用户界面上,可以切换选择使用的模型,并设置重排模型的参数,比如 Top N。



在左侧导航栏,点击高级设置(Settings-Advanced),你还可以对下列参数进行设置:


通过使用不同参数,我们可以对比大模型输出结果,找到最有效的参数组合。


(2)管理知识库


ThinkRAG 支持上传 PDF、DOCX、PPTX 等各类文件,也支持上传网页 URL。



点击 Browse files 按钮,选择电脑上的文件,然后点击 Load 按钮加载,此时会列出所有加载的文件。


然后,点击 Save 按钮,系统会对文件进行处理,包括文本分割和嵌入,保存到知识库中。



同样,你可以输入或粘贴网页 URL,获取网页信息,处理后保存到知识库中。


系统支持对知识库进行管理。



如上图所示,ThinkRAG 可以分页列出,知识库中所有的文档。


选择要删除的文档,将出现 Delete selected documents 按钮,点击该按钮可以将文档从知识库中删除。


(3)智能问答


在左侧导航栏,点击 Query,将会出现智能问答页面。


输入问题后,系统会对知识库进行检索,并给出回答。在这个过程当中,系统将采用混合检索重排等技术,从知识库获取准确的内容。


例如,我们已经在知识库中上传了一个 Word 文档:“大卫说流程.docx“。


现在输入问题:”流程有哪三个特征?”



如图所示,系统用时2.49秒,给出了准确的回答:流程具备目标性、重复性与过程性。同时,系统还给出了从知识库检索到的2个相关文档。


可以看到,ThinkRAG 完整和有效地实现了,基于本地知识库的大模型检索增强生成的功能。


6. 技术架构


ThinkRAG 采用 LlamaIndex 数据框架开发,前端使用Streamlit。系统的开发模式和生产模式,分别选用了不同的技术组件,如下表所示:



开发模式生产模式
RAG框架LlamaIndexLlamaIndex
前端框架StreamlitStreamlit
嵌入模型BAAI/bge-small-zh-v1.5BAAI/bge-large-zh-v1.5
重排模型BAAI/bge-reranker-baseBAAI/bge-reranker-large
文本分割器SentenceSplitterSpacyTextSplitter
对话存储SimpleChatStoreRedis
文档存储SimpleDocumentStoreRedis
索引存储SimpleIndexStoreRedis
向量存储SimpleVectorStoreChroma


这些技术组件,按照前端、框架、大模型、工具、存储、基础设施,这六个部分进行架构设计。


如下图所示:



7. 后续开发计划


ThinkRAG 将继续优化核心功能,持续提升检索的效率和准确性,主要包括:


同时,我们还将进一步完善应用架构、提升用户体验,主要包括:


好事即将发生。






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5