【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+联网使用方式
2025/02/18说明:2月18日~2月20日是2024年度博客之星投票时间,走过路过可以帮忙点点投票吗?我想要前一百的实体证书,经过我严密的计算只要再拿到60票就稳了。一人可能会有多票,Thanks♪(・ω・)ノ传送门如下:https://www.csdn.net/blogstar2024/detail/151
我本来以为这个事情其实很简单的,因为我都放了个寒假了,我以为大家应该都已经部署好了吧,结果没有人发链接给我,遗憾自己部署。原以为网上的文章那么多应该已经很全面了吧,本来想直接在社区里发点东西结束,结果发现搜索前列的都在偷工减料,各种细节少写,我在社区里补充了半天都快补出一篇大博客出来了……大抵是因为这个部署过程比较长吧,遗憾还得写博客。
2025/02/18补充:这篇文章写于2025/02/15,当时确实还没有人部署,然后我刚这么说,清华那边就说自己能量化671B用内存加速让单卡4090也能跑,17号浙大公开说自己要将满血R1公开给全国高校使用……赶不上变化了属于是。
以下是我自己记录的最简单的方式,要是有问题请评论区留言,我可能有的东西也会漏写。
以下分成三部分,先教以下怎么安装ollama去本地拉模型,然后再推荐一下Page Assist,再介绍一下openwebui 0.5.10的使用方式,补充一下文件上传、联网搜索功能的设置方式。
我自己的Ubuntu版本是22,如果你的比较低就不要看我的博客了,因为python版本麻烦事很多。高的可以看。
文章目录
- 本地部署
- Page Assist(推荐)
- 第一步,用VSCode连接你的服务器
- 第二步,安装浏览器插件Page Assist
- Openwebui(个人用户不推荐使用哈,麻烦死了)
- Open WebUI搭建部署指南
- 修复文件上传功能
- 联网搜索功能
本地部署
这些步骤都很简单哈,就不列小标题了,直接用序号了。
- 安装ollama:
curl -fsSL https://ollama.com/install.sh | sh
- 启动服务并设置开机自启:
service ollama start systemctl enable ollama
- 拉取DeepSeek:
ollama run deepseek-r1:70b
- 拉取后就有终端交互,随便打点什么测试一下,如果发现没有输出可以参考一下我这篇博客:【BUG】LLM|Ubuntu 用 ollama 部署 DeepSeek 但没输出,llama 有输出-CSDN博客
要拉多少大小可以参考下表:
跑分结果:
我自己的环境是GPU 4090 24G,拉取了70b和7b,70b有点卡卡的,7b还好。
表格来源:在Linux服务器中部署Deepseek等大语言模型 | 香菇肥牛的博客
如果想测试自己的电脑的速度,可以运行ollama指令的时候添加--verbose
参数,例如:
Page Assist(推荐)
参考:国内,怎么使用open webui 网络搜索功能,有大佬指导一下嘛? · open-webui/open-webui · Discussion #3851
第一步,用VSCode连接你的服务器
第一步,你只需要用VSCode连接你的服务器,它就会自动端口映射,把你的127.0.0.1和服务器的关联起来,你就可以用服务器上已有的ollama服务类。
第二步,安装浏览器插件Page Assist
笔者注:我自己只尝试了Edge的,可以哈。
全平台(PC、Mac、安卓、iOS)安装方案如下(自带思维链显示支持和无需设置API的联网搜索,如百度、搜狗等,也支持SearXNG,不同搜索引擎搜索内容不同,根据需求选择):
1、PC、Mac浏览器直接安装插件即可(默认启用Ollama连接状态检查,可设置中禁用)
Chrome:
https://chromewebstore.google.com/detail/page-assist-%E6%9C%AC%E5%9C%B0-ai-%E6%A8%A1%E5%9E%8B%E7%9A%84-web/jfgfiigpkhlkbnfnbobbkinehhfdhndo
Edge:
https://microsoftedge.microsoft.com/addons/detail/page-assist-a-web-ui-fo/ogkogooadflifpmmidmhjedogicnhooa
Firefox:
https://addons.mozilla.org/en-US/firefox/addon/page-assist/
2、安卓手机可以使用kiwi浏览器(需要谷歌框架): https://github.com/kiwibrowser/src.next/releases 再安装该扩展Chrome版,或使用安卓Firefox浏览器安装Firefox版插件,联网可以使用内置无需设置的搜索引擎和自建或公共SearXNG服务,国内建议直接选baidu即可,搜索结果建议设置50 (token消耗更多,但效果更好)
至此你就可以用上最基本的联网搜索能力+R1大模型了!快速高效不费劲,省下几百兆的本地Web客户端。
Openwebui(个人用户不推荐使用哈,麻烦死了)
注意自己的用户要有Root权限哈,没有就别搭了,找你们管理员去。
(openwebui,主要是方便多用户共享,它功能很完善,搜索和知识库什么的也都有)
我的版本:openwebui 0.5.10
Open WebUI搭建部署指南
首先,这种涉及到服务的操作先清空一下当前缓存的sudo密码,避免systemctl enable 指令执行不了:
sudo -k
新建一个用户openwebui
用于运行Open WebUI。本文中,将把程序安装在/opt/openwebui
目录中。
mkdir /opt/openwebui
adduser openwebui
设置好密码,再切换到用户:
chown -R openwebui /opt/openwebui
su openwebui
切换用户后进入这个目录:
cd /opt/openwebui
然后,我们新建一个虚拟环境 (venv),并使用VENV中的PIP安装Open WebUI。
python3 -m venv ./openwebui-venv
/opt/openwebui/openwebui-venv/bin/pip3 install open-webui
推荐使用
/opt/openwebui/openwebui-venv/bin/pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple open-webui
安装,因为官方pip源太卡了。
如果没有报错,Open WebUI就安装好了。
我们来写一个SystemD服务,将Open WebUI运行在后台并实现开机自动启动。
编辑文件/etc/systemd/system/openwebui.service
,输入下面的内容(如果你要改端口就修改一下8080改成你自己想要的端口):
[Unit]
Description=OpenWebUI
After=network.target[Service]
User=openwebui
WorkingDirectory=/opt/openwebui/openwebui-venv
ExecStart=/opt/openwebui/openwebui-venv/bin/open-webui serve --port 8080
Restart=always[Install]
WantedBy=multi-user.target
保存退出后,切换回原本的有root权限的用户:
su 之前的用户
安装一些关键依赖,启动该服务并设置开机自动启动。
sudo apt install sqlite3 # fix sqlite3
sudo apt install apache2-utils # fix htpasswdsystemctl daemon-reload
service openwebui start
systemctl enable openwebui
systemctl enable openwebui的时候,多用户的服务器可能会报奇怪的错误,这个时候清除密码缓存就可以正常enable了:
sudo -k
。
然后,要等启动完成,要等一会儿。如果你等了好久还不行,你可以考虑终端启动看看问题。首先切换到openwebui用户然后运行指令:
su openwebui
cd /opt/openwebui
/opt/openwebui/openwebui-venv/bin/open-webui serve --port 8080
值得一提的是,如果你是在终端直接启动,也就是这种指令:/opt/openwebui/openwebui-venv/bin/open-webui serve --port 8080
,那么以下这个东西出来了并没有启动完成:
要等待更多东西出来才是启动完成了。
如果你是终端启动并且使用vscode,你会看到“端口”界面出现端口映射情况:
如果你不是,你可以通过lsof -i:端口号
指令查看自己的端口占用情况,注意不要打多了空格。
启动完成后,访问http://your_ip_address:8080
,就能看到下面的Open WebUI界面了。
如果
http://127.0.0.1:8080
能访问但是ip+端口访问不了,一般都是防火墙没开放对应端口导致的,sudo ufw allow 端口号
就可以了。
进入界面之后创建管理员账号密码,如果提示权限有问题,很可能是关键依赖没有装,装好就行了,装好之后重新创建:
sudo apt install sqlite3 # fix sqlite3
sudo apt install apache2-utils # fix htpasswd
这样,Open WebUI搭建部署完毕。
修复文件上传功能
坏消息说在最前:我还没解决!!!因为我的openwebui 版本有点高,我没找到最新的解决思路,还在自己探索,但我感觉没什么好探索的后期我可能会考虑降版本。以下是我在网上找到的解决思路,我照着实施了一遍也并没有解决……
上传文件报错:python “‘NoneType’ object has no attribute ‘encode’”,要打开管理员面板装个模型,详见https://github.com/open-webui/open-webui/discussions/8059,根据文档讨论内容,总结所有解决办法如下:
-
重置嵌入模型配置
- 进入Admin Panel → 找到Embedding Model设置
- 手动输入默认模型名称:
sentence-transformers/all-MiniLM-L6-v2
- 点击右侧刷新按钮应用配置
- 适用版本:0.4.7及早期版本
-
代码层修复
# 在/backend/open_webui/apps/retrieval/main.py中添加: default_embedding_model = "sentence-transformers/all-MiniLM-L6-v2" if not app.state.config.RAG_EMBEDDING_MODEL.strip():app.state.config.RAG_EMBEDDING_MODEL = default_embedding_modelupdate_embedding_model(default_embedding_model)
通过添加空值检测和默认值回退机制
-
切换嵌入模型引擎
- 将Embedding Engine改为
ollama
- 设置API地址为本地Ollama服务(如
http://127.0.0.1:11434
) - 适用版本:0.5.5+
- 将Embedding Engine改为
-
更换兼容的嵌入模型
- 推荐模型:
BAAI/bge-m3
(验证有效)nomic-ai/nomic-embed-text-v1.5
(需网络稳定)paraphrase-multilingual
- 避免使用空值或无效模型名称
- 推荐模型:
-
基础设施调整
- Docker用户:更新至0.5.10版并通过compose部署
- 手动安装用户:检查依赖完整性
- 确保网络通畅(影响模型下载)
- 重置向量数据库:
rm -rf vector_storage/
-
开发分支修复
- 尝试合并提交4b7f0c5的修复
- 注意:dev分支可能存在不稳定性
-
替代方案
- 通过API使用外部嵌入服务
- 直接使用Ollama而非OpenWebUI集成
附加建议:
- 出现错误时检查日志:
ERROR[open_webui.routers.retrieval]
段 - 优先使用Docker部署保证环境一致性
- 首次配置时建议:
# 清理旧配置 rm -rf ~/.cache/openwebui/models/ rm -rf vector_storage/
不同版本适用性:
- 0.4.x版本:方案1、2有效
- 0.5.x版本:方案3、4、5更可靠
- 0.5.10+版本:建议优先使用Docker部署
注:若问题持续,建议在Github提交包含完整错误日志的新issue。
联网搜索功能
参考:国内,怎么使用open webui 网络搜索功能,有大佬指导一下嘛? · open-webui/open-webui · Discussion #3851
OpenWebUI接入博查搜索API - 开发调优 - LINUX DO
看了半天我感觉还是不花钱好,于是想选择 Searxng,自己搭。
但搭挺费事的,我现在还没开始搭,之后搭了再补博客吧。
本账号所有文章均为原创,欢迎转载,请注明文章出处:https://shandianchengzi.blog.csdn.net/article/details/145671009。百度和各类采集站皆不可信,搜索请谨慎鉴别。技术类文章一般都有时效性,本人习惯不定期对自己的博文进行修正和更新,因此请访问出处以查看本文的最新版本。
相关文章:
【笔记】LLM|Ubuntu22服务器极简本地部署DeepSeek+联网使用方式
2025/02/18说明:2月18日~2月20日是2024年度博客之星投票时间,走过路过可以帮忙点点投票吗?我想要前一百的实体证书,经过我严密的计算只要再拿到60票就稳了。一人可能会有多票,Thanks♪(・ω・)&am…...
FreeSwitch中mod_dptools和mod_easyroute两个模块及应用场景
FreeSWITCH 中的 mod_dptools 和 mod_easyroute 是两个功能不同的模块,分别服务于呼叫控制和动态路由场景。以下是详细介绍: mod_dptools 功能概述 mod_dptools(Dialplan Tools)是 FreeSWITCH 最核心的模块之一,提供了…...
【Java】泛型与集合篇 —— Set 接口
目录 Set 接口及实现类HashSet 类特点内部实现构造方法LinkedHashSet 类基本概念特点构造方法常用方法适用场景用 Set 对象实现集合运算TreeSet 类特性构造方法常用方法注意事项对象顺序自然排序定制排序注意事项Set 接口及实现类 HashSet 类 HashSet 是 Java 集合框架中 Set…...
DeepSeek 助力 Vue 开发:打造丝滑的右键菜单(RightClickMenu)
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 Deep…...
数据结构与算法面试专题——堆排序
完全二叉树 完全二叉树中如果每棵子树的最大值都在顶部就是大根堆 完全二叉树中如果每棵子树的最小值都在顶部就是小根堆 设计目标:完全二叉树的设计目标是高效地利用存储空间,同时便于进行层次遍历和数组存储。它的结构使得每个节点的子节点都可以通过简…...
【Mysql】索引
【Mysql】索引 一、索引的简介二、索引结构2.1 Hash2.2 二叉搜索树2.3 B树2.4 B树 三、索引分类3.1 主键索引3.2 普通索引3.3 唯一索引3.4 全文索引3.5 聚集索引3.6 非聚集索引3.7 索引覆盖 四、使用索引4.1 自动创建索引4.2 手动创建索引4.2.1 主键索引4.2.2 唯一索引4.2.3 普…...
qt的下载安装详细介绍
下载 我们可以在国内的镜像网站上下载qt安装包,按需下载: 我的需求是在windows上运行,x64的qt5.15.2,所以我下载的是qt-unified-windows-x64-4.6.0-online.exe 下载完成之后,我们来到存放该exe文件的目录,打开命令窗…...
Eclipse插件开发六:使用Web前端技术开发AI助手页面
之前的过程中,我们都不怎么熟悉Eclipse的哪些API,样式也没发怎么去修改,现在我们要修改为用html的方式来编写. 准备一个AI助手聊天页面的html.css,js代码 效果如下所示。 1.快速demo 1.1.准备前端代码 确保准备的前端代码可以在浏览器正常…...
Jackson使用
Jackson 是一个功能强大的 JSON 处理库,除了基本的序列化和反序列化功能外,它还提供了许多其他功能,以满足不同的需求。以下是一些常用的高级功能: 0.普通序列化反序列化 序列化 import com.fasterxml.jackson.databind.ObjectM…...
Maven——Maven开发经验总结(1)
摘要 本文总结了 Maven 开发中的多个关键经验,包括如何根据版本号决定推送到 releases 或 snapshots 仓库,如何在构建过程中跳过测试,父项目如何控制子项目依赖版本,父项目依赖是否能传递到子项目,如何跳过 Maven dep…...
MyBatis-Plus之通用枚举
MyBatis-Plus之通用枚举 前言 MyBatis-Plus中提供了通用枚举,简单来说就是将数据库中的某一字段的代替的含义转换成真实的含义将数据展示给用户,用户在存储时也会将真实值转换成代替的数字存入到数据库中。举个例子:用户性别在数据库中存储…...
React通用登录/注销功能实现方案(基于shadcn/ui)
React通用登录/注销功能实现方案(基于shadcn/ui) 一、功能需求分析二、通用功能封装1. 通用登录表单组件2. 认证Hook封装 三、功能使用示例1. 登录页面实现2. 用户菜单实现 四、路由保护实现五、方案优势 一、功能需求分析 需要实现以下核心功能&#x…...
AI工具篇:利用DeepSeek+Kimi 辅助生成综述汇报PPT
随着科研和学术报告需求的增加,如何高效地准备一份结构清晰、内容充实的PPT已成为许多研究者的挑战。 传统的PPT制作过程繁琐,需要大量文献收集、数据分析和设计工作,而AI工具能够帮助提升效率,减少重复劳动。 本文将介绍如何使用…...
审计级别未启用扩展模式导致查询 DBA_AUDIT_TRAIL 时 SQL_TEXT 列为空
如果查询 DBA_AUDIT_TRAIL 时发现 SQL_TEXT 列为空,但其他字段(如 OS_USERNAME、USERNAME、TIMESTAMP 等)有数据,可能是由于以下原因之一。以下是可能的原因及解决方法: 1. 审计级别未启用扩展模式 默认情况下&#x…...
HTTP 和RESTful API 基础,答疑
一文搞懂RESTful API - bigsai - 博客园 1. API 路径 开头必须 /,表示绝对路径,不支持 . 或 ..(相对路径)。API 结尾 / 通常不需要,但部分框架会自动处理 / → 无 /。 ✅ 推荐 GET /api/v1/products # 资源集合…...
手写简易RPC(实践版)
首先了解rpc rpc-远程过程调用,openFeign,Dubbo都可以算作rpc,以微服务来具体说明,就是在本地不需要去发送请求,通过rpc框架,像调用本地方法一样调用其他服务的方法,本质上还是要经过网络&…...
Day6 25/2/19 WED
【一周刷爆LeetCode,算法大神左神(左程云)耗时100天打造算法与数据结构基础到高级全家桶教程,直击BTAJ等一线大厂必问算法面试题真题详解(马士兵)】https://www.bilibili.com/video/BV13g41157hK?p4&v…...
【DL】浅谈深度学习中的知识蒸馏 | 输出层知识蒸馏
目录 一 核心概念与背景 二 输出层知识蒸馏 1 教师模型训练 2 软标签生成(Soft Targets) 3 学生模型训练 三 扩展 1 有效性分析 2 关键影响因素 3 变体 一 核心概念与背景 知识蒸馏(Knowledge Distillation, KD)是一种模…...
机器学习PCA和LDA
主成分分析(PCA, Principal Component Analysis)和线性判别分析(LDA, Linear Discriminant Analysis)是两种常用的降维方法,它们虽然都用于数据降维,但核心思想和应用场景不同。 PCA(主成分分析…...
tcp协议连接,和传输数据
1、连接 这个是通用的 2、传送数据 当连接建立后,客户端和服务器都可以主动发送数据,分别如下 1》客户端先发送数据 这里是单向的,服务器没有对客户端的数据内容进行应答,只是单纯的对报文应答ack 2》服务器先发送数据...
【异常错误】pycharm debug view变量的时候显示不全,中间会以...显示
异常问题: 这个是在新版的pycharm中出现的,出现的问题,点击view后不全部显示,而是以...折叠显示 在setting中这么设置一下就好了: 解决办法: https://youtrack.jetbrains.com/issue/PY-75568/Large-stri…...
Java基础——代理模式
代理模式是一种比较好理解的设计模式。简单来说就是 我们使用代理对象来代替对真实对象(real object)的访问,这样就可以在不修改原目标对象的前提下,提供额外的功能操作,扩展目标对象的功能。 一、代理模式的主要作用 控制访问:通…...
解锁机器学习核心算法|主成分分析(PCA):降维的魔法棒
一、引言 在机器学习的庞大算法体系中,有十种算法被广泛认为是最具代表性和实用性的,它们犹如机器学习领域的 “十大神器”,各自发挥着独特的作用。这十大算法包括线性回归、逻辑回归、决策树、随机森林、K - 近邻算法、K - 平均算法、支持向…...
sql注入漏洞
目录 一、SQL注入概述 例子背景 正常情况下的查询 SQL注入攻击 利用优先级进行攻击 二、解决SQL注入 使用PreparedStatement接口 步骤和方法 1. 创建PreparedStatement对象 2. 向占位符传入值 3. 执行SQL语句 示例 总结 SQL 注入是一种常见的网络攻击手段。通俗来…...
spring微服务+dubbo框架,某一服务启动时提示多个bean存在
在java的springboot项目中使用DubboService的注解的实现类中,在引用本模块的类时,使用的DubboRefrence注解,在启动项目时报错,提示该类需要以一个bean对象,但是存在了两个,把DubboRefrence的注解改成Autowi…...
React useState 和 useEffect 使用坑点注意总结
React Hooks 使用注意事项 Area: Hooks Date: February 10, 2025 Important: 🌟🌟🌟 React Hooks 注意事项 要点: useState 的初始化值 只在第一次渲染时计算,并且这个值不会随着组件重新渲染而更新。useEffect 可…...
使用rknn进行yolo11-pose部署
文章目录 概要生成ONNX生成RKNN实测效果概要 使用 RKNN 进行 YOLOv11 Pose 部署的必要性在于,RKNN 能将 YOLOv11 Pose 模型转化为适合 Rockchip 硬件平台(如 RV1109、RV1126)执行的格式,充分利用其 AI 加速功能,显著提高推理速度和效率。此外,RKNN 提供模型优化(如量化…...
开源语音克隆项目 OpenVoice V2 本地部署
#本机环境 WIN11 I5 GPU 4060ti 16G 内存 32G #开始 git clone https://github.com/myshell-ai/OpenVoice.git conda create -n opvenv python3.9 -y conda activate opvenv pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/…...
YOLOv12从入门到入土(含结构图)
论文链接:https://arxiv.org/abs/2502.12524 代码链接:https://github.com/sunsmarterjie/yolov12 文章摘要: 长期以来,增强YOLO框架的网络架构一直至关重要,但一直专注于基于cnn的改进,尽管注意力机制在建…...
8.【线性代数】——求解Ax=b
八 求解Axb 1. 解Axb求特解 x p x_p xp求特解 x n x_n xn所有解 2. Axb什么时候有解3. A m ∗ n A_{m * n} Am∗n不同秩的Axb解分析3.1 列满秩 rn<m3.2 行满秩 rm<n3.3 rmn3.4 r<m 且 r < n3.5 综述 1. 解Axb 求解 { x 1 2 x 2 2 x 3 2 x 4 b 1 2 x 1…...
【Quest开发】全身跟踪
软件:Unity 2022.3.51f1c1、vscode、Meta XR All in One SDK V72 硬件:Meta Quest3 最终效果:能像meta的操作室沉浸场景一样根据头盔移动来推断用户姿势,实现走路、蹲下、手势匹配等功能 需要借助UnityMovement这个包 GitHub …...
Spring Boot 示例项目:从零开始构建 Web 应用
一、项目概述 本文档将指导您通过一个示例项目,了解如何使用 Spring Boot 框架构建一个简单的 Web 应用程序。该项目涵盖了从数据模型定义到控制器、服务层以及数据访问层的完整开发流程,帮助您快速掌握 Spring Boot 的基本使用方法。 二、项目结构 1. 项目模块 本示例项…...
Windows 启动 SSH 服务报错 1067
Windows 启动 SSH 服务报错 1067 一、原本安装的 Windows 自带的 SSH 服务 按 Windows 键 -> 设置 -> 系统 -> 可选功能 在 添加的功能 查看是否安装了 OpenSSH 服务 一开始 执行 net start sshd 是可以正常启动的 并且其他机器也可以通过 ssh 访问 这个电脑 但是有…...
【AI战略思考15】我对做自媒体视频博主的初步探索和一些思考
【AI论文解读】【AI知识点】【AI小项目】【AI战略思考】【AI日记】【读书与思考】【AI应用】 导言 因为自己找工作可能没那么快和顺利,事实是比我之前想象的要难很多,所以这几天探索了下自己能否尝试做自媒体或者视频博主来尝试赚点钱,如果做…...
零基础学QT、C++(一)安装QT
目录 如何快速学习QT、C呢? 一、编译器、项目构建工具 1、编译器(介绍2款) 2、项目构建工具 二、安装QT 1、下载QT安装包 2、运行安装包 3、运行QT creator 4、导入开源项目 总结 闲谈 如何快速学习QT、C呢? 那就是项目驱动法&…...
Word接入DeepSeek(API的作用)
1.打开”Word”,点击“文件”。 2.点击“选项”。 3.点击“信任中心”——“信任中心设置”。 4. 勾选”启用所有宏“,点击”确定“。 5.点击“自定义功能区”,勾选上“开发工具”,点击“确定”。 6.返回“文件——开发工具“下的…...
ok113i——交叉编译音视频动态库
提示:buildroot支持ffmpeg和SDL,但博主的ffmpeg是按下面方法编译通过,SDL使用buildroot直接编译也通过; 1. 下载ffmpeg源码 下载链接:https://github.com/FFmpeg/FFmpeg/tags 根据版本需要自行下载压缩包,…...
CSS中五种定位方式(position)对比分析
在 CSS 中,定位方式(position)决定了元素如何相对于其参照物进行定位,同时影响文档流的布局。以下是五种定位方式的对比、参照物说明及代码示例: 1. position: static(默认定位) 参照物&#x…...
Jest单元测试
由于格式和图片解析问题,可前往 阅读原文 前端自动化测试在提高代码质量、减少错误、提高团队协作和加速交付流程方面发挥着重要作用。它是现代软件开发中不可或缺的一部分,可以帮助开发团队构建可靠、高质量的应用程序 单元测试(Unit Testi…...
Lineageos 22.1(Android 15) 开机向导制作
一、前言 开机向导原理其实就是将特定的category的Activity加入ComponentResolver,如下 <category android:name"android.intent.category.SETUP_WIZARD"/>然后我们开机启动的时候,FallbackHome结束,然后启动Launcher的时候…...
前沿计组知识入门
这份PDF文件是一份关于计算机体系结构的讲义,涵盖了从基础概念到高级主题的多个方面。以下是详细的总结和分析: 计算机体系结构概述 定义:计算机体系结构是计算机系统的理论组成部分,根据其属性和功能进行划分,包括计…...
力扣 最长递增子序列
动态规划,二分查找。 题目 由题,从数组中找一个最长子序列,不难想到,当这个子序列递增子序列的数越接近时是越容易拉长的。从dp上看,当遍历到这个数,会从前面的dp选一个最大的数加上当前数,注意…...
在项目中调用本地Deepseek(接入本地Deepseek)
前言 之前发表的文章已经讲了如何本地部署Deepseek模型,并且如何给Deepseek模型投喂数据、搭建本地知识库,但大部分人不知道怎么应用,让自己的项目接入AI模型。 文末有彩蛋哦!!! 要接入本地部署的deepsee…...
已解决IDEA无法输入中文问题(亲测有效)
前言 在使用IDEA的时候,比如我们想写个注释,可能不经意间,输入法就无法输入中文了,但是在其他地方打字,输入法仍然能够正常工作。这是什么原因呢,这篇文章带你解决这个问题! 快捷键 如果你的I…...
Java 语法新特性(Records、Pattern Matching、Sealed Classes)深度解析(11/17/21)✨
一、Records(Java 16) 📝 核心价值:简化不可变数据载体的定义 // 传统POJO vs Record public record User(String name, int age) {} // 自动生成:构造方法/equals()/hashCode()/toString() User user new User(&qu…...
书评与笔记:《如何有效报告Bug》
文章目录 书评笔记核心原则1. 首要目标:让程序员亲眼看到问题2. 次要目标:详细描述问题3. 保持冷静,避免误操作4. 提供额外信息5. 清晰、准确地表达 实用建议不要自作聪明地诊断问题类比:看医生时的症状描述程序员的心理 总结 原文…...
Node.js 中的 fs 模块详解
fs(File System)模块是 Node.js 的核心模块之一,用于处理文件系统的操作,包括文件的读取、写入、删除、重命名等。它提供了同步和异步两种操作方式,适用于不同的场景。 1. 前置知识 1.1 文件系统 文件系统是操作系统…...
【深度学习】如何一步步实现SGD随机梯度下降算法
如何一步步实现SGD随机梯度下降算法 文章目录 如何一步步实现SGD随机梯度下降算法SGD随机梯度下降算法的作用MNIST_SAMPLE数据集SGD算法的七大步骤Step1. 初始化模型参数Step2. 计算预测值predictionsStep3. 计算损失lossStep4. 计算梯度gradientsStep5. 更新模型参数Step6. 重…...
Android Hal AIDL 简介 (一)
Android 接口定义语言 (AIDL) 是一款可供用户用来抽象化 IPC 的工具。 以在 .aidl 文件中指定的接口为例,各种构建系统都会使用 aidl 二进制文件构造 C++ 或 Java 绑定,以便跨进程使用该接口(无论其运行时环境或位数如何)。 AIDL 可以在 Android 中的任何进程之间使用:在…...
【数据分析】2.数据分析业务全流程
业务流程方法论:3阶段6步骤 一、课程核心内容结构 1. 方法论概述 目标:系统性地解决商业中的关键问题框架:分为三个阶段,每个阶段包含两个步骤适用场景:适用于数据分析师、业务经理等需要通过数据分析支持决策的从业…...