随记体验 · 2024年8月2日 0

手把手教你个人离线AI知识库搭建

前言

前两天使用ollama搭建了本地的ChatGPT。于是产生了一个想法,话说Notion在国内的访问越来越不顺畅,加之前两年买的NAS目前只做了个人手机云同步和云影音系统(还有大把空间没利用),倒不如将所有的笔记都放在本地,然后利用NAS完成个人云笔记,再配合目前的Ollama,尝试搭建一个本地离线版的知识库,说干就干。

搭建过程

模型选择

通过Gemma2与llama3.1的对比测评,最终选用llama3.1模型作为本地问答ChatGPT,安装也很简单,只需一条指令:

ollama run llama3.1

笔记工具

骨哥最近一直使用Typora作为主要的本地笔记管理工具,但是最近被Obsidian刷屏了,心想那就用用看,下载&安装:

https://obsidian.md/

然后就是将Notion上上百篇笔记迁移至本地(此处略过心酸的1W字…)

file

根据网上大部分人说的,使用copilot插件实现对本地笔记的AI智能问答,试用后的效果很差,具体有两点:

  1. 中文支持很差
  2. 回答很‘智障’

而且Obsidian的搜索功能一直被广大使用者吐槽,确实不太好用。那么有没有办法将笔记管理和本地AI相结合呢?

RAG

什么是RAG?

检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。

对于RAG的工具选择,骨哥最终选择了AnythingLLM。

AnythingLLM

关于 AnythingLLM 的工作原理(一图胜千言):

file

file

下载地址:

https://anythingllm.com/download

多系统支持:

file

安装略过。

安装完成后,启动会进入自动引导界面,跟着界面一步步来:

file

这里选择Ollama,然后下一步:

file

继续下一步,然后创建一个新的Workspace,名字随便起:

file

完成后,就会看到和WebUI差不多的界面了。

file

接着继续配置,先将语言更改为简体中文:

file

接着选择调用的本地大模型:

file

向量数据库,使用默认的LanceDB即可:

file

Embedder设置:

骨哥这里选择的是nomic-embed作为Embedder,安装也很简单:

ollama pull nomic-embed-text

默认4096,最好改为128~512之间(数字越小代表文本文件会被切分的更加细致)。

最后在当前聊天的设置中将“文档相似性阈值”更改为“高”:

file

OK,所有设置完毕后,我们先丢给它一个PDF文档看看效果:

file

还不错,相当于本地拥有一个kimi机器人了。

接着把我的Markdown笔记丢个它看看,具体操作如下:

首先点击上传按钮:

file

然后将所有MarkDown笔记文件,全部丢进去:

file

可以看到,最下方支持网址提交,当你输入网址后,点击“Fetch Website”按钮,爬虫就会对指定的网址内容进行爬取。

接着点击“Move to Workspace”,将所有文件移入我们的WorkSpace:

file

最后点击“Save and Embed”按钮等待完成:

file

回到我们的聊天框,就可以在AnythingLLM中进行基于检索增强生成(RAG)的聊天或问答了,看看效果:

file

可以看到AnythingLLM除了使用基本的AI模型回答外,还拥有了关联本地文件的功能,简直不要太方便。

PS:已经有很多小伙伴后台私信,要将个人电脑打造一个离线的CTF AI知识库,以后CTF比赛会不会演变为个人硬件与AI的比拼。:sweat_smile:

以上就是骨哥个人离线知识库搭建的全过程。当然还有更多功能有待发掘,希望能对你有所帮助。

参考:https://blog.csdn.net/luomao2012/article/details/139457751