声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由用户承担全部法律及连带责任,文章作者不承担任何法律及连带责任。 |
博客新域名:https://gugesay.com
不想错过任何消息?设置星标↓ ↓ ↓
目录
前言
前两天使用Ollama搭建了本地的ChatGPT。于是产生了一个想法,话说Notion在国内的访问越来越不顺畅,加之前两年买的NAS目前只做了个人手机云同步和云影音系统(还有大把空间没利用),倒不如将所有的笔记都放在本地,然后利用NAS完成个人云笔记,再配合目前的Ollama,尝试搭建一个本地离线版的知识库,说干就干。
搭建过程
模型选择
通过Gemma2与llama3.1的对比测评,最终选用llama3.1模型作为本地问答ChatGPT,安装也很简单,只需一条指令:
ollama run llama3.1
笔记工具
骨哥最近一直使用Typora作为主要的本地笔记管理工具,但是最近被Obsidian刷屏了,心想那就用用看,下载&安装:
https://obsidian.md/
然后就是将Notion上上百篇笔记迁移至本地(此处略过心酸的1W字…)
根据网上大部分人说的,使用copilot插件实现对本地笔记的AI智能问答,试用后的效果很差,具体有两点:
中文支持很差
回答很‘智障’
而且Obsidian的搜索功能一直被广大使用者吐槽,确实不太好用。那么有没有办法将笔记管理和本地AI相结合呢?
RAG
什么是RAG?
检索增强生成(RAG)是指对大型语言模型输出进行优化,使其能够在生成响应之前引用训练数据来源之外的权威知识库。大型语言模型(LLM)用海量数据进行训练,使用数十亿个参数为回答问题、翻译语言和完成句子等任务生成原始输出。在 LLM 本就强大的功能基础上,RAG 将其扩展为能访问特定领域或组织的内部知识库,所有这些都无需重新训练模型。这是一种经济高效地改进 LLM 输出的方法,让它在各种情境下都能保持相关性、准确性和实用性。
对于RAG的工具选择,骨哥最终选择了AnythingLLM。
AnythingLLM
关于 AnythingLLM 的工作原理(一图胜千言):
下载地址:
https://anythingllm.com/download
多系统支持:
安装略过。
安装完成后,启动会进入自动引导界面,跟着界面一步步来:
这里选择Ollama,然后下一步:
继续下一步,然后创建一个新的Workspace,名字随便起:
完成后,就会看到和WebUI差不多的界面了。
接着继续配置,先将语言更改为简体中文:
接着选择调用的本地大模型:
向量数据库,使用默认的LanceDB即可:
Embedder设置:
骨哥这里选择的是nomic-embed作为Embedder,安装也很简单:
ollama pull nomic-embed-text
默认4096,最好改为128~512之间(数字越小代表文本文件会被切分的更加细致)。
最后在当前聊天的设置中将“文档相似性阈值”更改为“高”:
OK,所有设置完毕后,我们先丢给它一个PDF文档看看效果:
还不错,相当于本地拥有一个kimi机器人了。
接着把我的Markdown笔记丢个它看看,具体操作如下:
首先点击上传按钮:
然后将所有MarkDown笔记文件,全部丢进去:
可以看到,最下方支持网址提交,当你输入网址后,点击“Fetch Website”按钮,爬虫就会对指定的网址内容进行爬取。
接着点击“Move to Workspace”,将所有文件移入我们的WorkSpace:
最后点击“Save and Embed”按钮等待完成:
回到我们的聊天框,就可以在AnythingLLM中进行基于检索增强生成(RAG)的聊天或问答了,看看效果:
可以看到AnythingLLM除了使用基本的AI模型回答外,还拥有了关联本地文件的功能,简直不要太方便~
以上就是骨哥个人离线知识库搭建的全过程。当然还有更多功能有待发掘,希望本文能对你有所帮助。
PS:已经有很多小伙伴后台私信,要将个人电脑打造一个离线的CTF AI知识库,以后CTF比赛会不会演变为个人硬件与AI的比拼。
参考:https://blog.csdn.net/luomao2012/article/details/139457751
加入星球,随时交流:
(前50位成员):99元/年
(前100位成员):128元/年
(100位+成员):199元/年
感谢阅读,如果觉得还不错的话,欢迎分享给更多喜爱的朋友~
====正文结束====