AnythingLLM

我的AI笔记系统

Key Takeaway

  • 作者的AI笔记系统分为外部信息处理(Anything LLM)和笔记内容生成(Obsidian)两部分。
  • Anything LLM支持多种大模型和向量数据库,能处理PDF和公众号文章,用于资料消化和存储。
  • Obsidian是作者的终极笔记选择,因其速度快、数据本地化和丰富的AI插件(如Copilot)。
  • 笔记系统通过Anything LLM过滤外部信息,将有价值部分转化为Obsidian笔记,再利用AI辅助内容生成。
  • 笔记分类采用PROJECTS、AREAS、FLEETING、PERMANENT四种类别,以实现条理化管理。
  • 强调工具是次要的,核心在于明确需求和逻辑,通过流程和工具构建系统。

Full Content

最近,我对我的笔记系统做了一次大升级,加上了大模型驱动的知识库,并且对整体的逻辑做了大调整。

我在这边分享一下思路和具体做法。大家可以先抄作业,然后边用边改。

整套系统分成两个部分:

第一个部分是外部信息的处理。

每天我们会看到大量的内容,有PDF格式的论文和研报,有网页形式的文章,等等。我们做的笔记,都是从这些外部信息的阅读、消化开始的。

那么,这么多的资料,怎么消化、存储、检索?这是这个环节的难点,也是AI发挥最大作用的地方。

第二个部分是笔记内容的生成。

这部分的核心问题有两个:

1、用什么样的逻辑做分类是最合理的。我之前就很烦,要么是分类太泛了,显得没啥意义;要么是突然有条新笔记,却发现哪都放不进去,就很无语。

2、用什么软件最合适。要快,要隐私安全,还要有AI功能作为辅助。

先说第一部分,对外部信息的处理,我用的工具是Anything LLM。

我在视频里、在知识星球里推荐过好多款这类型的工具。综合用下来,Anything LLM是最符合我需求的。两个原因:

第一,它可以接入市面上主流的大模型、嵌入模型和向量数据库。

比如,闭源大模型方面,御三家——OpenAI、Anthropic、Google,你填入API Key就可以使用。

开源大模型方面,Ollama和LM Studio它都支持。你把链接和端口填进去就搞定了。

在最近更新的版本里,Anything LLM把Ollama也集成进来了。它提供了一系列模型,比如我最常用的Mistral 7B,通过软件直接下载就可以用了。

有些模型实在太大了,本地肯定跑不了,那就花点钱、跑在云端,然后接到本地来用。

那么,要这么多种接入手段,有什么用呢?

我平时主要用两台电脑:

在家的时候,用台式机,也就是之前介绍过配置的那台PC,性能还OK,跑本地大模型没问题。

出门的时候,带的是Macbook Pro。这机子已经非常老了,是2017年买的,现在跑个大模型是没戏,所以只能通过API调用OpenAI的模型。

除了可以根据不同配置的电脑选用不同大模型之外,Anything LLM还支持让不同的Workspace用不同的模型。比如,有的Workspace对应的资料全是英文的,那我用Mistral就好;有的如果是中英文都有,那我用qwen-1.5。

第二,它除了支持PDF之类的文档,还能把公众号文章的内容扒下来。

我平时接收到的中文信息,有很大一部分来自公众号文章。

腾讯应该是有反扒的手段。我试过很多同类型的产品,不是谁都能通过链接把公众号文章内容给扒下来的。

这就是我对外部信息的处理方法。把AI知识库用来存储资料,帮我快速消化资料。之后需要找什么的时候,还能快速搜索。这个环节处理得好的话,其实后边的笔记环节就很好搞了。

我算是笔记应用的老用户了。从Evernote开始,得有十年了吧。这么多产品用下来,我目前的终极选择是:Obsidian。

我知道,肯定会有人问,为啥不用现在超火的Notion?两个原因。

第一,太慢了。

在Notion里,很多操作都会有那么一点点的loading时间,这是我接受不了的。我觉得,笔记应用就该像实体的笔记本一样,打开就能看,翻到哪是哪。

Obsidian就没有这种问题,特别丝滑。

第二,数据放在别人家。

在前边的外部信息处理上,我没有选择本地数据库是以为,那些文档、网页全是公开信息,没有任何隐私安全问题,所以放到云端数据库我无所谓。

但是笔记不一样。这是真正的隐私数据,我绝对不会把它放到别人家的数据库去。这是要积累很多年的。万一哪天Notion出点事儿,那就麻烦了。

Obsidian里的每一条笔记,都是一个md格式的文件,存在本地。你愿意的话,可以随时把它们拷到别的地方去。

至于Notion的AI能力,Obsidian也有。这款软件支持社区插件,可以在核心之上添加各种功能,其中就包括调用大模型。

Copilot这个插件特别好用。你可以用OpenAI、Google之类的闭源大模型,也可以连接Ollama、LM Studio去使用开源大模型。

更厉害的一点是,它还自带RAG能力,能把你的所有笔记变成一个知识库。比如我问AI一个问题,AI会参考我所有的笔记给出回答,并且回答末尾还有来源。点击就能跳转到对应的笔记。

