基于LLM Agent的智能家居管家:OmniSteward项目实战指南

news2026/4/30 2:34:50
1. 项目概述一个基于LLM Agent的智能中枢如果你和我一样对智能家居和自动化充满热情同时又希望有一个更“聪明”、更“懂你”的交互方式那么你肯定会对今天要聊的这个项目感兴趣。它叫OmniSteward中文可以理解为“全能管家”。简单来说这是一个基于大语言模型LLM的智能体Agent系统它能够理解你的自然语言指令——无论是通过语音还是文字——然后去帮你执行一系列任务比如打开家里的智能灯、启动电脑上的某个程序甚至帮你搜索文件、查询天气。这个项目的核心魅力在于它的“代理”能力。它不是一个简单的语音助手而是一个真正能“动手”的管家。当你对它说“我有点冷”它不仅能理解你的意图还能通过调用预设的工具比如控制HomeAssistant里的空调把温度调高。这种“理解-决策-执行”的闭环正是LLM Agent技术的精髓。目前项目支持对接HomeAssistant、米家通过HomeAssistant插件以及博联Bemfa等主流智能家居平台同时也集成了丰富的本地计算机操作工具如程序管理、文件操作和命令行执行使其成为一个横跨物理世界和数字世界的统一控制入口。2. 核心架构与设计思路拆解要理解OmniSteward如何工作我们需要拆解它的几个核心组成部分。这不仅仅是看代码更是理解一个实用型Agent系统的设计哲学。2.1 核心组件交互流程整个系统的运行可以看作一个高效的“感知-思考-行动”循环。当你通过麦克风说话或在前端界面输入文字时旅程就开始了。语音会先被自动语音识别ASR模块转换成文本。接着这段文本连同当前的对话历史和系统状态会被构造成一个精心设计的提示词Prompt发送给后端的LLM例如Qwen2.5-7B-Instruct。LLM在这里扮演“大脑”的角色。它并不直接执行操作而是分析你的指令决定需要调用哪个“工具”Tool来完成你的请求。例如指令“打开客厅的灯”会被解析为需要调用homeassistant_turn_on这个工具并附带参数entity_id: light.living_room。系统内置了一个丰富的工具库涵盖了从家居控制到文件管理的方方面面。一旦LLM决定了要使用的工具和参数系统就会调用对应的工具执行器。如果是控制智能设备工具执行器会通过HTTP API调用HomeAssistant或Bemfa的服务如果是操作电脑则可能启动一个子进程来运行特定程序。执行完成后工具会返回结果例如“灯已打开”或“程序启动成功”这个结果再被反馈给LLM。LLM根据结果生成一段自然、友好的回复最终通过文本转语音TTS模块或直接在Web界面上呈现给你。这个多轮对话的能力使得你可以进行连续、复杂的交互比如先说“打开音乐”再说“声音大一点”。2.2 工具系统与高扩展性设计工具Tools是OmniSteward的“双手”也是其超高扩展性的基石。项目的设计者采用了类似LangChain或AutoGPT中工具调用的理念但实现上更贴近实际部署需求。每个工具都是一个独立的Python函数拥有明确的名称、描述和参数定义。LLM正是根据这些描述来决定是否以及如何调用它们。这种设计带来的最大好处就是“易于扩展”。如果你想让管家帮你做一件它现在还不会的事情比如检查股票价格或者给你的智能窗帘定时你不需要修改核心的Agent逻辑。你只需要按照固定的格式编写一个新的工具函数并将其注册到系统的工具列表中即可。项目文档中提供了一个极简的例子一个打印字符串的工具。通过这个例子你可以快速掌握自定义工具的流程从而将任何可以通过代码实现的操作都变成管家的一项技能。注意在设计和添加自定义工具时务必注意安全性。尤其是涉及系统命令执行、文件删除或网络请求的工具需要内置权限确认或危险操作警告机制。OmniSteward在调用某些命令行工具前会要求用户确认这是一个很好的安全实践你在扩展时也应遵循。2.3 多模态交互与部署模式选择OmniSteward提供了两种主要的交互模式命令行界面CLI和Web模式。这两种模式面向不同的使用场景也体现了项目在易用性和灵活性上的权衡。CLI模式更偏向开发者和极客用户。它启动快速依赖简单非常适合在本地电脑上进行功能测试、调试自定义工具或者集成到其他自动化脚本中。你可以直接通过命令行传递文本指令也可以启动语音VAD语音活动检测服务实现离线的、低延迟的语音唤醒和输入。这对于打造一个始终在线的桌面助手原型非常有用。Web模式则提供了更友好、更接近最终产品的用户体验。它需要一个独立的前端项目OmniSteward-Frontend来提供美观的交互界面。前后端分离的架构使得你可以通过浏览器在任何设备手机、平板、电脑上访问这个管家实现远程控制。这对于智能家居场景尤为重要——你可以在下班路上就用手机语音打开家里的空调。不过Web模式涉及网络服务部署和浏览器安全策略如HTTP下麦克风使用的限制配置步骤会稍复杂一些。3. 从零开始的详细配置与实操指南纸上谈兵终觉浅下面我将带你一步步完成一个最基本的OmniSteward环境搭建并以控制HomeAssistant设备为例演示完整的工作流程。请确保你的操作系统是Windows项目目前对Windows支持最完善并已安装Python 3.8或更高版本以及Git。3.1 基础环境搭建与依赖安装首先我们需要将项目代码克隆到本地。打开命令提示符CMD或PowerShell执行以下命令git clone https://github.com/OmniSteward/OmniSteward.git cd OmniSteward接下来安装项目依赖。建议使用虚拟环境以避免包冲突。你可以使用venvpython -m venv venv # 激活虚拟环境 # Windows: venv\Scripts\activate # Linux/Mac: # source venv/bin/activate pip install -r requirements.txt安装过程可能会持续几分钟具体时间取决于你的网络。这里安装的包包括核心的LLM调用库如openai、语音处理库、Web框架fastapi等。3.2 关键环境变量配置详解环境变量是配置OmniSteward的枢纽它定义了AI大脑、语音服务、智能家居平台的接入点。我们需要创建一个配置文件来设置它们。项目提供了一个模板examples/env.cmd我们最好复制一份并进行修改。# 复制环境变量模板 copy examples\env.cmd examples\my_env.cmd然后用文本编辑器如Notepad或VSCode打开examples\my_env.cmd你需要重点关注并修改以下几项LLM服务配置核心set OPENAI_API_BASEhttps://api.stepfun.com/v1 set OPENAI_API_KEYsk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxOmniSteward使用OpenAI API兼容的接口。这里以阶跃星辰Stepfun平台为例。你需要去 阶跃星辰平台 注册账号创建API Key并替换上面的sk-xxxxxxxx。OPENAI_API_BASE也需要对应你选择的平台。如果你使用其他兼容OpenAI的API服务如硅基流动、Ollama本地部署等只需修改这两个变量即可。语音与重排服务set SILICON_FLOW_API_KEYyour_silicon_flow_key语音识别ASR和结果重排Rerank功能默认使用了硅基流动的API。你需要去 硅基流动 获取相应的API Key。如果暂时不需要语音功能可以先不配置但部分功能可能受限。智能家居配置set HA_BASE_URLhttp://192.168.1.100:8123 set HA_ACCESS_TOKENeyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...这是连接HomeAssistant的关键。HA_BASE_URL是你HomeAssistant服务器的内网地址如果管家和HA在同一网络。HA_ACCESS_TOKEN需要在HomeAssistant后台生成点击你的用户名 - 拉到最下方“长期访问令牌” - 创建令牌。请妥善保管此令牌它拥有很高的权限。其他可选配置set LLM_MODELqwen2.5-7b-instruct set LOCATION北京市LLM_MODEL指定使用的模型需确保你的API平台支持该模型。LOCATION用于系统提示词让AI知道你的地理位置有助于生成更相关的回答如天气查询。3.3 启动CLI模式并完成首次对话配置好环境变量后我们就可以启动管家了。我们先从更简单的CLI文本模式开始。启动服务 打开一个新的命令提示符窗口导航到项目目录并激活虚拟环境。然后运行以下命令来加载环境变量并启动CLIcall examples\my_env.cmd python -m core.cli --query 打开客厅的灯 --config configs/cli.py这条命令直接让管家执行“打开客厅的灯”这个文本指令。理解执行过程 执行后你会在终端看到详细的日志输出。这个过程大致如下日志显示User: 打开客厅的灯。Agent思考LLM会分析指令识别出意图是控制智能设备并匹配到homeassistant_turn_on工具。它会尝试从你的指令中提取实体IDentity_id。如果指令中的“客厅的灯”在HomeAssistant中对应的实体ID是light.living_room它就会生成调用参数。工具调用系统向HA_BASE_URL发送一个HTTP POST请求携带访问令牌和操作参数。执行与反馈HomeAssistant服务器接收到请求控制实际的硬件开关然后返回成功状态。最终回复LLM收到工具执行成功的返回结果组织成一句自然语言如“好的客厅的灯已经打开了。”并打印在终端上。如果这是你第一次运行并且一切配置正确你应该能看到成功的日志和回复。如果失败日志通常会给出错误原因例如“无法连接到HomeAssistant”或“未找到实体”你需要根据提示检查网络或实体ID配置。3.4 启用语音交互模式让管家能“听”会说体验会提升一个档次。这需要启动额外的语音活动检测VAD服务。启动VAD服务 打开第一个命令提示符窗口运行python -m servers.vad_rpc这个服务会常驻运行监听本地端口负责检测麦克风何时开始和结束收音。启动带语音的CLI 打开第二个命令提示符窗口导航到项目目录激活环境并加载变量后运行call examples\my_env.cmd python -m core.cli --config configs/cli.py这次没有--query参数程序会进入交互模式并自动尝试连接本地的VAD服务。进行语音对话 启动后程序会提示你“正在聆听...”。此时对着麦克风清晰地说出指令例如“打开卧室的灯”。你会看到VAD服务检测到语音ASR服务将其转为文字发送给Agent后续流程与文本模式一致。执行完毕后你可能会听到语音回复如果TTS服务已配置正确。实操心得在室内使用语音时建议配备一个质量较好的USB麦克风可以显著提升识别率。另外在configs/cli.py中你可以调整VAD的灵敏度参数如threshold以适应不同的环境噪音水平。如果发现经常误唤醒或唤醒困难可以在这里进行微调。4. Web模式部署与远程访问配置CLI模式适合本地操控而Web模式才能释放“远程控制”的真正潜力。这需要前后端配合。4.1 后端服务启动后端启动与CLI类似但指定了不同的配置文件它会启动一个FastAPI服务器。call examples\my_env.cmd python -m servers.steward --config configs/backend.py成功启动后你会看到类似Uvicorn running on http://0.0.0.0:8000的提示表示后端API服务已在8000端口运行。4.2 前端服务部署与对接前端是一个独立的React/Vue项目需要从另一个仓库克隆。git clone https://github.com/OmniSteward/OmniSteward-Frontend.git cd OmniSteward-Frontend npm install # 或使用 yarn/pnpm npm run dev前端开发服务器通常会在http://localhost:3000启动。根据前端项目的README你可能需要配置代理将API请求转发到后端的http://localhost:8000。4.3 解决浏览器麦克风访问限制这是Web模式的一个关键坑点。由于现代浏览器出于安全考虑默认禁止非HTTPS即HTTP网站访问麦克风。我们的本地开发环境通常是HTTP因此需要手动设置浏览器。在Chrome或Edge浏览器地址栏输入chrome://flags/#unsafely-treat-insecure-origin-as-secure找到这个选项将其设置为Enabled。在下方的输入框中添加你的后端服务地址例如http://192.168.1.50:8000请替换为你电脑的内网IP和端口。多个地址可以用逗号分隔。重启浏览器。完成设置后访问http://localhost:8000或http://你的内网IP:8000浏览器就应该允许页面使用麦克风了。手机上的Chrome或Edge浏览器也需要进行同样的设置才能通过局域网IP访问并使用语音功能。5. 深度定制打造你的专属工具OmniSteward的真正威力在于其可扩展性。假设我想添加一个工具用来查询我本地NAS上指定文件夹的大小这在家居自动化中可能用于磁盘空间告警。5.1 创建自定义工具文件首先我们不在核心代码中直接修改而是创建一个独立的工具集文件例如my_custom_tools.py。# my_custom_tools.py import os from typing import Optional from core.tools import BaseTool, register_tool register_tool(get_folder_size) class GetFolderSizeTool(BaseTool): 一个用于计算指定文件夹总大小的工具。 def __init__(self): super().__init__() self.name get_folder_size self.description 计算指定路径下文件夹的总大小单位GB。用于监控磁盘空间。 self.parameters { type: object, properties: { folder_path: { type: string, description: 要计算大小的文件夹的绝对路径例如D:/Media/Movies } }, required: [folder_path] } def _local_call(self, *, folder_path: str, **kwargs): 工具的实际执行逻辑。 try: total_size 0 # 遍历文件夹计算大小 for dirpath, dirnames, filenames in os.walk(folder_path): for f in filenames: fp os.path.join(dirpath, f) if os.path.exists(fp): total_size os.path.getsize(fp) # 转换为GB并保留两位小数 size_gb round(total_size / (1024**3), 2) return f文件夹 {folder_path} 的总大小约为 {size_gb} GB。 except FileNotFoundError: return f错误找不到路径 {folder_path}请检查路径是否正确。 except PermissionError: return f错误没有权限访问路径 {folder_path}。 except Exception as e: return f计算文件夹大小时发生未知错误{str(e)}5.2 集成自定义工具到配置中接下来我们需要修改配置文件告诉OmniSteward加载我们这个新工具。我们可以复制一份configs/cli.py并修改。# configs/cli_custom.py import sys import os sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__)))) # 导入你的自定义工具模块 from my_custom_tools import * # 原有的配置代码... from configs.cli import config # 工具会自动通过装饰器注册配置对象会收集所有已注册的工具。 # 我们也可以手动追加如果装饰器不工作 # from core.tools import TOOL_REGISTRY # config.tools list(TOOL_REGISTRY.values()) print(f已加载工具列表: {[tool.name for tool in config.tools]})5.3 测试自定义工具现在使用这个新的配置文件来启动CLI测试我们的工具。call examples\my_env.cmd python -m core.cli --query 帮我看看D盘Backup文件夹有多大 --config configs/cli_custom.py如果一切正常LLM应该能理解你的查询意图调用get_folder_size工具并传入参数folder_path: D:/Backup最终将计算结果返回给你。通过这种方式你可以将任何Python能实现的功能——从发送邮件、爬取数据到控制专业软件——都封装成管家的一个技能。6. 常见问题排查与优化技巧实录在实际部署和使用过程中你几乎一定会遇到一些问题。下面我整理了一些典型问题的排查思路和解决方法以及一些提升体验的优化技巧。6.1 连接与配置类问题问题1启动时提示“无法导入模块”或“缺少依赖包”。排查这通常是因为虚拟环境未激活或requirements.txt未完全安装成功。解决确认已激活虚拟环境命令行提示符前有(venv)字样。尝试重新安装依赖pip install -r requirements.txt --upgrade。对于某些平台特定的包如Windows上的pywin32可能需要单独查找安装方法。问题2LLM调用失败返回“Invalid API Key”或“Connection Error”。排查检查OPENAI_API_KEY和OPENAI_API_BASE是否配置正确且没有多余的空格或换行。确认你的API Key在对应平台还有余额或调用次数。解决可以先用简单的Python脚本测试API连通性import openai client openai.OpenAI(api_key“你的KEY”, base_url“你的BASE_URL”) try: response client.chat.completions.create(model“qwen2.5-7b-instruct”, messages[{“role”: “user”, “content”: “Hello”}]) print(response.choices[0].message.content) except Exception as e: print(f“API调用失败: {e}”)问题3HomeAssistant控制失败提示“401 Unauthorized”或“404 Not Found”。排查401错误访问令牌HA_ACCESS_TOKEN错误或已过期。重新生成令牌并更新环境变量。404错误实体IDentity_id不正确或HA_BASE_URL地址错误。解决在浏览器中访问HA_BASE_URL确认HomeAssistant服务正常。在HomeAssistant的“开发者工具 - 状态”页面查找你想要的设备实体ID确保完全一致大小写敏感。使用curl或Postman手动测试APIcurl -X POST -H “Authorization: Bearer YOUR_TOKEN” -H “Content-Type: application/json” -d ‘{“entity_id”: “light.living_room”}’ http://YOUR_HA_IP:8123/api/services/light/turn_on6.2 功能与性能类问题问题4语音识别不准或者反应迟钝。排查可能是ASR服务硅基流动网络延迟高或本地VAD配置不匹配。解决网络尝试更换ASR服务提供商项目结构通常支持替换。可以搜索其他提供流式ASR API的服务。VAD调整configs/cli.py中VAD相关的参数。例如增加threshold值可以减少环境噪音误触发调整min_speech_duration_ms和min_silence_duration_ms可以改变断句的灵敏度。麦克风在系统声音设置中确认当前使用的麦克风设备正确并关闭其他可能占用麦克风的程序。问题5LLM理解指令有偏差经常调用错误的工具。排查这可能是工具描述不够清晰或者LLM的“系统提示词”System Prompt对当前场景引导不足。解决优化工具描述在自定义工具时description字段要尽可能详细、准确地描述工具的功能、适用场景和参数含义。好的描述是精准调用的前提。定制系统提示词在配置文件如configs/cli.py中找到system_prompt部分。你可以修改它加入更具体的上下文例如“你是一个家庭智能管家主要负责控制灯光、电器和查询信息。用户说的‘太亮了’可能是指调暗灯光。” 这能帮助LLM更好地理解你的领域。更换或微调模型如果使用的模型较小如7B对于复杂指令的理解能力可能有限。可以尝试在环境变量中切换到更大的模型如qwen2.5-14b-instruct或qwen2.5-32b-instruct当然这会产生更高的API成本。问题6工具执行需要用户确认打断了自动化流程。排查这是项目的一项安全特性防止恶意指令直接执行。解决对于你完全信任的指令或自动化场景可以在工具调用代码中寻找确认环节并将其绕过。但请务必谨慎确保你清楚绕过确认可能带来的风险如误删文件、误操作系统设置。更好的做法是为不同的使用场景创建不同的配置文件在高度信任的环境如纯本地网络中使用“免确认”配置。6.3 高级技巧与优化建议工具结果缓存对于一些耗时的查询类工具如获取天气、查询股票可以考虑为工具添加结果缓存机制例如在5分钟内相同的查询直接返回缓存结果减少不必要的API调用和等待时间。工具组合与工作流OmniSteward目前主要处理单次工具调用。你可以通过设计更复杂的工具或者在外层封装一个工作流引擎来实现连续的工具调用。例如一个“下班回家”场景的工具可以依次调用“打开客厅灯”、“打开空调”、“播放轻松音乐”等多个子工具。本地模型部署如果对隐私和延迟要求极高可以考虑使用Ollama、LM Studio等工具在本地部署LLM模型如Qwen2.5系列并将OPENAI_API_BASE指向本地服务地址如http://localhost:11434/v1。这可以完全脱离对云端API的依赖实现全本地化的智能管家。日志与监控在生产环境使用中务必启用并妥善管理日志。OmniSteward的日志能清晰记录每一轮对话的LLM思考过程、工具调用详情和结果。这对于调试复杂问题和分析用户使用习惯至关重要。可以考虑将日志接入到ELKElasticsearch, Logstash, Kibana或Grafana等监控平台。这个项目就像一个乐高积木的基础底板官方提供了核心的Agent引擎和一批实用的工具块。而真正的魔法在于你如何利用它高扩展的特性去搭建属于你自己的、独一无二的智能生活与工作流。从控制一盏灯开始到最终构建一个理解你习惯、预判你需求的数字伙伴这中间的探索和实现过程正是技术带给我们的最大乐趣。

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

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

