1 使用ollama完成DeepSeek本地部署中使用ollama完成deepSeek的本地部署和运行,此时我可以在PowerShell中通过对话的方式与DeepSeek交流,但此时本地模型不具备联网搜索能力,无法根据网上信息来回答我的问题,同时我也无法将我自己的知识给他参考,这样本地模型相比直接使用官网的访问接口没有任何优势,接下来我需要做两件事情,来发挥出本地模型的优势:

(1)建立本地知识库,然后将我自己的资料和数据文件放入知识库中,让模型在回答问题是可以参考我本地知识来组织答案;这可以在避免私人数据泄露的同时让模型变成了自己的专有模型,根据知识库的内容实现定向知识领域应用。

(2)通过第三方工具或脚本实现本地模型的联网搜索能力,这样本地模型就能够完全具备官网接口的能力,且本地模型搜索时不会受平台接口搜过内容过滤的限制。

总结网上的实现方案,当前有两种比较有意义的部署方案:

(1)方案一ollama+anythingLLM:开源模型本地部署+本地知识库构建,完全离线运行,适合不需要联网完全本地运行的场景;

(2)方案二ollama+浏览器Page Assist插件:开源模型本地部署+本地知识库构建+联网搜索功能,适合需要联网搜索的场景。

1 方案一:使用anythingLLM实现本地知识库构建

安装anythingLLM有两种方式,一种是直接安装桌面版,一种是通过Docker安装;第一种方式安装方便,已经能满足一般用户的使用要求,但安装过程中需要下载库和相关依赖,由于下载速度很慢这个过程十分漫长(可以考虑自己上点□□上网手段),我等待了应该有三四个小时;第二种方式相比于第一种方式功能更多一些,支持多用户访问、嵌入聊天部件、密码保护和用户管理且方便移植,且docker安装anythingLLM可以更换国内镜像源,安装速度要快一些。

1.1 安装anythingLLM桌面版

下载地址:https://anythingllm.com/desktop



双击安装包选择自己的安装位置即可安装,保持联网状态,等待自动下载相关依赖和库就可以;

软件介绍和使用说明可以参考官网:https://docs.anythingllm.com/introduction

1.2 通过Docker安装anythingLLM

Docker是一种虚拟化的容器技术,能够实现运行环境与运行设备基础架构的隔离,允许用户将应用和依赖打包部署在一个可移植的容器内,在任何支持Docker的环境中运行,方便移植和部署。

(1)去docker官网可以下载Docker安装包:https://www.docker.com



双击安装程序,勾选使用WSL 2代替Hyper-V,点击OK等待安装完成。



安装完成后需要重启电脑。

(2)运行docker,若运行失败,可以打开PowerShell,更新一下wsl版本:输入wsl --update,若仍然失败,重装一下docker。

Docker说明:

(A) Docker是依赖Linux环境的,无法直接在Windows系统上运行,所以通过WSL2和Hypera-V可以搭建Docker所需的虚拟运行环境;

(B)WSL2是一个轻量级的虚拟化技术,底层利用Hyper-V技术运行了Linux内核来提供完整的调用,无需模拟整个硬件环境,资源占用少,WSL2更适合那些需要在Windows上便捷地使用Linux环境的用户;

(C)Hyper-V是一个全面完整的虚拟化技术和虚拟机管理器,模拟了整个Linux的硬件环境,支持运行独立的操作系统,则适用于需要完整虚拟化功能的场景;

(D)我仅需一个Linux环境运行Docker,所以选择WSL2,节约硬件资源。

(3)打开Docker软件,点击右上角设置,再点击Docker Engine,并添加国内镜像源,然后点击左下角的Apply&Restart;

"registry-mirrors": [
"https://docker.m.daocloud.io/",
"https://huecker.io/",
"https://dockerhub.timeweb.cloud",
"https://noohub.ru/",
"https://dockerproxy.com",
"https://docker.mirrors.ustc.edu.cn",
"https://docker.nju.edu.cn",
"https://xx4bwyg2.mirror.aliyuncs.com",
"http://f1361db2.m.daocloud.io",
"https://registry.docker-cn.com",
"http://hub-mirror.c.163.com"
]





(4)点击右下角的Terminal或者通过cmd运行PowerShell,然后输入命令docker pull mintplexlabs/anythingllm下载anythingllm;





(5)下载完成后再Termical或PowerShell中输入一下代码并运行即可将anythingLLM运行起来;

$env:STORAGE_LOCATION="$HOME\Documents\anythingllm"; `
If(!(Test-Path $env:STORAGE_LOCATION)) {New-Item $env:STORAGE_LOCATION -ItemType Directory}; `
If(!(Test-Path "$env:STORAGE_LOCATION\.env")) {New-Item "$env:STORAGE_LOCATION\.env" -ItemType File}; `
docker run -d -p 3001:3001 `
--cap-add SYS_ADMIN `
-v "$env:STORAGE_LOCATION`:/app/server/storage" `
-v "$env:STORAGE_LOCATION\.env:/app/server/.env" `
-e STORAGE_DIR="/app/server/storage" `
mintplexlabs/anythingllm;



