AI大模型(二)基于Deepseek搭建本地可视化交互UI

AI大模型(二)基于Deepseek搭建本地可视化交互UI

DeepSeek开源大模型在榜单上以黑马之姿横扫多项评测,其社区热度指数暴涨、一跃成为近期内影响力最高的话题,这个来自中国团队的模型向世界证明:让每个普通人都能拥有媲美GPT-4o的智能体,不再是硅谷巨头的专利。随着DeepSeek的爆火和出圈、以及社区的完善和上手门槛的降低,AI大模型与普通人的距离也越来越近,对AI大模型的使用在未来很可能会成为一项主流的工作技能。基于此,本系列文章将以DeepSeek为例,从本地大模型部署、可视化服务UI、本地知识库搭建、大模型部署调优、破除大模型限制以及角色定制、酒馆使用等方面进行保姆级教学(前两篇免费公开,后续文章请移步付费专栏或知识星球观看),让你轻松玩转大模型,享受大模型带来的便利与乐趣。

在这里插入图片描述

在本文开始之前,我们先简单回顾下上篇文章的内容,在上篇文章中我们详细介绍了基于DeepSeek的本地大模型部署教程,在文章结尾处我们已经能够在本地命令行中实现与大模型的对话服务。但是我们发现这种原始的交互方式非常不友好,并且功能和拓展都比较单一,难以满足我们的需求。因此本文将在此基础上,通过多种方式搭建基于Deepseek的本地可视化交互UI,并实现功能拓展。大家可以在下面Open WebUI、ChatBox和Page Assist插件三种方式中选择一种进行实现即可。

一. Open WebUI

Open WebUI 官网: https://docs.openwebui.com/

Open WebUI GitHub: https://docs.openwebui.com/

Open WebUI(前身为Ollama WebUI)是一个开源、可扩展、功能丰富且用户友好的 AI 大模型托管平台,它提供了丰富、易用的用户界面,并支持各种 LLM 提供商(如 Ollama)和与 OpenAI 兼容的 API,还内置 RAG 推理引擎等丰富拓展功能,使其成为强大的 AI 部署解决方案之一,尤其是与Ollama具有较好的兼容性。

1. 环境准备

Open WebUI的部署过程比较复杂,其主要有Docker和Python两种搭建方式,鉴于网上对于Docker搭建方式的教程比较多,因此本文将以Pyhton搭建方式为主进行讲解。在安装Open WebUI之前,我们首先需要在本地安装好Python 3.11版本环境(建议使用uvconda管理),对于Python环境的安装这里就不再展开,网上相关教程很多且安装也较为简单,大家可以自行了解。需要注意的是: Python 3.12 似乎可以运行,但尚未经过全面测试;Python 3.13 完全未经测试(使用时风险自负)。

在这里插入图片描述

2. 安装Open WebUI

在终端中执行以下命令,由于需要下载安装大量依赖组件和模型(语音模型、向量嵌入模型、图像识别模型等),这个过程可能会比较久,请耐心等待;注意如果进度条长时间卡着不动,尝试多按几下回车试试:

pip install open-webui

在这里插入图片描述

3. 启动Open WebUI

等待安装完成后,接着通过以下命令启动Open WebUI服务,命令行输出Open WebUI符号即为启动成功:

open-webui serve

在这里插入图片描述

4. 访问Open WebUI

服务启动完成后,在浏览器输入地址并访问http://localhost:8080,会看到如下界面(注意后台Python运行窗口不要关掉,否则Open WebUI服务会停止),然后点击“开始使用”后需要创建账号才可使用,这里账号仅会存储在本地管理:

在这里插入图片描述
在这里插入图片描述

5. 使用Open WebUI

创建账号并登陆完成后,后有一个短暂的页面空白期,Open WebUI会自动连接本地Ollama端口(请确保Ollama服务已开启),连接完成后会出现完整的对话窗口和本地模型列表:

在这里插入图片描述

(1)基本对话服务

在这里插入图片描述

(2)高级系统设置

  • 提示词与模型参数

在这里插入图片描述

  • 修改外部链接

在这里插入图片描述

  • 开启联网搜索

在这里插入图片描述

二. Chatbox AI

Chatbox AI 官网: https://chatboxai.app/zh

Chatbox AI GitHub: https://github.com/Bin-Huang/chatbox

类似于Open WebUI,Chatbox AI同样也是开源、可拓展的适用于AI大模型(GPT、Claude、Gemini、Ollama…)的用户友好型桌面客户端应用程序,支持本地模型托管和众多先进AI模型的API接入,可在 Windows、MacOS、Android、iOS、Linux 甚至网页版上直接使用,相比Open WebUI来说,Chatbox AI的使用更加简单、无需额外准备任何环境。

在这里插入图片描述

1. 配置Ollama服务