相关文章

SpringBoot-17-MyBatis动态SQL标签之常用标签

文章目录 1 代码1.1 实体User.java1.2 接口UserMapper.java1.3 映射UserMapper.xml1.3.1 标签if1.3.2 标签if和where1.3.3 标签choose和when和otherwise1.4 UserController.java2 常用动态SQL标签2.1 标签set2.1.1 UserMapper.java2.1.2 UserMapper.xml2.1.3 UserController.ja…

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站,会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后,网站没有变化的情况。 不熟悉siteground主机的新手,遇到这个问题,就很抓狂,明明是哪都没操作错误&#x…

网络编程(Modbus进阶)

思维导图 Modbus RTU(先学一点理论) 概念 Modbus RTU 是工业自动化领域 最广泛应用的串行通信协议,由 Modicon 公司(现施耐德电气)于 1979 年推出。它以 高效率、强健性、易实现的特点成为工业控制系统的通信标准。 包…

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇,在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下: 【Note】:如果你已经完成安装等操作,可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作,重…

IDEA运行Tomcat出现乱码问题解决汇总

最近正值期末周,有很多同学在写期末Java web作业时,运行tomcat出现乱码问题,经过多次解决与研究,我做了如下整理: 原因: IDEA本身编码与tomcat的编码与Windows编码不同导致,Windows 系统控制台…