这样一来,一个梯队就形成了:

首先,我把所有外部信息都存进Anything LLM,在AI的帮助下去消化和整理。

部署本地大模型和知识库,最简单的方法

Key Takeaway

  • Ollama是本地运行开源大模型的最佳工具,支持多平台,且易于安装和使用。
  • Open WebUI提供ChatGPT风格的Web界面,支持本地大模型交互和RAG能力,可处理网页和文档。
  • Anything LLM是更高级的本地知识库管理工具,支持多种大模型、嵌入模型和向量数据库,并提供Workspace概念和对话/查询模式。
  • 本地部署大模型和知识库能实现数据安全、隐私保护和更灵活的定制化。
  • 文章强调了Ollama的服务器模式,使其能开放端口供其他软件调用大模型能力。

Full Content

在本地跑开源大模型,目前最好的软件肯定是Ollama。

不管你用的是PC、Mac,甚至是树莓派,都能通过Ollama运行大大小小的模型。而且扩展性极强。

我准备分几期详细介绍Ollama的用法。今天这期,先介绍三点:

  1. 怎么用Ollama在本地运行大模型。
  2. 在跑本地大模型的同时,使用像ChatGPT那样的Web UI。
  3. 打造完全本地化的知识库。

大家如果有更好的建议,或者在安装和使用过程中有什么问题,可以到newtype知识星球来找我。

Ollama

安装Ollama超级简单。到官网ollama.com或者.ai下载对应版本就行。

安装完成之后,在终端里输入ollama run,后边接想要运行的大模型名称就行。比如:ollama run llama2。这时系统会自动下载对应的大模型文件。

如果你不确定大模型的名称,到官网的model子页面就能找到目前所有支持的大模型。每一款大模型都有不同的版本,根据你的需求、机器的内存大小,选择对应版本,然后复制命令就行。

一般来说,7b的模型至少需要8G内存,13b需要16G,70b需要64G。大家量力而为,不然跑起来真的非常卡顿。

在默认情况下,你需要在终端里与大模型做交互。不过这种搞法真的太古老了。我们肯定是希望在一个现代的、图形化的界面里操作。这时候就要用到Open WebUI了。

Open WebUI

要安装Open WebUI,需要先安装Docker。

你可以把Docker简单理解为就是一个虚拟的容器。所有应用和依赖都打包成一个容器,然后再在系统上运行。

Docker搞定之后,复制GitHub里的这行命令到终端里执行。一切顺利的话,打开一个本地链接,就能看到非常眼熟的界面了。

这个WebUI,除了具备基本的聊天功能之外,还包含了RAG能力。不管是网页还是文档,都可以作为参考资料给到大模型。

你如果想让大模型读取网页内容的话,在链接前面加个#就行。

你如果想让大模型读取文档的话,可以在对话框的位置导入,也可以在专门的Documents页面导入。

在对话框里输入#,会出现已经导入的所有文档。你可以选中一个,或者干脆让大模型把所有文档都作为参考资料。

如果你的要求不是太高,那么做到这一步就OK了。如果你想对知识库有更多的掌控,就下载这个软件:Anything LLM。

Anything LLM

Ollama其实有两种模式:

  1. 聊天模式
  2. 服务器模式

所谓服务器模式,你可以简单理解为,Ollama在后端运行大模型,然后开放一个端口给到别的软件,让那些软件可以调用大模型的能力。

要开启服务器模式非常简单。在终端里输入两个单词:ollama serve。

启动之后,把这个默认链接填到Anything LLM里。这时,软件会通过链接读取可以加载的模型。这些模型是用来生成内容的模型。

除此之外,搭建一个知识库,会涉及到另外两个关键:

  1. Embedding Model,嵌入模型。它负责把高维度的数据转化为低维度的嵌入空间。这个数据处理过程在RAG中非常重要。
  2. Vector Store,向量数据库,专门用来高效处理大规模向量数据。

这两个我们都用默认的。这样一来,整套系统都跑在你的电脑上。当然,你也可以选择全部跑在云端,比如,大模型和嵌入模型都用OpenAI的,向量数据库用Pinecone,都可以。

完成最基础的三个设置之后,就可以进入主界面了。这款软件的逻辑我挺喜欢的,它有一个Workspace的概念。在每一个Workspace内部,可以创建各种聊天窗口,可以导入各种文档。

所以,你可以根据项目来创建Workspace,一个项目建一个。然后,把关于这个项目的所有文档、所有网页都导入Workspace。最后,聊天模式还有两种可以设置:

  1. 对话模式:大模型会根据你给的文档,以及它本来就有的知识储备,综合起来回答。
  2. 查询模式:大模型只是简单地针对文档进行回答。

这个就是我前边说的,Anything LLM比Open WebUI更进阶的地方,完全可以满足个人对知识库的需求。我已经把它作为我在桌面端Workflow的核心。等这两期视频做完,我专门出一期,讲讲我目前在用的AI工具和工作流吧。