自己电脑搭建个人知识库,一般电脑也能玩(支持通义千问、GPT等)。
你好,我是郭震
结合AI大模型能力,构建个人知识库,做一个问答系统。
很多人都有这种需求。
因为此种模式,既能发挥大模型的AI问答能力,又能考虑到我们自己个性的文档知识库。
常见的方案有这样几种:
1. 调用闭源大模型(如ChatGPT, Claude)API,使用向量数据库管理个人知识库;
2. 本地部署开源大模型(如Qwen,Llama),使用向量数据库管理个人知识库;
第一种方式调用API需要付费,第二种方式虽然不花钱,但是对个人电脑性能要求很高,运行本地大模型+向量数据库,两者叠加得配置一台高性能电脑,变相增加投入了。
有没有一个更好的方案,既不花钱,一般电脑又能玩的搭建方法?
我这篇文章的目标就是尝试探索这样一种解决方案,帮大家做到既不花钱,又一般电脑也能玩。这个大框架下,再从中选择最容易搭建的方法,尽量少的安装第三方工具包,这样大家非常容易部署。
最后的解决方案,只需要一个代码文件,全部搞定。
好的,朝着目标,咱们走起。
前期准备
1. 准备一台8G以上内存的电脑,无显卡也问题不大;
2. 通过我前几天发的这篇文章:自己电脑搭建AI大模型详细教程,支持通义千问、Llama3、接口调用等。在本地搭建好qwen:7b模型,文章中介绍的应该是最简单的方案了,无需花钱,开源免费。
3. 再会一点Python安装包的技能,基本就是一条命令:pip install 安装包的名字
方案介绍
既不花钱,一般电脑又能玩的方案,一句话总结:本地大模型(qwen:7b)+ 文档搜索工具(whoosh)
使用此方案搭建的LLM+个人知识库,网页界面demo如下:
若提问内容在我们的文档系统中,输出哪些文档命中,包括内容,然后大模型Qwen自动对内容进行深度分析。
总体来说,这种模式充分发挥了高性能检索+LLM问答的两者优势,用起来还是挺舒服的。
功能介绍
总体功能,这是一款轻量级 LLM(大语言模型)+ 知识库应用,结合了 Whoosh 全文搜索引擎和本地化部署的 Qwen-7B 模型,提供高效的个人知识检索和AI智能问答功能。
功能一:文件上传与知识库构建
功能描述:用户可以上传 .docx 文件,这些文件的内容会被解析并存储到知识库中。系统通过 Whoosh 构建索引。如下图所示:
大家可以基于我的程序,继续扩展对PDF,Excel,PPT等内容的检索支持。
此功能核心代码:
功能二:知识库搜索
功能描述:用户可以输入关键词或问题,从知识库中检索相关内容。
如果检索结果重复,系统会自动过滤掉重复项。如下图所示:
检索功能核心代码:
功能三:Qwen-7B 智能问答
功能描述: 若知识库中检索到相关内容,系统会继续调用本地部署的 Qwen-7B 模型,对检索的知识做深度分析;如果未在知识库搜索到内容,会直接调用大模型回答。如下图所示:
此功能核心代码:
Whoosh介绍
Whoosh 是一个轻量级的全文搜索引擎库,用于快速构建本地索引和查询。它支持灵活的字段配置、多种查询类型,并通过纯 Python 实现,无需额外依赖,非常适合小型项目或知识库系统。
Whoosh 工作流程主要分为下面三个步骤:
初始化索引:调用 initialize_index() 创建或加载索引。详见代码文件的此函数实现。
添加文档:用户上传 .docx 文件后,调用 add_document_to_index() 将文档内容分词并存储到索引。
执行搜索:用户输入查询关键词后,调用 search_knowledge_base() 检索索引。
更多Whoosh使用介绍参考:https://whoosh.readthedocs.io/
完整代码文件只有1个,一共118行,想要完整源码部署LLM+个人知识库的,在下面我的公众号回复:知识库
总结一下
本篇介绍了LLM+个人知识库搭建方法,此技术方案具有以下优势:
1. 轻量级和高效:Whoosh 提供快速的全文搜索能力,无需依赖数据库或云服务。本地化的 Qwen-7B 模型,离线运行,节省网络资源。
2. 中文支持:使用 jieba 实现中文分词,优化了中文文本的索引与查询。
3. 易于扩展:知识库和智能问答可以分别扩展,如添加更多文件格式支持或更高效的语言模型。
这种方案除了支持开源大模型外,对于闭源大模型GPT等同样也是支持的,感兴趣的可以玩一下。
以上全文2678字,9张图。如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个⭐️,谢谢你看我的文章,我们下篇再见!