利用最小二乘法找圆心和半径

#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …

使用docker在3台服务器上搭建基于redis 6.x的一主两从三台均是哨兵模式

一、环境及版本说明 如果服务器已经安装了docker,则忽略此步骤,如果没有安装,则可以按照一下方式安装: 1. 在线安装(有互联网环境): 请看我这篇文章 传送阵>> 点我查看 2. 离线安装(内网环境):请看我这篇文章 传送阵>> 点我查看 说明&#xff1a;假设每台服务器已…

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…

(LeetCode 每日一题) 3442. 奇偶频次间的最大差值 I (哈希、字符串)

题目&#xff1a;3442. 奇偶频次间的最大差值 I 思路 &#xff1a;哈希&#xff0c;时间复杂度0(n)。 用哈希表来记录每个字符串中字符的分布情况&#xff0c;哈希表这里用数组即可实现。 C版本&#xff1a; class Solution { public:int maxDifference(string s) {int a[26]…

【大模型RAG】拍照搜题技术架构速览:三层管道、两级检索、兜底大模型

摘要 拍照搜题系统采用“三层管道&#xff08;多模态 OCR → 语义检索 → 答案渲染&#xff09;、两级检索&#xff08;倒排 BM25 向量 HNSW&#xff09;并以大语言模型兜底”的整体框架&#xff1a; 多模态 OCR 层 将题目图片经过超分、去噪、倾斜校正后&#xff0c;分别用…

