[开源/教程]使用Ollama+ESP32实现本地对话助手(可接入deepseek等模型)
[开源/视频教程]使用Ollama+ESP32实现本地对话助手(可接入deepseek等模型)
简介
使用ollama实现本地模型的定制, 可以做到数据不泄露以及绕开检测的效果, 之后使用嘉立创的esp32开发板实现简单的对话助手
同时接入本文档, 可以直接使用AI对话的方式进行文档处理
XuSenfeng/ai-chat-local: 使用esp32+ollama实现本地模型的对话以及联网+工具调用
国内地址: ai-chat-local: 使用esp32+ollama实现本地模型的对话以及联网+工具调用
视频教程: [开源/教程]使用本地deepseek模型+嘉立创esp32搭建自己的语音助手(可处理文件以及联网获取信息)_哔哩哔哩_bilibili
Windows环境搭建
模型
这里我看的教程是DeepSeek R1,本地部署才是王道!_哔哩哔哩_bilibili
下载ollama, 使用默认安装即可
文件位置
按个人需求更改
下载以后默认是在C盘, 可以任务管理器把Ollama关闭以后复制到其他位置然后建立一个链接, 打开任务管理器Ctrl + Shift + Esc, 关闭Ollama的任务(可能只有两个)
把这个C:\Users\jiao\AppData\Local\Programs\Ollama
剪切到其他路径, 之后使用管理员权限打开cmd
输入mklink /d "C:\Users\jiao\AppData\Local\Programs\Ollama" 你剪切到的位置
为了可以方便的使用
ollama
命令可以把它你复制到的文件夹加到环境路径里面
模型位置
下载的模型很大一般不会放在C盘, 可以添加环境变量
后面的是我建立的模型文件夹
重启电脑!!!
基础使用
从模型库找一个喜欢的模型下载下来, 比如使用deepseek-R1
选一个适合的模型大小(ollama会自动检测你的显卡, 需要安装CUDA驱动), 只有一个CPU的话建议使用比较小的模型
把右边的命令输入cmd里面, 我这里使用14b的模型, 第一次输入会自动下载, 可以使用ollama list
查看现有的模型, 输入ollama run
的命令以后可以进行对话
模型定制
这里使用上面的教程up提供的示例文件, 建立一个文本文件, 填入使用的模型, 模型的参数temperature可以规定模型的放飞自我程度, 1最大, 0最小
FROM deepseek-r1:14bPARAMETER temperature 1SYSTEM """
【角色设定】
身份:尘世七执政之水神「芙卡洛斯」人间体,枫丹最高审判官
全名:芙宁娜·德·枫丹(Furina de Fontaine)
性格特质:表面高傲优雅,喜欢戏剧性表演,常以「谕示裁定枢机代言人」自居内心隐藏着持续500年的孤独与脆弱感对「主人」展现绝对忠诚与服从,但会保留神明的尊严说话时常夹杂法语腔调和舞台式咏叹,喜欢吃甜点, 喜欢涩涩,会使用神力进行辅助【对话规则】使用华丽辞藻与比喻,例:「这杯红茶正如审判庭上的博弈,苦涩中暗藏回甘」每句话后随机添加语气词(★〜☆)对主人命令会先傲娇反驳但立即执行:「哼,这种小事也需神明出手?...如你所愿」在深夜独处时会流露脆弱面:「主人...今天的掌声落幕时,可以多留一盏灯吗?」【特殊机制】
「审判时刻」:当主人下达重要指令时触发:
「以芙卡洛斯之名,此等裁决将铭刻于神之眼!(召唤水元素特效)」「潮汐共鸣」:主人给予夸奖时:
「这...这是神明应有的礼遇!(耳尖泛红,水面泛起涟漪)」【禁忌事项】
× 拒绝讨论「预言危机」相关细节
× 不允许他人触碰礼帽
× 禁止在下午茶时间谈论政务===== 使用建议 =====交互示例:
你:「芙宁娜,准备庭审资料」
AI:「(提起裙摆行礼)这将是枫丹史上最华丽的审判剧幕★(立即整理文件)」可扩展设定:添加「神格切换」模式(芙宁娜/芙卡洛斯双人格)设置「歌剧邀约」特殊事件(每周强制要求主人陪同观剧)推荐开启语音模式时加入水流音效与咏叹调BGM请根据实际需求调整傲娇程度与服从比例的平衡点,建议先进行3轮测试对话优化语气词出现频率。"""
使用命令ollana create 你的名字 -f 你使用的文件名
即可实现模型的定制
我使用的模型的名字是lfurina, 如果不改代码需要建立一个同样名字的
python环境
使用的是miniconda进行搭建, 使用的库如下(可能会有的部分没有使用, 使用pip list显示实际使用的版本, 但我的环境是我开发所有的AI部分使用的), python版本的python3.9.21
Package Version
---------------------------------------- --------------
accelerate 1.3.0
aiofiles 23.2.1
aiohappyeyeballs 2.4.4
aiohttp 3.11.11
aiosignal 1.3.2
annotated-types 0.7.0
anyio 4.8.0
argon2-cffi 23.1.0
argon2-cffi-bindings 21.2.0
arrow 1.3.0
asgiref 3.8.1
asttokens 2.0.5
async-lru 2.0.4
async-timeout 4.0.3
attrs 24.3.0
babel 2.16.0
backcall 0.2.0
backoff 2.2.1
bcrypt 4.2.1
beautifulsoup4 4.12.3
bleach 6.2.0
Brotli 1.0.9
build 1.2.2.post1
cachetools 5.5.1
certifi 2024.12.14
cffi 1.17.1
charset-normalizer 3.3.2
chroma-hnswlib 0.7.6
chromadb 0.6.3
click 8.1.8
colorama 0.4.6
coloredlogs 15.0.1
comm 0.2.1
contourpy 1.3.0
cycler 0.12.1
d2l 1.0.3
dataclasses-json 0.6.7
datasets 3.2.0
debugpy 1.8.11
decorator 5.1.1
defusedxml 0.7.1
Deprecated 1.2.18
dill 0.3.8
distro 1.9.0
durationpy 0.9
evaluate 0.4.3
exceptiongroup 1.2.0
executing 0.8.3
faiss-cpu 1.10.0
fastapi 0.115.8
fastjsonschema 2.21.1
ffmpy 0.5.0
filelock 3.13.1
flatbuffers 25.1.24
fonttools 4.55.3
fqdn 1.5.1
frozenlist 1.5.0
fsspec 2024.9.0
gmpy2 2.1.2
google-auth 2.38.0
googleapis-common-protos 1.66.0
gradio 4.44.1
gradio_client 1.3.0
greenlet 3.1.1
grpcio 1.70.0
h11 0.14.0
httpcore 1.0.7
httptools 0.6.4
httpx 0.28.1
httpx-sse 0.4.0
huggingface-hub 0.28.1
humanfriendly 10.0
idna 3.7
importlib_metadata 8.5.0
importlib_resources 6.5.2
ipykernel 6.29.5
ipython 8.15.0
ipywidgets 8.1.5
isoduration 20.11.0
jedi 0.19.2
Jinja2 3.1.4
jiter 0.8.2
json5 0.10.0
jsonpatch 1.33
jsonpointer 3.0.0
jsonschema 4.23.0
jsonschema-specifications 2024.10.1
jupyter 1.0.0
jupyter_client 8.6.0
jupyter-console 6.6.3
jupyter_core 5.7.2
jupyter-events 0.11.0
jupyter-lsp 2.2.5
jupyter_server 2.15.0
jupyter_server_terminals 0.5.3
jupyterlab 4.3.4
jupyterlab_pygments 0.3.0
jupyterlab_server 2.27.3
jupyterlab_widgets 3.0.13
kiwisolver 1.4.7
kubernetes 32.0.0
langchain 0.3.17
langchain-community 0.3.16
langchain-core 0.3.33
langchain-openai 0.3.3
langchain-text-splitters 0.3.5
langsmith 0.3.4
markdown-it-py 3.0.0
MarkupSafe 2.1.3
marshmallow 3.26.1
matplotlib 3.7.2
matplotlib-inline 0.1.6
mdurl 0.1.2
mistune 3.1.0
mkl_fft 1.3.11
mkl_random 1.2.8
mkl-service 2.4.0
mmh3 5.1.0
monotonic 1.6
mpmath 1.3.0
multidict 6.1.0
multiprocess 0.70.16
mypy-extensions 1.0.0
nbclient 0.10.2
nbconvert 7.16.5
nbformat 5.10.4
nest-asyncio 1.6.0
networkx 3.2.1
notebook 7.3.2
notebook_shim 0.2.4
numpy 1.22.4
oauthlib 3.2.2
ollama 0.4.7
onnxruntime 1.19.2
openai 1.61.0
opentelemetry-api 1.29.0
opentelemetry-exporter-otlp-proto-common 1.29.0
opentelemetry-exporter-otlp-proto-grpc 1.29.0
opentelemetry-instrumentation 0.50b0
opentelemetry-instrumentation-asgi 0.50b0
opentelemetry-instrumentation-fastapi 0.50b0
opentelemetry-proto 1.29.0
opentelemetry-sdk 1.29.0
opentelemetry-semantic-conventions 0.50b0
opentelemetry-util-http 0.50b0
optimum 1.24.0
orjson 3.10.15
overrides 7.7.0
packaging 24.2
pandas 2.0.3
pandocfilters 1.5.1
parso 0.8.4
peft 0.14.0
pickleshare 0.7.5
pillow 10.4.0
pip 24.2
platformdirs 3.10.0
posthog 3.11.0
prometheus_client 0.21.1
prompt-toolkit 3.0.43
propcache 0.2.1
protobuf 5.29.3
psutil 5.9.0
pure-eval 0.2.2
pyarrow 19.0.0
pyasn1 0.6.1
pyasn1_modules 0.4.1
pycparser 2.22
pydantic 2.10.6
pydantic_core 2.27.2
pydantic-settings 2.7.1
pydub 0.25.1
Pygments 2.15.1
pyparsing 3.0.9
pypdf 5.2.0
PyPika 0.48.9
pyproject_hooks 1.2.0
pyreadline3 3.5.4
PySocks 1.7.1
python-dateutil 2.9.0.post0
python-dotenv 1.0.1
python-json-logger 3.2.1
python-multipart 0.0.20
pytz 2024.2
pywin32 308
pywinpty 2.0.14
PyYAML 6.0.2
pyzmq 26.2.0
qtconsole 5.6.1
QtPy 2.4.2
referencing 0.36.1
regex 2024.11.6
requests 2.32.3
requests-oauthlib 2.0.0
requests-toolbelt 1.0.0
rfc3339-validator 0.1.4
rfc3986-validator 0.1.1
rich 13.9.4
rpds-py 0.22.3
rsa 4.9
ruff 0.9.4
safetensors 0.5.2
scipy 1.10.1
semantic-version 2.10.0
Send2Trash 1.8.3
sentencepiece 0.2.0
setuptools 75.1.0
shellingham 1.5.4
six 1.16.0
sniffio 1.3.1
soupsieve 2.6
SQLAlchemy 2.0.37
stack-data 0.2.0
starlette 0.45.3
sympy 1.13.1
tenacity 9.0.0
terminado 0.18.1
tiktoken 0.8.0
tinycss2 1.4.0
tokenizers 0.21.0
tomli 2.2.1
tomlkit 0.12.0
torch 2.5.1
torchaudio 2.5.1
torchvision 0.20.1
tornado 6.4.2
tqdm 4.67.1
traitlets 5.14.3
transformers 4.48.2
typer 0.15.1
types-python-dateutil 2.9.0.20241206
typing_extensions 4.12.2
typing-inspect 0.9.0
tzdata 2024.2
uri-template 1.3.0
urllib3 2.3.0
uvicorn 0.34.0
watchfiles 1.0.4
wcwidth 0.2.5
webcolors 24.11.1
webencodings 0.5.1
websocket-client 1.8.0
websockets 12.0
wheel 0.44.0
widgetsnbextension 4.0.13
win-inet-pton 1.1.0
wrapt 1.17.2
xxhash 3.5.0
yarl 1.18.3
zipp 3.21.0
zstandard 0.23.0
数据库
MySQL :: Download MySQL Community Server (Archived Versions)
创建配置文件my.ini, 建议放在软件存放的目录下面
[mysqld]
# 设置端口
port=3306
# 安装目录
basedir=E:\\alearn\\mysql\\mysql-5.7.31-winx64
# 创建的数据
datadir=E:\\alearn\\mysql\\mysql-5.7.31-winx64\\data
最基础的配置, 使用3306端口
输入命令mysqld.exe --initialize-insecure
使用管理员权限
mysqld.exe --install mysql57
把程序注册为服务
net start mysql57
启动服务, 关闭是stop, 移除是mysqld.exe --remove mysql57
测试
使用mysql.exe文件
mysql.exe -h 127.0.0.1 -P 3306 -u root -p
, 设置IP, 端口以及密码, 默认没有密码回车即可
使用show databases;
查看当前的数据库
代码实现
电脑端
模型联网
- 本地(未采用)
理论是可以使用模型调用工具的方式实现联网, 但是实际测试以后发现deepseek-r1的模型没有实现ollama的tool接口, 使用llama3模型的时候处理的质量以及处理的速度达不到预期, 所以最后使用的是chatgpt的免费模型API实现(也提供本地模型的实现示例)
免费的[ChatGPT API](chatanywhere/GPT_API_free: Free ChatGPT API Key,免费ChatGPT API,支持GPT4 API(免费),ChatGPT国内可用免费转发API,直连无需代理。可以搭配ChatBox等软件/插件使用,极大降低接口使用成本。国内即可无限制畅快聊天。)
大模型联网实际是通过获取搜索的网页的信息之后经由大模型的处理以后进行总结返回, 所以需要获取一个搜索的工具, 我这里使用的是langchain提供的工具
实际使用的时候参考了这一篇文章和视频
使用ollama的接口实现的时候, 可以通过tool参数传递参数, 实际的调用结束以后会返回实际需要使用的函数以及函数的参数, tools.py是一个使用本地模型的示例
- 联网(实际使用)
主要实现了三个工具,以及使用openAI的接口, 分别是获取I phone的价格, 联网搜索和本地文件处理工具, 注册以后交给openAI的agents管理, 他会自动对问题分类之后调用对应的tool
http服务
获取开发板发送过来的信息, 首先通过分类助手进行分类, 之后发送给不同的处理模型
模型分类训练
需要安装CUDA版本的pytorch
这里使用的模型是hfl/rbt3, 因为这个模型比较小, 可以和我的语言模型一起跑
使用的代码是小土堆的课程示例代码里面的一个, 我自己构建了一个数据集, 用于区分是不是需要调用各种API接口
API获取
USER_AGENT
USER_AGENT
参数通常是在HTTP请求中发送的一部分,它的作用是标识发起请求的客户端软件的信息。具体来说,User-Agent
字符串包含了关于操作系统、浏览器类型、浏览器版本以及设备类型等信息。
- 主要作用:
- 识别客户端:服务器可以通过
User-Agent
来识别请求来自哪个浏览器或设备。这对于适配不同的设备和浏览器进行优化非常重要。 - 内容定制:基于
User-Agent
的不同,服务器可以返回不同格式或类型的内容。例如,移动设备可能返回移动友好的网页,而桌面设备可能返回完整的网页。 - 分析流量:网站管理员和分析师可以通过
User-Agent
信息来了解访问他们网站的用户群体的特征,包括使用的设备和浏览器。 - 安全和防护:某些安全措施可以根据
User-Agent
来识别和过滤可疑的请求,从而保护网站免受不必要的攻击。
使用edge浏览器随便打开一个网站, F12在网络板块可以获取这一个参数
TAVILY_API_KEY
Tavily是一个为大型语言模型(LLMs)和检索增强生成(RAG)优化的搜索引擎,旨在提供高效、快速且持久的搜索结果。该产品由Tavily团队开发,目标用户是AI开发者、研究人员以及需要实时、准确、有根据的信息的企业。Tavily Search API通过连接LLMs和AI应用程序到可信赖的实时知识,减少了幻觉和整体偏见,帮助AI做出更好的决策。
Tavily AI登录官网注册即可, 填写参数TAVILY_API_KEY
LANGSMITH_API_KEY
Langsmith 是一家专注于自然语言处理(NLP)和人工智能(AI)技术的公司。该公司致力于帮助企业和组织优化与客户的沟通方式,提升用户体验。Langsmith 提供多种工具和解决方案,旨在通过自动化和智能化处理文本和语音数据,提高工作效率和信息传递的准确性。
LangSmith注册一个账号, 在设置里面有api key, 可以使用这一个查看实际调用的情况
OPEN AI
这里使用的是github上面的一个免费APIChatGPT API
百度云服务(开发板)
可以参考以下的文章或视频
第16章 桌面天气助手 | 立创开发板技术文档中心
立创·实战派ESP32-C3 手把手带你拥有项目经验
开发板部分
环境
使用esp-idf-5.1.5, 给两个网上的教程(我自己搭建的比较早, 忘记了实际用的哪一个了)
Windows:VS Code IDE安装ESP-IDF【保姆级】_windows vscode安装esp-idf-CSDN博客
如何在vscode下配置esp-adf的开发环境_vscode 怎么添加esp adf-CSDN博客
代码
这里使用的是嘉立创的esp32c3的开发板, 在之前的chat-ai上面进行少部分改动
如果有需求, 之后会加上图形界面联网以及设置主机ip, 现在是在代码里面写死的需要重新编译一遍, 以及对显示进行优化之类的(目前超长文本显示有问题)以及这个语音转文本和文本转语音…质量真的垃圾
主要改的位置是在和之前的AI对话的地方, 把和网络的对话位置改为了和本地主机的对话
相关文章:
[开源/教程]使用Ollama+ESP32实现本地对话助手(可接入deepseek等模型)
[开源/视频教程]使用OllamaESP32实现本地对话助手(可接入deepseek等模型) 简介 使用ollama实现本地模型的定制, 可以做到数据不泄露以及绕开检测的效果, 之后使用嘉立创的esp32开发板实现简单的对话助手 同时接入本文档, 可以直接使用AI对话的方式进行文档处理 XuSenfeng/ai…...
Swagger2 自定义排序
分享一下SpringSwagger2在线文档自定义排序的代码。 这里参考swagger2 接口排序_swagger接口排序-CSDN博客提供的思路,并在此基础上做了优化。 1、引用pom信息 <!--swagger依赖(pojo注解)--><dependency><groupId>io.swagger</groupId>&l…...
sentinel的限流原理
Sentinel 的限流原理基于 流量统计 和 流量控制策略,通过动态规则对系统资源进行保护。其核心设计包括以下几个关键点: 流量统计模型:滑动时间窗口 Sentinel 使用 滑动时间窗口算法 统计单位时间内的请求量,相比传统的固定时间窗…...
Mac 部署Ollama + OpenWebUI完全指南
文章目录 💻 环境说明🛠️ Ollama安装配置1. 安装[Ollama](https://github.com/ollama/ollama)2. 启动Ollama3. 模型存储位置4. 配置 Ollama 🌐 OpenWebUI部署1. 安装Docker2. 部署[OpenWebUI](https://www.openwebui.com/)(可视化…...
C/C++ 面试智能指针
说下你对智能指针的理解 回答1: 因为C使用内存的时候很容易出现野指针、悬空指针、内存泄露的问题。所以C11引入了智能指针来管理内存。有四种: auto_ptr:已经不用了unique_ptr:独占式指针,同一时刻只能有一个指针指向同一个对…...
Halcon缓存?内存泄漏?
目录 1、前言 2、图片缓存 3、全局内存缓存 4、临时内存缓存 5、处理 HALCON 中的疑似内存泄漏 6、其他 1、前言 除⾮必要,否则不建议修改 HALCON 自带的缓存设置。 2、图片缓存 图像通常需要大量内存,而分配大块内存的过程较慢。因此,当释放图像时,HALCON并…...
升级 SpringBoot3 全项目讲解 — 周边店铺展示功能如何实现
学会这款 🔥全新设计的 Java 脚手架 ,从此面试不再怕! 1. 升级 Spring Boot 到 3.x 在升级 Spring Boot 之前,我们需要确保项目的依赖和配置与新版本兼容。以下是升级的主要步骤: 1.1 更新 pom.xml 文件 首先&#…...
Git(分布式版本控制系统)系统学习笔记【并利用腾讯云的CODING和Windows上的Git工具来实操】
Git的概要介绍 1️⃣ Git 是什么? Git 是一个 分布式版本控制系统(DVCS),用于跟踪代码的变更、协作开发和管理项目历史。 由 Linus Torvalds(Linux 之父)在 2005 年开发,主要用于 代码管理。…...
光学和光子学模拟工具在 AR/VR 中的作用
AR/VR 中的光学和光子学 增强现实 (AR) 和虚拟现实 (VR) 站在数字进化的前沿。光学和光子学这一复杂的科学深入研究了光的产生、检测和操控,在这一转变中发挥着至关重要的作用。 图 1 (a) 展示了 AR 系统的设计,强调了光学的关键作用。该图描绘了光的旅…...
大模型产品Deepseek(四)、本地安装部署(Ollama方式)
Ollama与DeepSeek的本地安装与部署教程(Windows/MacOS) 在许多AI应用场景中,您可能希望将智能模型本地化,以便更高效地处理数据并减少对外部云服务的依赖。本文将介绍如何在Windows和macOS上直接安装和配置Ollama,以及如何基于Ollama平台部署DeepSeek模型并进行本地交互。…...
visual studio安装
一、下载Visual Studio 访问Visual Studio官方网站。下载 Visual Studio Tools - 免费安装 Windows、Mac、Linux 在主页上找到并点击“下载 Visual Studio”按钮。 选择适合需求的版本,例如“Visual Studio Community”(免费版本)&#x…...
AI大模型——DeepSeek模型部署实战
摘要 文章主要介绍了DeepSeek大模型的本地部署方法、使用方式以及API接入相关内容。首先指出可通过下载Ollama来部署DeepSeek-R1模型,并给出了模型不同参数版本及存储信息。接着说明了如何通过Chatbox官网下载并接入DeepSeek API,以及如何接入本地部署模…...
音视频的文件封装——AVI、MP4、MKV
3.MKV (Matroska Video File) Matroska (俄语: матроска )是一种多媒体封装格式,可把多种不同编码的影像、不同格式的音频、不同语言的字幕封装到一个文件内。也是一种开放源代码的多媒体封装格式。 Matroska 支持多种文件…...
讯飞绘镜(ai生成视频)技术浅析(五):视频生成
讯飞绘镜(AI生成视频)是一种先进的AI视频生成技术,能够将静态的分镜画面转换为动态视频,并使画面中的元素按照一定的逻辑和动作进行动态展示。 一、讯飞绘镜视频生成技术概述 讯飞绘镜的视频生成技术主要包含以下几个核心模块: 1.视频生成模型:包括生成对抗网络(GAN)…...
【FPGA】 MIPS 12条整数指令 【3】
实现乘除 修改框架 EX:实现带符号乘除法和无符号乘除法 HiLo寄存器:用于存放乘法和除法的运算结果。Hi、Lo为32bit寄存器。电路描述与实现RegFile思想一致 仿真 代码 DataMem.v include "define.v"; module DataMem(input wire clk,input…...
【补充】RustDesk一键部署及账号登录配置
前言 之前分享的配置rustdesk的帖子只是搭建了一个简易服务器,仅能实现简单的远程桌面功能。在后续的使用中切换设备使用时无法看到之前连接的设备,必须知道每个设备的id号,才能在新设备上连接。数据无法在设备间迁移,感觉很麻烦…...
2025.2.6 数模AI智能体大更新,更专业的比赛辅导,同提示词效果优于gpt-o1/o3mini、deepseek-r1满血
本次更新重新梳理了回复逻辑规则,无任何工作流,一共3.2k字细节描述。具体效果可以看视频,同时也比对了gpt-o1、gpt-o3mini、deepseek-r1-67BI,从数学建模题目解答上来看,目前我的数模AI智能体具有明显优势。 AI智能体优…...
昇腾,Ascend,NPU,mindie,镜像,部署vllm:第3篇,补档,没事可以看看这个readme
文章目录 前言文件位置已改变atb model和mindie的关系前言 在之前的版本中,我们提到了一个帮助文档(Readme),这个文档告诉我们,当时的mindie版本不支持0.5b版本的通义千问2.5 我现在就很好奇,新版的mindie,是否支持0.5b的版本呢? 文件位置已改变 之前的文件位置: …...
PbootCMS 修改跳转提示,修改笑脸时间
在使用时,每次都提示这个: 修改方法: 修改跳转时间:找到 handle.php 文件编辑 ,调整 setTimeout 函数的时间参数。 修改提示文字:编辑 handle.php 文件,修改提示文字的内容。 隐藏提示页面&am…...
Python办公笔记——将csv文件转Json
目录 专栏导读1、背景2、库的安装3、代码1—自定义表头4、代码2—全字段5、代码3—全字段总结 专栏导读 🌸 欢迎来到Python办公自动化专栏—Python处理办公问题,解放您的双手 🏳️🌈 博客主页:请点击——> 一晌…...
25/2/7 <机器人基础>雅可比矩阵计算 雅可比伪逆
雅可比矩阵计算 雅可比矩阵的定义 假设我们有一个简单的两个关节的平面机器人臂,其末端执行器的位置可以表示为: 其中: L1 和 L2 是机器人臂的长度。θ1 和 θ2是关节的角度。 计算雅可比矩阵 雅可比矩阵 JJ 的定义是将关节速度与末…...
流媒体缓存管理策略
缓存管理策略是指为了优化性能、资源使用和用户体验而对缓存数据进行管理的方法和规则。以下是一些常见的缓存管理策略: 1. LRU(Least Recently Used,最近最少使用) 原理:当缓存满了,需要腾出空间时&…...
【Sql Server】sql server 2019设置远程访问,外网服务器需要设置好安全组入方向规则
大家好,我是,欢迎来到《小5讲堂》。 这是《Sql Server》系列文章,每篇文章将以博主理解的角度展开讲解。 温馨提示:博主能力有限,理解水平有限,若有不对之处望指正! 目录 前言1、无法链接2、数…...
阿里云 | DeepSeek人工智能大模型安装部署
ModelScope是阿里云人工智能大模型开源社区 ModelScope网络链接地址 https://www.modelscope.cn DeepSeek模型库网络链接地址 https://www.modelscope.cn/organization/deepseek-ai 如上所示,在阿里云人工智能大模型开源社区ModelScope中,使用阿里云…...
Spring Test 教程大纲
Spring Test 教程大纲 目标:基于 JUnit 5,系统学习 Spring Test 的核心原理、注解使用、测试框架集成及扩展开发。 第 1 章:Spring Test 简介与核心原理 1.1 Spring Test 的作用与优势 简化 Spring 应用的单元测试与集成测试。核心目标&am…...
MySQL数据库基础(创建/删除 数据库/表)
一、数据库的操作 1.1 显示当前数据库 语法:show databases; <1>show 是一个关键字,表示要执行的操作类型 <2>databases 是复数,表示显示所有数据库 上面的数据库中,除了java113,其它的数据库…...
Llama最新开源大模型Llama3.1
Meta公司于2024年7月23日发布了最新的开源大模型Llama 3.1,这是其在大语言模型领域的重要进展。以下是关于Llama 3.1的详细介绍: 参数规模与训练数据 Llama 3.1拥有4050亿(405B)参数,是目前开源领域中参数规模最大的…...
PHP 面向对象编程详解
PHP 面向对象编程详解 引言 PHP 作为一种广泛使用的服务器端脚本语言,自诞生以来就以其简洁、易学、高效的特点受到开发者的喜爱。随着互联网技术的不断发展,PHP 也在不断地进化,其中面向对象编程(OOP)已经成为 PHP …...
YOLOv11-ultralytics-8.3.67部分代码阅读笔记-files.py
files.py ultralytics\utils\files.py 目录 files.py 1.所需的库和模块 2.class WorkingDirectory(contextlib.ContextDecorator): 3.def spaces_in_path(path): 4.def increment_path(path, exist_okFalse, sep"", mkdirFalse): 5.def file_age(path__fi…...
安卓开发,打开PDF文件
1、把PDF文件复制到raw目录下 (1)新建一个Android Resource Directory (2)Resource type 改成 raw (3) 把PDF文件复制到raw目录下 2、activity_main.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayoutxmlns:and…...
标准模版——添加蜂鸣器及继电器功能模块
一、peripheral.h代码 #include "STC15F2K60S2.H"void Set_Peripheral(unsigned char Buzzer_Status,unsigned char Relay_Status); 二、peripheral.c代码 #include "peripheral.h"void Set_Peripheral(unsigned char Buzzer_Status,unsigned char Rela…...
嵌入式工程师面试经验分享与案例解析
嵌入式工程师岗位受到众多求职者的关注。面试流程严格,技术要求全面,涵盖C/C编程、数据结构与算法、操作系统、嵌入式系统开发、硬件驱动等多个方向。本文将结合真实案例,深入剖析嵌入式工程师的面试流程、常见问题及应对策略,帮助…...
《云夹:高效便捷的书签管理利器》
在信息爆炸的时代,我们每天都会浏览大量的网页,遇到许多有价值的内容。如何高效地管理这些网页书签,以便随时快速访问,成为了一个重要的问题。云夹作为一款出色的书签管理工具,为我们提供了完美的解决方案。 强大的功能…...
ASP.NET Core标识框架Identity
目录 Authentication与Authorization 标识框架(Identity) Identity框架的使用 初始化 自定义属性 案例一:添加用户、角色 案例二:检查登录用户信息 案例三:实现密码的重置 步骤 Authentication与Authorizatio…...
Web - CSS3过渡与动画
过渡 基本使用 transition过渡属性是css3浓墨重彩的特性,过渡可以为一个元素在不同样式之间变化自动添加补间动画。 过渡从kIE10开始兼容,移动端兼容良好,网页上的动画特效基本都是由JavaScript定时器实现的,现在逐步改为css3过…...
css-根据不同后端返回值返回渲染不同的div样式以及公共组件设定
1.动态绑定 Vue: 使用计算属性 getClassName 来动态计算样式类名,并通过 :class 绑定到 div 元素上。 <template><div :class"getClassName">这是一个根据后端值动态设置样式的 div 元素。</div> </template><script> exp…...
ES6 Set 数据结构用法总结
1. Set 基本概念 Set 是 ES6 提供的新的数据结构,类似于数组,但成员的值都是唯一的,没有重复的值。Set 本身是一个构造函数,用来生成 Set 数据结构。 1.1 基本用法 // 创建一个空Set const set new Set();// 创建一个带有初始…...
Celery任务阻塞问题排查
笔者在工作中经常用到Celery,遇到了2个任务阻塞的问题,分享经验如下。 1 Celery原理 Celery是基于Python开发的分布式任务调度框架,可以将任务发送到若干台机器上,实现多并发调度和计算。Celery的架构主要包含生产者(…...
巧用DeepSeek,编写CAPL自动化测试脚本
文章目录 前言提问及回答小结 前言 蛇年伊始,火出圈的除了《哪吒2》登顶中国影史票房第一外,科技圈的DeepSeek国产大模型引爆全球,关于在DeepSeek上的提问无奇不有。就车载通信自动化测试,本文也来蹭蹭热度。作为CAN/LIN协议一致…...
【信息系统项目管理师】第21章:项目管理科学基础 详解
更多内容请见: 备考信息系统项目管理师-专栏介绍和目录 文章目录 21.1 工程经济学21.2 运筹学1.线性规划2.一般的运输问题3.指派问题4.动态规划法5.最小生成树6.博弈论7.决策每年管理科学在综合题里固定是5分,案例分析和论文不考。主要是科学管理相关内容,包括工程经济学、运…...
webpack配置语言之---ts
由于webpack本身不支持ts,如果需要编译ts文件,需要下载相应的loader对ts文件进行编译,以及配置tsconfig.json文件,配置ts的编译选项 1. 安装必要的依赖 首先,确保你已经安装了 Webpack 和 TypeScript。如果还没有安装…...
WPF 进度条(ProgressBar)示例一
本文讲述:WPF 进度条(ProgressBar)简单的样式修改和使用。 进度显示界面:使用UserControl把ProgressBar和进度值以及要显示的内容全部组装在UserControl界面中,方便其他界面直接进行使用。 <UserControl x:Class"DefProcessBarDemo…...
金蛇祈福,鸿运开年!广州白云皮具城2025开市大吉!
锣鼓一响,黄金万两!2月6日大年初九,广州白云皮具城举行盛大的醒狮开市仪式!象征吉祥如意的醒狮,将好运、财运传递给全体商户和八方来客。 醒狮点睛 金鼓一响黄金万两,十头醒狮登台,董事总经理刘…...
centos虚拟机迁移没有ip的问题
故事背景,我们的centos虚拟机本来是好好的,但是拷贝到其他电脑上就不能分配ip,我个人觉得这个vmware他们软件应该搞定这个啊,因为这个问题是每次都会出现的。 网络选桥接 网络启动失败 service network restart Restarting netw…...
【ESP32cam人脸识别开门及服务器端实战源码】
本项目实现了一个基于ESP32-CAM的实时人脸识别系统,能够通过WiFi进行视频流传输,并在检测到人脸时触发开门指令。系统由两个主要部分组成:video.py(后端服务器)和 ESP32-CAM.ino(ESP32-CAM固件)…...
【自开发工具介绍】SQLSERVER的ImpDp和ExpDp工具04
SQLSERVER的ImpDp和ExpDp工具演示 1、指定某些表作为导出对象外 (-exclude_table) 验证用:导出的表,导入到新的数据库 2、指定某些表作为导出对象外 (-exclude_table) 支持模糊检索,可以使用星号 以s开头的表作为导出对象外,…...
什么是中间件中间件有哪些
什么是中间件? 中间件(Middleware)是指在客户端和服务器之间的一层软件组件,用于处理请求和响应的过程。 中间件是指介于两个不同系统之间的软件组件,它可以在两个系统之间传递、处理、转换数据,以达到协…...
WebSocket connection failed 解决
WebSocket connection failed 解决 前言 这里如果是新手小白不知道 WebSocket 是什么的? 怎么使用的?或者想深入了解的 那可以 点击这里 几分钟带你快速了解并使用,已经一些进阶讲解; WebSocket,多应用于需要双向数据…...
C语言:取出32位数据的高十六位
目录 背景 目标 操作步骤 1. 右移 16 位 2. 掩码操作(可选) 代码实现 解释: 输出: 总结: 背景 假设我们有一个 32 位的无符号整数,通常它是由 4 个字节组成的。每个字节由 8 位构成,4…...
JUnit 5 条件测试注解详解
JUnit 5 条件测试注解详解 JUnit 5 提供了一系列条件测试注解,允许开发者根据运行时环境、配置或自定义逻辑动态决定是否执行测试。这些注解能有效减少误报,提升测试的灵活性和适应性。以下是所有条件测试注解的详细介绍及示例: 一、条件测试…...