点击端口3001:3001或在浏览器访问http://localhost:3001/ 即可进入anythingLLM界面。

1.3 anythingLLM配置本地知识库——基于桌面版

1.3.1 将ollama和DeepSeek模型运行起来

WIN+R快捷键,输入cmd打开PowerShell,输入ollama serve可以将ollama运行起来,默认ollama可以通过本地的11434端口访问,新开一个PowerShell窗口输入curl http://localhost:11434可以验证。



输入ollama run deepseek-r1:32b即可将本地模型运行起来。

1.3.2 配置本地anythingLLM

运行anythingLLM软件,第一次运行会有一些提示,可以全部跳过,进入如下界面,点击下方的设置可以配置自己的模型。



(1)首先点击LLM首选项,选择自己的模型提供商为ollama,然后在下方Ollama Base URL处填上ollama的访问地址:http://127.0.0.1:11434 ,Ollama Keep Alive选择Forever使模型一直保持激活状态;



(2)向量数据库用于存储自己知识库转化得到的模型可识别的向量数据,使用默认的LanceDB即可;



(3)先打开PowerShell输入ollama pull nomic-embed-text下载文本嵌入模型用于将文本转化为向量以及进行相似度计算;在anythingLLM设置的Embedder首选项中选择Ollama并选择刚刚下载的模型,然后保存更改;





(4)返回聊天界面新建工作区,并点击上传文件;



(5)上传要放入知识库中的文件,然后选中并点击Move to Workspace,将文件导入工作空间,然后下划到工作空间,点击Save and Embeded;







(6)嵌入完成后点击pin to workspace即可返回聊天界面,此时向模型提问deepseek即可根据知识库中的知识进行回答。



2 方案二:使用Page Assist插件实现本地知识库构建+联网搜索

2.1 安装浏览器

已知Firefox和Chrome浏览器都支持Page Assist插件,edge暂不支持,我测试了火狐浏览器安装Page Assist,火狐浏览器可以去官网下载:https://www.firefox.com.cn/

2.2 安装Page Assist插件

(1)打开火狐浏览器,点击右上角拓展——管理拓展;



(2)搜索Page Assist,出来的第一个就是,点击添加等待下载完成会弹窗询问是否添加Page Assist,选择添加;





2.3 接入本地模型并与性能

(1)在配置Page Assist之前先在PowerShell中输入ollama serve将ollama运行起来;

(2)点击拓展中的Page Assist插件进入Page Assist界面,点击右上角设置,先在一般设置里将语言设置为简体中文,ollama设置中已经默认配置好ollama的默认端口,无需更改;







(3)返回聊天界面,在顶部选择你本地部署的模型,此时即可与本地模型进行对话;

2.4 开启本地模型联网搜索功能

打开左下角的联网功能,即可开启模型的联网搜索功能,本地模型可以根据搜索到的信息来回答我的提问;在一般设置里的管理网络设置中,可以设置使用的搜索引擎和搜索的结果数;



2.5 配置本地知识库



(1)首先打开PowerShell输入ollama pull nomic-embed-text下载文本嵌入模型用于将文本转化为向量以及进行相似度计算;



(2)在Page Assist设置——RAG设置中选择刚刚安装的nomic-embed-text模型并保存;



(3)在管理知识中点添加新知识,为新知识起一个标题,然后将需要放入知识库的文档拖入并提交;



(4)返回聊天界面,在输入窗中选择知识库,然后提问知识库中的相关知识,模型即可根据本地知识库进行回答。