【Axure高保真原型】引导弹窗

今天和大家中分享引导弹窗的原型模板&#xff0c;载入页面后&#xff0c;会显示引导弹窗&#xff0c;适用于引导用户使用页面&#xff0c;点击完成后&#xff0c;会显示下一个引导弹窗&#xff0c;直至最后一个引导弹窗完成后进入首页。具体效果可以点击下方视频观看或打开下方…

接口测试中缓存处理策略

在接口测试中&#xff0c;缓存处理策略是一个关键环节&#xff0c;直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性&#xff0c;避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明&#xff1a; 一、缓存处理的核…

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…

观成科技:隐蔽隧道工具Ligolo-ng加密流量分析

1.工具介绍 Ligolo-ng是一款由go编写的高效隧道工具&#xff0c;该工具基于TUN接口实现其功能&#xff0c;利用反向TCP/TLS连接建立一条隐蔽的通信信道&#xff0c;支持使用Let’s Encrypt自动生成证书。Ligolo-ng的通信隐蔽性体现在其支持多种连接方式&#xff0c;适应复杂网…

铭豹扩展坞 USB转网口 突然无法识别解决方法

当 USB 转网口扩展坞在一台笔记本上无法识别,但在其他电脑上正常工作时,问题通常出在笔记本自身或其与扩展坞的兼容性上。以下是系统化的定位思路和排查步骤,帮助你快速找到故障原因: 背景: 一个M-pard(铭豹)扩展坞的网卡突然无法识别了,扩展出来的三个USB接口正常。…

未来机器人的大脑:如何用神经网络模拟器实现更智能的决策?

编辑&#xff1a;陈萍萍的公主一点人工一点智能 未来机器人的大脑&#xff1a;如何用神经网络模拟器实现更智能的决策&#xff1f;RWM通过双自回归机制有效解决了复合误差、部分可观测性和随机动力学等关键挑战&#xff0c;在不依赖领域特定归纳偏见的条件下实现了卓越的预测准…

Linux应用开发之网络套接字编程(实例篇)

服务端与客户端单连接 服务端代码 #include <sys/socket.h> #include <sys/types.h> #include <netinet/in.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <arpa/inet.h> #include <pthread.h> …

华为云AI开发平台ModelArts

华为云ModelArts&#xff1a;重塑AI开发流程的“智能引擎”与“创新加速器”&#xff01; 在人工智能浪潮席卷全球的2025年&#xff0c;企业拥抱AI的意愿空前高涨&#xff0c;但技术门槛高、流程复杂、资源投入巨大的现实&#xff0c;却让许多创新构想止步于实验室。数据科学家…

深度学习在微纳光子学中的应用

深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向&#xff1a; 逆向设计 通过神经网络快速预测微纳结构的光学响应&#xff0c;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…