点击“启动网页版”后会进入Chatbox AI的主界面,这里会让你选择大模型提供商(包括Chatbox API、OpenAI API、Ollama API等),我们需要选择Ollama API来连接本地部署的Ollama服务,但是此时浏览器是无法直接访问本地部署的Ollama API的(涉及跨域问题),因此我们需要在之前配置的基础上,再添加对跨域支持的系统环境变量OLLAMA_ORIGINS = *

在这里插入图片描述

环境变量添加完成后同样需要重启电脑或Ollama服务才可生效,然后我们重新进入Chatbox AI的设置中,可以发现已可以正确检测到Ollama API和本地模型,选择模型并保存即可:

在这里插入图片描述

2. 使用Chatbox AI

配置Ollama服务完成后,跟Open WebUI的使用类似,我们可以直接在对话页面与本地大模型进行交互,并支持对系统提示词或大模型参数进行调整,其他的区别可能就是一些功能丰富性上的差异,大家可以自行探索。注意这里如果是英文,可以到设置中更改为简体中文显示:

在这里插入图片描述
在这里插入图片描述

三. Page Assist

Page Assist 插件: https://chromewebstore.google.com/detail/page-assist

Page Assist Github: https://github.com/n4ze3m/page-assist

除了上述的Open WebUI和Chatbox AI之外,我们这里再介绍一个更加轻量级的可视化工具Page Assist,它是一个浏览器插件形式的开源大模型用户交互与管理应用,该插件可兼容的浏览器类型如下:

在这里插入图片描述

我们直接在浏览器商店中下载并安装Page Assist 插件后,点击插件即可进入Page Assist主界面,如果展示Ollama is running即表示Ollama服务已连接成功(可在右上角设置中修改为简体中文),注意在左上角还需要选择模型来进行对话 :

在这里插入图片描述

除此之外,要使用Page Assist还需要在设置>RAG页面里选择一个文本嵌入模型,这里可以使用专业的嵌入模型(需在Ollama下载)或者直接使用deepseek-r1:7b作为嵌入模型,不过建议使用更专业的嵌入模型比如nomic-embed-text,在RAG中效果会更好;并且Page Assist也支持联网搜索、上传文档/图片等操作:

在这里插入图片描述

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/894654.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++基础系列【2】C++基本语法

本文作为入门文档&#xff0c;简要介绍C的非常基本的语法&#xff0c;后面章节会详细介绍C的各个语法。 C 程序结构 C程序的基本结构包括头文件、命名空间、类和函数等。 下面我们通过Hello&#xff0c;World来展示这些元素。 #include <iostream> // 包含标准输入输…

【C语言】球球大作战游戏