2 本地部署DeepSeek模型构建本地知识库+联网搜索详细步骤的更多相关文章

  1. webpack+vue+vueRouter模块化构建小demo实例超详细步骤(附截图、代码、入门篇)

    说明:本demo使用yarn代替npm指令来下载一系列依赖,有详细指令说明:使用WebStorm下Terminal来输入指令: >开始(确认已经安装node环境和yarn包管理工具) 1.新建项 ...

  2. Vue2+VueRouter2+webpack+vue-cil构建完整项目实例(附:详细步骤截图)

    引用1:https://segmentfault.com/a/1190000008557578 引用2:https://blog.csdn.net/wulala_hei/article/details ...

  3. RocketMq灰皮书(二)------本地部署启动MQ

    RocketMq灰皮书(二)------本地部署启动MQ Windows10本地部署RocketMQ 在上一篇文章中,我们对rocket的几个基本概念进行了介绍,也了解了业内几大消息中间件的区别.在本 ...

  4. Jenkins构建本地项目到服务器上自动部署的方法

    博主原创,转载请注明. 最近在用Jenkins做项目的自动部署,由于项目需求,现在要在本地构建后再放到Tomcat里.以下是本地构建步骤: 名称填写好,下面的选项是可选的. 源码管理这里选择none. ...

  5. 升级本地部署的CRM到Dynamics 365及部分新特性介绍。

    关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复241或者20161226可方便获取本文,同时可以在第一间得到我发布的最新的博文信息,follow me!我的网站是 www.luoyong. ...

  6. 微服务架构 - 基于Harbor构建本地镜像仓库

    之前写过<搭建docker本地镜像仓库并提供权限校验及UI界面>文章,然后有同仁评论道这样做太复杂了,如果Harbor来搭建会更简单同时功能也更强大.于是抽时间研究了基于Harbor构建本 ...

  7. (转)EOSIO开发(一)使用Docker构建本地环境

    前言 一直想学习EOS开发,但是不知道怎么入门.最近从GitHub上下载了源码,发现官方已经提供了完整的EOSIO开发入门教程,既然如此赶紧开始行动.今天是系列文章的第一篇,介绍如何使用Docker搭 ...

  8. 分布式监控CAT服务端的本地部署

    一.CAT简介 CAT(Central Application Tracking),是美团点评基于 Java 开发的一套开源的分布式实时监控系统.美团点评基础架构部希望在基础存储.高性能通信.大规模在 ...

  9. windows下百度离线人脸识别本地部署与使用(nodejs做客户端,c++做服务端,socket做通信)

    1.离线人脸识别本地部署 详情请阅读百度人脸识别官网 2.nodejs做socket通信的客户端 为什么不直接通过调用c++编译的exe获得人脸识别结果? 原因:exe运行时会加载很多模型而消耗很多时 ...

  10. springboot+vue本地部署

    springboot+vue本地部署 最近完成项目,需要部署到本地,期间遇到了一些问题,最后写下流程以作记录. springboot打包 这块的内容较为简单一般为在pom.xml中加入 <bui ...

随机推荐

  1. .NET周刊【12月第2期 2024-12-08】

    国内文章 终于解决了.net在线客服系统总是被360误报的问题(对软件进行数字签名) https://www.cnblogs.com/sheng_chao/p/18581139 升讯威在线客服与营销系 ...

  2. 8.mysql表分区

    MySQL表分区 表分区是将⼀个表的数据按照⼀定的规则⽔平划分为不同的逻辑块,并分别进⾏物理存储,这个规则就叫做分区函数,可以有不同的分区规则 5.7可以通过show plugins语句查看当前MyS ...

  3. gitlab16 gitlab-runner

    gitlab-runner verify --delete FederatedKMeansSecureModelInference gitlab-runner register  --url http ...

  4. 龙哥量化:通达信分时均线在5分钟K线图上显示

    代写技术指标.量化策略,微信:Long622889 龙哥QQ:591438821 T1:=DAY<>REF(DAY,1);T2:=BARSLAST(T1)+1;JX:SUM(AMO,T2) ...

  5. 如何控制bean的加载顺序?

    写在前面 springboot遵从约定大于配置的原则,极大程度的解决了配置繁琐的问题.在此基础上,又提供了spi机制,用spring.factories可以完成一个小组件的自动装配功能. 在一般业务场 ...

  6. Qt/C++编写onvif工具(搜索/云台/预置位/OSD/录像存储)

    一.前言 从最初编写这个工具开始的时间算起来,至少5年多,一直持续完善到今天,这个工具看起来小也不小大也不大,但是也是经历过无数个现场的洗礼,毫不夸张的说,市面上能够遇到的主流的厂商的设备,都测试过, ...

  7. 国产系统UOS上的视频监控系统

    一.功能特点 (一)软件模块 视频监控模块,各种停靠小窗体子模块,包括设备列表.图文警情.窗口信息.云台控制.预置位.巡航设置.设备控制.悬浮地图.网页浏览等. 视频回放模块,包括本地回放.远程回放. ...

  8. Python 元类(Meta Class):解密 Python 面向对象编程的幕后推手

    在 Python 编程中,我们每天都在和类打交道,但是你是否也和我一样想过:类本身是什么?是谁创建了类?元类(Meta Class)就是用来创建类的"类".今天让我们一起深入理解这 ...

  9. python基础应用

    pip的使用 升级pip python3 -m pip install --upgrade pip 镜像源设置 查看镜像源 pip config list 指定镜像源更新依赖 pip3 install ...

  10. linux输出文件名及全路径

    有时候需要输出一个文件夹下的文件名及所以绝对路径,在网上找到是这个命令 ls | sed "s:^:`pwd`/:" 看命令不难理解,先是ls列出所有文件名,再使用管道符进行后续操 ...