为DeepSeek添加本地知识库
为什么要尝试给DeepSeek添加本地知识库呢?作为一个程序员,以前也用过很多AI产品,直到春节DeepSeek爆火,成功在自己的电脑上把AI模型跑起来的时候才真正感受到AI已近在咫尺。未来很多应用和项目都离不开这个工具。或许在我们OA系统中会出现一个AI小助手,我们会问它差旅费报销流程怎么走、合同流程怎么走、负责某某业务的同事的联系方式等等。当然,这应该是最简单的应用场景。时代变了!以前需要找好多个部门的专业人士了解的信息,未来用AI工具就能快速获取,并且是提炼总结后的内容。要实现这些功能,必然需要提供相关的资料内容,这就得有一个知识库。对于知识库的搭建目前已有很多的方案,接下来介绍下自己的体验过程。
工具介绍
AnythingLLM
我主要学习的是anythingLLM这个工具,且抄一段官方介绍吧:AnythingLLM是一个全栈应用程序,您可以使用现成的商业大语言模型或流行的开源大语言模型,再结合向量数据库解决方案构建一个私有ChatGPT,不再受制于人:您可以本地运行,也可以远程托管,并能够与您提供的任何文档智能聊天。AnythingLLM将您的文档划分为称为workspaces (工作区)的对象。工作区的功能类似于线程,同时增加了文档的容器化。工作区可以共享文档,但工作区之间的内容不会互相干扰或污染,因此您可以保持每个工作区的上下文清晰。
以上是官方提供的中文介绍,查看原文请点击这里。AnythingLLM在它的官网上下载对应的系统版本安装即可。表面上看它是一个桌面应用程序,实际是可以部署到自己服务器上作为一个BS应用来使用。
Ollama
AnythingLLM支持多种大语言模型,因为前一段时间在本地安装了Ollama部署了deepseek R1的14b版本,所以就不折腾了,相关的内容可以看看我之前的分享(内容传送门,一定记得回来)。
完整过程
打开AnythingLLM,左边是工作区列表,右边则是对话窗口。知识库的应用是以工作区为维度进行的,要创建本地知识库就需要先创建一个工作区,点击右侧“+新工作区”按钮,输入工作区名称,工作区的创建就完成了,主分享一下工作区设置。在新建的工作区右侧有一个设置按钮(齿轮),然后进入到如下界面:

补一下坑:在启动AnythingLLM前,先完成Ollama的安装启动,并且运行自己喜欢的模型,否则AnythingLLM工作区配置上无法自动读取到聊天模型列表。配置完成后一定记得点一下保存按钮。
接下来就是知识投喂了,也就是怎么向知识库中添加资料。AnythingLLM的资料管理主要有两个途径:一是上传相关的文档,主要支持文本文件、csv以及音频文件等;二是直接添加URL。资料上传的入口在工作区右侧有一个上传按钮,点击后会出现资料管理的界面:

资料添加后还需要移动到工作区

点击保存并嵌入

还没完,下图中的图钉按钮要点一下。

然后就可以开始聊天了。点击工作区下方的聊天记录或“New Thread”按钮,在右侧的对话框中输入我们的需求来进行验证。
我先测试了一下PDF内容查询,由于电脑配置比较低,14b有点卡,切换到1.5b试了试,效果居然还可以!结果如下:

再测试了一下网页内容,确实能读取到相关信息,上传的URL是npm上我自己的一个package,它不仅能做介绍、抄示例代码,居然还添油加醋的讲了一段:

至此简单的本地知识库体验就完成了,虽然这还达不到真正投入使用要求,但也许未来我们可以用这种方式做一个团队知识管理工具,将公司技术沉淀与AI代码编码能力相结合。
最后
知识库能解决很多日常的相关基础应用需求,更深层次的应用还需要努力学习和思考,本地实验的目的在于通过学习相关知识更好的去认识和理解AI技术。好在,出于自身后知后觉的特性,能在网上找到丰富的学习资料,在学习的过程中我会不断的记录,不断的矫正。
为DeepSeek添加本地知识库的更多相关文章
- maven添加本地jar包
今天遇到一个mavan仓库中没有的jar包, 故只能添加本地jar包, 花了不少时间找资料,终于OK.故在此记录. 1. 第一次,在网上看到说可以用<systemPath> 解决, 如下: ...
- Sql server之路 (三)添加本地数据库SDF文件
12月25日 今天搞了半天 添加本地数据库Sdf文件到项目里.总是出现问题. 安装环境 Vs2008 没有安装的环境 1.Vs2008 sp1 2. 适用于 Windows 桌面的 Microsoft ...
- AD组策略添加本地账号、设置允许ping回显
AD组策略添加本地账号 1. 管理工具--组策略管理--选择相应GPO(编辑)----首选项--控制面板设置--本地用户和组--右键添加账号 2.域成员计算机刷新组策略(gpupdate/force) ...
- [原]逆向iOS SDK -- “添加本地通知”的流程分析
观点: 代码面前没有秘密 添加通知的 Demo 代码 - (void)scheduleOneLocalNotification { [[UIApplication sharedApplication] ...
- maven添加本地依赖包方法
1.某些情况下不方便上传本地依赖包到Maven repository,可以通过下面方法添加本地依赖包. 2.方法 1).pom.xml中添加以下代码块 <dependency> <g ...
- 在Android Studio添加本地aar包引用
1.如何在Android Studio添加本地aar包引用 https://jingyan.baidu.com/article/2a13832890d08f074a134ff0.html 2.完成上述 ...
- Ubuntu Linux系统三种方法添加本地软件库
闲着没事教教大家以Ubuntu Linux系统三种方法添加本地软件库,ubuntu Linux使用本地软件包作为安装源——转2007-04-26 19:47新手重新系统的概率很高,每次重装系统后都要经 ...
- maven添加本地jar到本地库中
maven添加本地jar到本地库中(用于远端地址下载不了的情况) 在dos命令行执行以下命令将会吧ojdbc14-10.2.0.4.0.jar添加到本地库中(ps:必须已经安装了,maven,并配置了 ...
- intelliJ IDEA 怎么添加本地的idea web项目
概述:这篇文章主要讲述idea开发工具怎么添加本地的idea web项目. 一:首先介绍一下idea web项目的目录结构: 上图详细简单的说了一下idea web项目的文件情况. 二:说明一下部署本 ...
- Maven中如何将源码之外的文件打包及添加本地jar
<build> <resources> <resource> <directory>src/main/resources</directory&g ...
随机推荐
- Linux C/C++编程之静态库
[图书推荐]<Linux C与C++一线开发实践(第2版)>_linux c与c++一线开发实践pdf-CSDN博客 <Linux C与C++一线开发实践(第2版)(Linux技术丛 ...
- 一比一还原axios源码(七)—— 取消功能
按照惯例,我们先来看下官方的例子: 你可以通过axios的CancelToken工厂函数,生成一个source,然后把这个对象作为参数传递给axios,最后,需要取消的时候调用source的cance ...
- 使用TOPIAM 轻松搞定「JumpServer」单点登录
本文将介绍 TOPIAM 与 JumpServer 集成步骤详细指南. 应用简介 JumpServer 是广受欢迎的开源堡垒机,是符合 4A 规范的专业运维安全审计系统.JumpServer 帮助企业 ...
- PM-软件最难的不是开发程序,而是需求
最近几个月,关于人工智能的惊人文章在互联网泛滥.这也引发了很多人的担心--软件开发人员可能很快就会失业,被人工智能取代.他们想象所有的企业高管和产品研究人员将绕过大多数或所有的软件开发人员,直接要求人 ...
- .NET周刊【12月第2期 2024-12-08】
国内文章 终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名) https://www.cnblogs.com/sheng_chao/p/18581139 升讯威在线客服与营销系 ...
- TypeScript 源码详细解读(2)词法1-字符处理
本节文章研究的代码位于 tsc/src/compiler/scanner.ts 字符 任何源码都是由很多字符组成的,这些字符可以是字母.数字.空格.符号.汉字等-- 每一个字符都有一个编码值,比如字符 ...
- Qt/C++开发经验小技巧306-310
远程过很多人电脑远程分析问题,发现一个通病,比如明明修改了某个数据库或者配置文件,结果运行程序一看,还是旧的数据,死活都不行,查了半天程序,始终找不到问题所在.最终查到原来是程序读取的文件根本不是修改 ...
- Qt编写的项目作品10-本地摄像头综合应用示例
一.功能特点 同时支持 QCamera.ffmpeg.v4l2 三种内核解析本地摄像头. 提供函数 findCamera 自动搜索环境中的所有本地摄像头设备,搜索结果信号发出. 支持自动搜索和指定设备 ...
- 9.24java wab实现创建新界面验证码
<!DOCTYPE html> <html> <head> <title>User Login</title> <style> ...
- Python 添加类型标注 | 散发着自由松散气息的代码
Python 添加类型标注 | 散发着自由松散气息的代码 Python 如此简洁,书写者在声明变量时甚至无需考虑类型. 但是简洁与复杂间,是存在一个平衡点的.当我们书写较为复杂的项目时,还是希望可以拥 ...