目录 1. 前期准备 2. 玩家操作 3. 生成地图 4. 敌人移动 5. 吃掉小球 6. 完整代码 1. 前期准备 游戏设定:小球的位置、小球的半径、以及小球的颜色 这里我们可以用一个结构体数组来存放这些要素,以方便初始化小球的信息。 struct Ball {int x;int y;float r;DWORD c…

图的基本术语——非八股文

我之前只看到了数据结构与算法的冰山一角&#xff0c;感觉这些术语只会让知识越来越难理解&#xff0c;现在来看&#xff0c;他们完美抽象一些概念和知识&#xff0c;非常重要。 本篇概念肯定总结不全&#xff0c;只有遇到的会写上&#xff0c;持续更新&#xff0c;之前文章已经…

oracle: 表分区>>范围分区,列表分区,散列分区/哈希分区,间隔分区,参考分区,组合分区,子分区/复合分区/组合分区

分区表 是将一个逻辑上的大表按照特定的规则划分为多个物理上的子表&#xff0c;这些子表称为分区。 分区可以基于不同的维度&#xff0c;如时间、数值范围、字符串值等&#xff0c;将数据分散存储在不同的分区 中&#xff0c;以提高数据管理的效率和查询性能&#xff0c;同时…

【单层神经网络】基于MXNet的线性回归实现(底层实现)

写在前面 刚开始先从普通的寻优算法开始&#xff0c;熟悉一下学习训练过程下面将使用梯度下降法寻优&#xff0c;但这大概只能是局部最优&#xff0c;它并不是一个十分优秀的寻优算法 整体流程 生成训练数据集&#xff08;实际工程中&#xff0c;需要从实际对象身上采集数据…

本地快速部署DeepSeek-R1模型——2025新年贺岁

一晃年初六了&#xff0c;春节长假余额马上归零了。今天下午在我的电脑上成功部署了DeepSeek-R1模型&#xff0c;抽个时间和大家简单分享一下过程&#xff1a; 概述 DeepSeek模型 是一家由中国知名量化私募巨头幻方量化创立的人工智能公司&#xff0c;致力于开发高效、高性能…

C++11详解(一) -- 列表初始化,右值引用和移动语义

文章目录 1.列表初始化1.1 C98传统的{}1.2 C11中的{}1.3 C11中的std::initializer_list 2.右值引用和移动语义2.1左值和右值2.2左值引用和右值引用2.3 引用延长生命周期2.4左值和右值的参数匹配问题2.5右值引用和移动语义的使用场景2.5.1左值引用主要使用场景2.5.2移动构造和移…

在K8S中,pending状态一般由什么原因导致的?

在Kubernetes中&#xff0c;资源或Pod处于Pending状态可能有多种原因引起。以下是一些常见的原因和详细解释&#xff1a; 资源不足 概述&#xff1a;当集群中的资源不足以满足Pod或服务的需求时&#xff0c;它们可能会被至于Pending状态。这通常涉及到CPU、内存、存储或其他资…

手写MVVM框架-构建虚拟dom树

MVVM的核心之一就是虚拟dom树&#xff0c;我们这一章节就先构建一个虚拟dom树 首先我们需要创建一个VNode的类 // 当前类的位置是src/vnode/index.js export default class VNode{constructor(tag, // 标签名称&#xff08;英文大写&#xff09;ele, // 对应真实节点children,…

linux内核源代码中__init的作用?

在 Linux 内核源代码中&#xff0c;__init是一个特殊的宏&#xff0c;用于标记在内核初始化阶段使用的变量或函数。这个宏的作用是告诉内核编译器和链接器&#xff0c;被标记的变量或函数只在内核的初始化阶段使用&#xff0c;在系统启动完成后就不再需要了。因此&#xff0c;这…

【大数据技术】教程03:本机PyCharm远程连接虚拟机Python

本机PyCharm远程连接虚拟机Python 注意:本文需要使用PyCharm专业版。 pycharm-professional-2024.1.4VMware Workstation Pro 16CentOS-Stream-10-latest-x86_64-dvd1.iso写在前面 本文主要介绍如何使用本地PyCharm远程连接虚拟机,运行Python脚本,提高编程效率。 注意: …

pytorch实现门控循环单元 (GRU)

人工智能例子汇总&#xff1a;AI常见的算法和例子-CSDN博客 特性GRULSTM计算效率更快&#xff0c;参数更少相对较慢&#xff0c;参数更多结构复杂度只有两个门&#xff08;更新门和重置门&#xff09;三个门&#xff08;输入门、遗忘门、输出门&#xff09;处理长时依赖一般适…

PAT甲级1032、sharing

题目 To store English words, one method is to use linked lists and store a word letter by letter. To save some space, we may let the words share the same sublist if they share the same suffix. For example, loading and being are stored as showed in Figure …

最小生成树kruskal算法

文章目录 kruskal算法的思想模板 kruskal算法的思想 模板 #include <bits/stdc.h> #define lowbit(x) ((x)&(-x)) #define int long long #define endl \n #define PII pair<int,int> #define IOS ios::sync_with_stdio(0),cin.tie(0),cout.tie(0); using na…

为何在Kubernetes容器中以root身份运行存在风险?

作者&#xff1a;马辛瓦西奥内克&#xff08;Marcin Wasiucionek&#xff09; 引言 在Kubernetes安全领域&#xff0c;一个常见的建议是让容器以非root用户身份运行。但是&#xff0c;在容器中以root身份运行&#xff0c;实际会带来哪些安全隐患呢&#xff1f;在Docker镜像和…

js --- 获取时间戳

介绍 使用js获取当前时间戳 语法 Date.now()

ConcurrentHashMap线程安全:分段锁 到 synchronized + CAS

专栏系列文章地址&#xff1a;https://blog.csdn.net/qq_26437925/article/details/145290162 本文目标&#xff1a; 理解ConcurrentHashMap为什么线程安全&#xff1b;ConcurrentHashMap的具体细节还需要进一步研究 目录 ConcurrentHashMap介绍JDK7的分段锁实现JDK8的synchr…

Vue和Java使用AES加密传输

背景&#xff1a;Vue对参数进行加密&#xff0c;对响应进行解密。Java对参数进行解密&#xff0c;对响应进行解密。不拦截文件上传类请求、GET请求。 【1】前端配置 安装crypto npm install crypto-js编写加解密工具类encrypt.js import CryptoJS from crypto-jsconst KEY …

开发板目录 /usr/lib/fonts/ 中的字体文件 msyh.ttc 的介绍【微软雅黑(Microsoft YaHei)】

本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。 本文是博文 https://blog.csdn.net/wenhao_ir/article/details/145433648 的延伸扩展。 问&#xff1a;运行 ls /usr/lib/fonts/ 发现有一个名叫 msyh.ttc 的字体文件&#xff0c;能介绍…

[ESP32:Vscode+PlatformIO]新建工程 常用配置与设置

2025-1-29 一、新建工程 选择一个要创建工程文件夹的地方&#xff0c;在空白处鼠标右键选择通过Code打开 打开Vscode&#xff0c;点击platformIO图标&#xff0c;选择PIO Home下的open&#xff0c;最后点击new project 按照下图进行设置 第一个是工程文件夹的名称 第二个是…