当前位置: 首页 > article >正文

自己电脑搭建个人知识库,一般电脑也能玩(支持通义千问、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如下:

8827f82d85ac4ab4355e5311a9d6e222.png

若提问内容在我们的文档系统中,输出哪些文档命中,包括内容,然后大模型Qwen自动对内容进行深度分析。

总体来说,这种模式充分发挥了高性能检索+LLM问答的两者优势,用起来还是挺舒服的。

功能介绍

总体功能,这是一款轻量级 LLM(大语言模型)+ 知识库应用,结合了 Whoosh 全文搜索引擎和本地化部署的 Qwen-7B 模型,提供高效的个人知识检索和AI智能问答功能。

功能一:文件上传与知识库构建

功能描述:用户可以上传 .docx 文件,这些文件的内容会被解析并存储到知识库中。系统通过 Whoosh 构建索引。如下图所示:

f0e806ab3aea8599f8fbde1fc7e4c2fc.png

大家可以基于我的程序,继续扩展对PDF,Excel,PPT等内容的检索支持。

此功能核心代码:

d87e712e81cb3fcddbe8bb61e607b0b9.png

功能二:知识库搜索

功能描述:用户可以输入关键词或问题,从知识库中检索相关内容。

如果检索结果重复,系统会自动过滤掉重复项。如下图所示:

7eb4230930c44d88c11c7eb7037e9cde.png

检索功能核心代码:

00103239dd0ada8ac5ddb72210b4eb97.png

功能三:Qwen-7B 智能问答

功能描述: 若知识库中检索到相关内容,系统会继续调用本地部署的 Qwen-7B 模型,对检索的知识做深度分析;如果未在知识库搜索到内容,会直接调用大模型回答。如下图所示:

e691b1127aed15477b2e30f1414bb266.png

此功能核心代码:

2a90e017a9f4f3d61acb1b5618968f94.png

Whoosh介绍

Whoosh 是一个轻量级的全文搜索引擎库,用于快速构建本地索引和查询。它支持灵活的字段配置、多种查询类型,并通过纯 Python 实现,无需额外依赖,非常适合小型项目或知识库系统。

Whoosh 工作流程主要分为下面三个步骤:

  1. 初始化索引:调用 initialize_index() 创建或加载索引。详见代码文件的此函数实现。

  2. 添加文档:用户上传 .docx 文件后,调用 add_document_to_index() 将文档内容分词并存储到索引。

  3. 执行搜索:用户输入查询关键词后,调用 search_knowledge_base() 检索索引。

更多Whoosh使用介绍参考:https://whoosh.readthedocs.io/

df9a57c10ce03fe27abe509edd60d42d.png

完整代码文件只有1个,一共118行,想要完整源码部署LLM+个人知识库的,在下面我的公众号回复:知识库

总结一下

本篇介绍了LLM+个人知识库搭建方法,此技术方案具有以下优势:

1. 轻量级和高效:Whoosh 提供快速的全文搜索能力,无需依赖数据库或云服务。本地化的 Qwen-7B 模型,离线运行,节省网络资源。

2. 中文支持:使用 jieba 实现中文分词,优化了中文文本的索引与查询。

3. 易于扩展:知识库和智能问答可以分别扩展,如添加更多文件格式支持或更高效的语言模型。

这种方案除了支持开源大模型外,对于闭源大模型GPT等同样也是支持的,感兴趣的可以玩一下。

以上全文2678字,9张图。如果这篇文章觉得对你有用,可否点个关注。给我个三连击:点赞、转发和在看。若可以再给我加个⭐️,谢谢你看我的文章,我们下篇再见!


http://www.kler.cn/a/463135.html

相关文章:

  • 个人交友系统|Java|SSM|JSP|
  • ESP32 I2S音频总线学习笔记(一):初识I2S通信与配置基础
  • 被催更了,2025元旦源码继续免费送
  • Leetcode731. 我的日程安排表 II
  • HarmonyOS鸿蒙开发 应用开发常见问题总结(持续更新...)
  • 多层设计模式:可否设计各层之间公用的数据定义模块?
  • VSCode 插件开发实战(十六):详解插件生命周期
  • selenium(三)
  • Midjourney技术浅析(三):文本编码
  • .NET | 详解通过Win32函数实现本地提权
  • 计算机网络—————考研复试
  • WOFOST作物模型(2.1):模型参数介绍
  • Python基于Django的web漏洞挖掘扫描技术的实现与研究(附源码,文档说明)
  • 数据库在大数据领域的探索与实践:动态存储与查询优化
  • 二叉树的基本数据结构类型(c语言)
  • OpenCV 图像处理之形态学转换
  • 数据结构(Java)—— 栈(Stack)
  • OpenCV的TickMeter计时类
  • 【Rust自学】8.3. String类型 Pt.1:字符串的创建、更新与拼接
  • Sentinel 介绍与使用指南:构建高可用、可靠的微服务架构
  • 大数据面试笔试宝典之大数据运维面试
  • 【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(二)
  • 【Spring】Spring DI(依赖注入)详解—集合类型的注入——List、Set、Map的配置与注入
  • linux tar 文件解压压缩
  • 【人工智能】Python实现时序数据预测:ARIMA与LSTM的对比
  • Quartus DMA IP示例使用说明--MM接口