基于DGX OpenClaw Stack构建本地AI智能体:从硬件调优到生产部署

news2026/5/13 3:46:59
1. 项目概述一站式本地AI智能体栈如果你和我一样对把大语言模型LLM真正“养”在自己的硬件上构建一个功能完整、数据私有的智能助手有执念那么你很可能已经踩过不少坑了。从选模型、搭服务、配工具链到处理多语言、长上下文、工具调用每一步都布满了细节陷阱。今天分享的这套DGX OpenClaw Stack就是我基于NVIDIA GB10 SuperchipDGX Spark / ASUS GB10硬件打磨出的一个“开箱即用”的生产级本地AI智能体解决方案。它不仅仅是一个模型服务而是一个完整的栈从支持工具调用的多模态大模型Gemma 4到多语言向量检索bge-m3再到保护隐私的自托管搜索引擎SearxNG全部通过一个docker-compose.yml文件编排起来一键部署。这个栈的核心价值在于“确定性”。它通过一个幂等的配置修补脚本解决了OpenClaw这类智能体框架在自托管环境下常见的配置痛点——比如工具调用模板缺失、混合检索未启用、隐私搜索插件默认关闭等问题。无论你是GB10机主还是拥有其他NVIDIA GPU如RTX 4090的用户甚至是只想用本地智能体栈但连接云端大模型的开发者这套方案都提供了清晰的路径。接下来我将拆解它的设计思路、实操细节并分享在调优过程中积累的经验。1.1 核心需求与设计目标在开始搭建任何自托管AI应用前明确目标至关重要。我的核心需求有四个完全私有化所有核心组件模型推理、向量化、记忆存储尽可能在本地运行避免敏感数据上传至第三方API。功能完整智能体需具备工具调用、多模态理解、长上下文记忆、联网搜索和语音交互等高级能力。生产可用部署稳定配置可重现升级和迁移过程可控具备基本的故障排查指引。硬件效能最大化针对特定硬件此处是GB10 Superchip进行深度调优充分发挥其128GB统一内存和FP4张量核心加速的优势。DGX OpenClaw Stack正是围绕这些目标构建的。它没有选择最轻量的方案而是追求在给定硬件上实现功能与性能的最佳平衡。例如选择Gemma 4 31B NVFP4模型是在模型能力31B参数、256K上下文、原生工具调用和多模态、推理速度NVFP4量化带来近2倍于BF16的吞吐和内存占用之间取得的平衡。选择bge-m3作为嵌入模型则是为了获得出色的多语言检索能力这对于非英语用户的RAG应用至关重要。2. 架构深度解析从容器到智能体整个栈的架构清晰且模块化所有服务通过Docker Compose在默认桥接网络内通信仅网关端口对外暴露。这种设计简化了网络配置提升了内网通信效率。[用户端] --(WebSocket)-- [OpenClaw Gateway (:18789)] | | (内部DNS) ---------------------------------------------------------- | | | [vLLM-LLM] [vLLM-Embedding] [SearxNG] (:8004, Gemma 4) (:8005, bge-m3) (:8080, 搜索) | | | ---------------------------------------------------------- | [配置修补器 (patch-config.mjs)] | [TTS路由 / STT服务 (可选语音组件)]2.1 核心服务组件详解vLLM-LLM 服务这是栈的大脑负责运行量化后的Gemma 4 31B模型。这里有几个关键决策镜像选择直接使用官方vllm/vllm-openai:gemma4-cu130镜像。这个镜像预装了针对Blackwell架构sm_120/sm_121和NVFP4格式优化的内核无需自行编译保证了最佳兼容性和性能。量化格式NVFP4这是NVIDIA为Blackwell芯片推出的4位浮点格式。与常规的FP4或INT4相比NVFP4采用了块状存储格式能更好地利用Blackwell的张量核心在几乎不损失精度的情况下将推理速度提升约一倍。这是为GB10硬件定制的关键优化。工具调用支持通过--tool-call-parser gemma4 --enable-auto-tool-choice参数以及一个自定义的tool_chat_template_gemma4.jinja聊天模板让vLLM能够输出符合OpenAI格式的tool_calls数组从而被OpenClaw原生识别和调用。内存与并发调优在.env文件中LLM_GPU_MEM_UTIL和LLM_MAX_NUM_SEQS等参数经过了针对GB10 128GB统一内存的校准。它们控制了vLLM的KV缓存内存分配和连续批处理continuous batching的并发数直接影响长上下文下的稳定吞吐量。vLLM-Embedding 服务独立于LLM服务运行bge-m3嵌入模型。这样做的好处是资源隔离嵌入任务通常需要快速响应且与LLM生成任务对资源的诉求不同。独立服务可以避免嵌入计算挤占LLM的KV缓存或计算资源。模型专精bge-m3在跨语言检索任务上表现优异支持超过100种语言。其1024维的向量和8K的上下文窗口为后续的混合检索提供了高质量的基础。配置独立同样在.env中通过EMBED_GPU_MEM_UTIL单独控制其GPU内存使用比例实现两个vLLM进程在统一内存下的和谐共存。OpenClaw Gateway 服务这是智能体的运行时环境和管理界面。它提供了Chrome扩展UI、命令行接口CLI并管理着智能体的持久化记忆、多代理协作和“心跳”等核心功能。网关通过WebSocket默认端口18789与前端通信并通过Docker网络内部DNS名称访问LLM、嵌入和搜索服务。SearxNG 服务一个自托管的元搜索引擎是本栈“隐私保护”特性的核心。它不直接提供搜索结果而是作为中间层将用户的查询转发给其配置的多个上游搜索引擎如DuckDuckGo、Brave、Wikipedia等然后聚合、去重并呈现结果。关键配置在于searxng/settings/settings.yml文件它严格限制了可用的搜索引擎明确禁用了Google、Bing、Yandex、Yahoo、Baidu等商业引擎确保用户的搜索查询不会泄露给这些巨头。2.2 关键技术实现混合检索与配置修补混合检索Hybrid Retrieval单纯的向量相似性搜索余弦相似度在处理精确术语匹配、ID查询或包含罕见专有名词的查询时容易失效。OpenClaw Stack通过配置在memorySearch功能中同时启用了BM25Best Matching 25一种基于词频和文档长度的经典全文检索算法通过SQLite的FTS5模块实现擅长关键词精确匹配。向量相似性搜索基于bge-m3生成的向量进行相似度计算。 系统会并行执行这两种检索各自返回一个候选结果集然后通过MMRMaximal Marginal Relevance重排序算法进行融合。MMR在保证结果相关性的同时兼顾了结果的多样性避免返回一堆高度相似但冗余的内容。这个组合拳确保了无论用户用模糊语义还是精确关键词查询记忆都能得到高质量的结果。幂等配置修补器patch-config.mjs这是本项目的“灵魂”所在。OpenClaw本身有一个交互式的初始化向导但其生成的默认配置对于生产级自托管场景是不完备的。这个用Node.js编写的小脚本会在每次docker compose up时运行执行一系列检查与修补操作确保配置处于我们定义的“理想状态”。它主要做以下几件事注册本地模型将我们自托管的Gemma 4 NVFP4模型正确注册到OpenClaw的模型列表中并关联正确的聊天模板。启用并配置混合检索在记忆存储设置中打开BM25和向量搜索开关并设置MMR参数。激活SearxNG插件将默认禁用的SearxNG搜索插件启用并正确指向容器内的服务地址。配置TTS/STT路由将语音合成和识别服务注册到OpenClaw的媒体工具配置中。设置可信代理预配置gateway.trustedProxies为后续在前端部署反向代理如Nginx做好准备。 这个脚本被设计为“幂等”的即无论运行多少次只要最终状态符合预期它就不会做不必要的修改或产生副作用这对于自动化部署和配置管理至关重要。3. 硬件适配与性能调优实战虽然参考配置是针对GB10 Superchip的但栈本身具有很好的可移植性。关键在于理解各个参数的意义并根据自己的硬件进行调整。3.1 针对GB10 Superchip的校准GB10Grace-Blackwell的核心特点是采用了ARM架构的Grace CPU与Blackwell GPU的超级芯片设计并通过高速一致性互联共享128GB的LPDDR5X统一内存。这带来了高带宽273 GB/s和CPU-GPU零拷贝数据传输的优势但也意味着GPU内存不再是独立的显存而是需要与CPU共享的系统内存。在.env.example中针对GB10的调优主要体现在LLM_GPU_MEM_UTIL0.85指示vLLM的LLM服务可以使用约85%的可用GPU内存约109GB来存储模型权重、激活和KV缓存。留出部分内存给嵌入服务和其他系统进程。EMBED_GPU_MEM_UTIL0.10嵌入服务分配约10%的内存。LLM_MAX_NUM_SEQS64设置连续批处理的最大序列数这个值影响了高并发下的吞吐量和延迟平衡。在128GB内存下64是一个相对保守且稳定的值。LLM_MAX_MODEL_LEN262144设置为模型最大上下文256K附近但实际稳定运行窗口会受并发数影响。实测单用户约220K双用户各约110K。KV_CACHE_DTYPEfp8将KV缓存的数据类型从默认的BF16改为FP8。这直接将KV缓存的内存占用减半是支持更长上下文的关键技巧且对生成质量影响甚微。实操心得统一内存下的“内存争夺”在传统独立显存架构上LLM和Embedding服务的内存是硬隔离的。但在GB10的统一内存架构下它们共享同一个内存池。如果LLM_GPU_MEM_UTIL和EMBED_GPU_MEM_UTIL之和设置过高如超过0.95虽然服务能启动但在高负载时可能因内存碎片或瞬时峰值导致OOM内存溢出崩溃。建议总和使用率设置在0.9-0.95之间并为系统预留空间。监控工具如nvidia-smi会显示统一的“GPU Memory Usage”。3.2 适配其他NVIDIA GPU如RTX 4090对于拥有RTX 409024GB显存或其他消费级显卡的用户直接运行31B的NVFP4模型可能显存不足。你需要进行模型“降级”和参数调整更换Docker镜像和模型在docker-compose.yml中将vllm-llm服务的镜像从vllm/vllm-openai:gemma4-cu130改为通用的vllm/vllm:latest。然后修改模型加载参数换成一个更小的、支持你的GPU算力如sm_89对应Ada Lovelace架构的模型。例如Gemma 4 12BBF16或GPTQ量化版Qwen 2.5 14BLlama 3.1 8B 你需要相应修改MODEL_ID和可能的QUANTIZATION参数。重调环境变量LLM_GPU_MEM_UTIL根据你的显存大小和模型占用重新计算。例如RTX 4090有24GB显存运行一个13B的INT4量化模型可能占用12-14GB你可以设置为0.6约14.4GB以留出空间给KV缓存和系统。LLM_MAX_NUM_SEQS消费级显卡的并发能力较弱可以适当降低如设置为32或16以避免在高并发时响应延迟激增。LLM_MAX_MODEL_LEN如果使用更小的模型其上下文窗口可能也更小如128K需要相应调低。嵌入模型bge-m3模型相对较小在RTX 4090上运行通常没有问题。保持EMBED_GPU_MEM_UTIL0.10或更低即可。3.3 纯云端LLM的混合部署模式如果你的本地没有强大的GPU但仍想使用本地的智能体栈记忆、搜索、工具调度等可以采用混合模式禁用本地vLLM服务在docker-compose.yml中为vllm-llm和vllm-embedding服务添加profiles: [never]这样它们不会被启动。配置云端端点在.env文件中设置以下变量OPENAI_BASE_URLhttps://api.openai.com/v1或 Anthropic、OpenRouter、Azure OpenAI 的端点LLM_BASE_URL同上指向你的LLM API。EMBED_BASE_URL可以继续指向一个本地或远程的嵌入服务例如你可以在另一台机器上单独部署bge-m3或者直接使用一些云API提供的嵌入功能如果它们支持。配置API密钥在OpenClaw的配置中填入对应云服务的API密钥。这样OpenClaw Gateway会将LLM请求转发到云端而记忆检索、网络搜索、语音处理等所有其他功能仍在本地运行既节省了本地算力又保留了核心数据的隐私性。4. 部署与配置全流程指南下面以一个全新的GB10环境为例展示从零到一的完整部署过程。这个过程也适用于其他Linux服务器环境。4.1 前置条件与系统准备确保你的系统满足以下条件操作系统Ubuntu 22.04 LTS或更高版本其他Linux发行版可能需要调整Docker安装步骤。Docker Engine24.0 和Docker ComposeV2。NVIDIA驱动及NVIDIA Container Toolkit原nvidia-docker2已正确安装。可以通过nvidia-smi命令验证驱动和GPU识别。网络能够访问Docker Hub和Hugging Face以下载镜像和模型。注意事项模型下载体积Gemma 4 31B NVFP4的模型权重大约60GBbge-m3大约2GB。首次启动时自动下载请确保有足够的磁盘空间建议预留150GB以上和稳定的网络环境。4.2 分步部署命令与解释# 1. 克隆仓库 git clone https://github.com/chestercs/dgx-openclaw-stack.git cd dgx-openclaw-stack # 2. 运行引导脚本关键步骤 ./bootstrap.shbootstrap.sh脚本是交互式的它会检查Docker和NVIDIA运行环境。复制.env.example到.env并引导你设置一些关键变量如OPENCLAW_LAN_CIDR你的局域网网段用于可信代理以及是否启用匈牙利语TTSCC-BY-NC许可需确认。生成OpenClaw网关所需的随机API令牌。所有操作都是非破坏性的不会覆盖你已有的配置。# 3. 启动所有核心服务首次启动会下载模型耗时较长 docker compose up -d此时vllm-llm,vllm-embedding,searxng,openclaw-gateway等服务会开始启动。注意openclaw-gateway在首次运行时会因为等待初始配置而进入“崩溃-重启”循环这是正常现象。# 4. 进行OpenClaw初始配对 # 查看网关日志获取配对令牌 docker compose logs openclaw-gateway | grep -A2 -B2 pairing token # 输出中会包含一个URL和token例如ws://your-server-ip:18789?tokenabc123...打开OpenClaw的Chrome扩展程序或在本机运行openclaw setup命令输入上一步获取的WebSocket URL和令牌完成网关配对。这个配对过程会触发OpenClaw完成其内部的初始化向导。# 5. 应用最终配置并重启网关 docker compose up -d --force-recreate openclaw-config-init openclaw-gateway openclaw-cli在配对完成后执行此命令。openclaw-config-init服务即配置修补器会检测到初始化已完成随即运行patch-config.mjs将我们预设的所有优化配置混合检索、搜索插件、TTS/STT路由等写入OpenClaw的数据库。然后强制重建并启动网关和CLI服务。至此整个栈进入就绪状态。4.3 验证服务状态使用以下命令检查各服务是否健康运行docker compose ps所有服务的状态应为running。可以进一步查看日志# 查看LLM服务日志 docker compose logs vllm-llm --tail 50 # 应看到模型加载成功、服务监听在8004端口的消息。 # 查看网关日志 docker compose logs openclaw-gateway --tail 50 # 应看到配置修补成功、WebSocket服务器启动的消息。现在你可以通过Chrome扩展与你的本地智能体对话了。尝试问它一个需要搜索的问题比如“今天AI领域有什么新闻”它会调用本地的SearxNG进行搜索并总结。5. 高级功能配置与使用技巧5.1 语音合成与识别TTS/STT栈中集成了双语语音功能这是一个非常实用的特性。英语TTS (Kokoro 82M)默认已启用。它是一个轻量级、Apache 2.0许可的模型运行在GPU上延迟低音质自然。OpenClaw发出的语音请求会被openclaw-tts-router服务接收并路由到Kokoro服务。匈牙利语TTS (F5-TTS, 可选)这是一个由社区微调的优质匈牙利语模型但采用CC-BY-NC 4.0许可仅限非商业使用。启用步骤在运行./bootstrap.sh时选择启用或手动在.env文件中设置COMPOSE_PROFILEShu并配置F5HUN_API_TOKEN。构建并启动该服务docker compose --profile hu up -d --build openclaw-tts-f5hun启用后TTS路由器会自动检测文本中是否包含匈牙利语特有的变音符号如 á, é, ő, ű如果是即使请求指定了英语语音如coral也会自动路由到匈牙利语后端实现无缝的双语语音输出。语音识别STT (Whisper)基于Systran/faster-whisper-large-v3构建支持英语和匈牙利语的自动检测。它被集成到OpenClaw的tools.media.audio管道中。这意味着在Chrome扩展中上传语音笔记。在Discord语音频道中使用。通过VoiceCall CLI进行通话。使用Talk或Voicewake节点时。 以上所有场景的语音都会通过这个本地STT服务转录为文本再交给LLM处理全程无需离开你的服务器。5.2 自定义智能体与工具扩展OpenClaw的强大之处在于其可扩展的智能体系统。部署好基础栈后你可以创建自定义智能体Agent并为其赋予特定的技能Skill。创建自定义技能技能本质上是LLM可调用的函数。你可以在OpenClaw的管理界面中通过“技能编辑器”创建。例如创建一个技能调用你内部系统的API来查询订单状态。// 示例技能获取服务器状态 async function getServerStatus(serverIp) { const response await fetch(http://${serverIp}:9090/api/status); const data await response.json(); return 服务器 ${serverIp} 状态CPU负载 ${data.cpuLoad}%内存使用 ${data.memUsage}%。; }你需要定义技能的名称、描述、输入参数如serverIp和执行函数。配置智能体使用技能创建一个新的智能体或编辑默认的“Primary”智能体在它的配置中“启用”你刚刚创建的技能。同时你还可以为智能体设定系统提示词System Prompt定义它的角色和行为准则。工具调用流程当用户向智能体提问时例如“帮我看看192.168.1.100的服务器是否正常”LLM会根据你的系统提示词和技能描述判断是否需要调用getServerStatus工具。如果需要它会生成一个结构化的tool_calls请求。OpenClaw网关接收到后会执行对应的JavaScript函数并将执行结果返回给LLMLLM再组织成最终的自然语言回复给用户。5.3 对外暴露与反向代理默认情况下只有网关的18789端口对宿主机开放。如果你想通过互联网安全地访问需要设置反向代理和SSL。使用Nginx Proxy Manager (NPM)这是一个带Web UI的流行选择。在NPM中新建一个代理主机。域名指向你的服务器IP或DDNS域名。目标地址填写http://你的服务器内网IP:18789。开启SSL使用Let‘s Encrypt申请证书。在“高级”选项卡中添加以下自定义配置确保WebSocket连接能正确升级proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme;配置OpenClaw信任代理为了让OpenClaw能正确识别通过反向代理传来的真实客户端IP你需要在.env中设置的OPENCLAW_LAN_CIDR基础上确保反向代理服务器的IP也在可信列表中。或者更简单的方法是在NPM的配置中将你的反向代理服务器IP添加到OPENCLAW_LAN_CIDR所定义的网段中。更新OpenClaw连接在Chrome扩展中将连接地址从ws://your-server:18789改为wss://your-domain.com注意协议变为wss。6. 故障排查与维护经验即使配置再完善在实际运行中也可能遇到问题。以下是一些常见问题的排查思路和解决方法。6.1 服务启动失败症状可能原因排查步骤与解决vllm-llm启动失败日志显示CUDA错误或OOM。1. NVIDIA驱动或CUDA版本不兼容。2. 显卡算力不支持如非Blackwell卡尝试运行NVFP4镜像。3. 内存分配参数LLM_GPU_MEM_UTIL设置过高。1. 运行nvidia-smi确认驱动正常检查CUDA版本需12.4。2. 确认你的GPU架构。若非GB10参考第3.2节更换镜像和模型。3. 逐步调低.env中的LLM_GPU_MEM_UTIL值如从0.85降至0.75重启服务。openclaw-gateway持续崩溃重启。1. 首次启动等待配对正常。2. 配对后仍崩溃可能是配置修补失败或数据库连接问题。1. 首次启动后需完成步骤4的配对操作。2. 检查openclaw-config-init容器的日志docker compose logs openclaw-config-init。查看是否有错误信息。常见问题是网络问题导致无法连接到网关的配置API。确保所有容器在同一Docker网络中。searxng服务无法启动或搜索无结果。1. 端口冲突8080已被占用。2. 网络问题导致无法访问上游搜索引擎。1. 修改docker-compose.yml中searxng的端口映射如8081:8080。2. 进入容器执行测试docker compose exec searxng curl -s https://duckduckgo.com/html/。检查宿主机的DNS和防火墙设置。6.2 功能异常症状可能原因排查步骤与解决智能体无法调用网络搜索。SearxNG插件未启用或配置错误。1. 在OpenClaw管理界面通常通过Chrome扩展设置进入检查“插件”列表确保searxng插件处于“启用”状态。2. 检查patch-config.mjs是否成功运行。可以手动执行docker compose exec openclaw-config-init node /app/patch-config.mjs查看输出。记忆检索memorySearch效果差找不到已知内容。混合检索未启用或BM25/向量索引未正确构建。1. 确认配置修补器已启用混合检索。检查OpenClaw配置中关于memorySearch的设置。2. 尝试同时使用精确关键词和语义搜索进行查询看哪种方式能命中。如果只有一种生效说明另一种检索方式未正常工作。3. 记忆的索引是增量构建的。确保在与智能体对话时它已经将足够多的历史对话存储到了记忆中。工具调用不生效。1. LLM服务未加载正确的聊天模板。2. 技能描述不够清晰LLM无法理解何时调用。1. 检查vllm-llm服务日志确认启动参数中包含--chat-template /app/tool_chat_template_gemma4.jinja。2. 优化你的技能描述。描述应清晰说明功能、输入参数格式和预期输出。可以在系统提示词中明确指导LLM使用可用工具。6.3 性能优化吞吐量低如果生成token的速度很慢检查nvidia-smi的GPU利用率。如果利用率不高可能是LLM_MAX_NUM_SEQS设置过低无法充分利用连续批处理。可以尝试适当增加并监控内存使用情况。响应延迟高在并发请求下延迟变高可能是KV缓存被频繁换入换出。尝试降低LLM_MAX_NUM_SEQS或LLM_MAX_MODEL_LEN减少单个序列占用的缓存资源。对于GB10确保没有其他重型进程在争夺统一内存。首次请求慢这是冷启动cold start的正常现象包括模型加载、编译计算图等。服务保持运行状态后后续请求会快很多。6.4 日常维护日志管理Docker容器的日志会逐渐增长。建议配置Docker的日志驱动为json-file并设置大小和数量限制或者使用docker compose logs --follow进行实时监控问题排查后及时清理旧日志。模型更新当有新的、更优秀的模型发布时如Gemma的后续版本你可以通过修改docker-compose.yml中的MODEL_ID和环境变量来更新。注意vLLM可能会缓存模型文件更新后最好删除旧的缓存目录通常位于~/.cache/vllm或容器内的/root/.cache/vllm以确保加载新模型。备份配置最重要的备份是OpenClaw的数据库通常是一个SQLite文件位于你映射的./data/openclaw目录下。这个文件包含了所有智能体配置、记忆和技能定义。定期备份此目录。升级栈在升级前务必阅读项目的CHANGELOG.md了解不兼容的变更。建议的升级流程是1) 备份数据和.env文件2) 拉取最新代码3) 比较新旧docker-compose.yml和.env.example将必要的改动合并到你的.env4) 重新运行docker compose up -d --build重建服务。部署和运行这样一个完整的本地AI智能体栈就像打理一个精密的数字花园。从硬件的选择调优到软件栈的每一层配置都需要耐心和细致。DGX OpenClaw Stack的价值在于它提供了一个经过实战检验的、高度集成的基线。你可以直接使用它获得一个功能强大的私人AI助手也可以以它为蓝图根据自己特定的硬件、模型偏好或功能需求进行裁剪和深化。最重要的是它把控制权和数据所有权完全交还给了用户这在我看来是AI技术走向真正普及和负责任应用的必经之路。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2605072.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;替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…