WebLLM Chat:在浏览器中本地运行大语言模型,实现隐私安全的AI对话

news2026/5/5 12:42:35
1. 项目概述在浏览器里跑大模型彻底告别隐私焦虑如果你和我一样既想体验大语言模型的强大又对把对话记录、工作文档一股脑儿上传到云端服务器这件事心存芥蒂那今天聊的这个项目绝对会让你眼前一亮。WebLLM Chat一个完全在你自己浏览器里运行的大型语言模型聊天应用。它背后依赖的核心是WebLLM项目简单说就是一群技术大牛把像 Llama、Mistral、Gemma 这些动辄几十亿参数的模型通过编译和优化塞进了你的浏览器并利用现代显卡的WebGPU接口来加速计算。这意味着什么意味着你的每一次提问、模型的每一次回答所有的计算都发生在你本地机器的内存和显存里。数据压根不出你的电脑自然也就没有隐私泄露的风险。这感觉就像把整个 AI 研究所搬进了你的浏览器标签页既酷炫又踏实。我最初接触这个项目时最打动我的就是这种“主权在我”的体验——不用注册账号不用关心额度更不用担心某天服务突然被墙或者政策变动。只要你的电脑能打开支持 WebGPU 的浏览器比如最新版的 Chrome 或 Edge你就拥有了一个私有的、离线的 AI 助手。2. 核心架构与工作原理拆解2.1 为什么是“浏览器原生”传统的 AI 应用无论是 ChatGPT 还是 Claude都遵循着“客户端-服务器”架构。你的输入通过网络传到远方的数据中心经过庞大的 GPU 集群计算后再把结果传回来。这个模式有它的优势比如能提供最强大的模型和最稳定的服务。但劣势也同样明显延迟依赖网络、隐私无法自控、服务有中断风险并且持续产生云端计算成本。WebLLM Chat选择了一条截然不同的路边缘计算的极致形态。它将模型推理这个最重的计算任务完全下放到了终端设备——也就是你的个人电脑上。实现这一点的技术基石有三块模型编译与优化 (MLC-LLM)原始的大模型如 PyTorch 格式的.bin文件无法直接在浏览器中运行。MLC-LLM 框架的作用是将这些模型编译、优化成一种高度精简、适合在各种硬件后端包括 WebGPU上高效执行的格式。这个过程会进行算子融合、内存布局优化、量化比如将 FP16 权重转为 INT4等操作在保证一定精度的前提下大幅降低模型对内存和算力的需求。WebGPU 计算接口这是取代传统 WebGL 的现代浏览器图形与计算 API。与只为图形渲染设计的 WebGL 不同WebGPU 提供了通用的计算管线Compute Pipeline允许开发者直接调用 GPU 进行大规模的并行数值计算这正是大模型矩阵乘法和注意力机制所需要的。它让浏览器能像 CUDA 或 Metal 那样直接驱动 GPU 进行 AI 推理。客户端运行时 (WebLLM)这是一个 JavaScript/TypeScript 库它封装了加载编译后模型、管理 GPU 内存、执行推理循环、处理 token 生成流等一系列复杂操作。它向上提供简单的generate()之类的 API向下则与 WebGPU 驱动和浏览器 Wasm 环境交互。这三者结合构成了一个完整的“浏览器原生 AI 运行时”。你的浏览器因此从一个单纯的内容渲染器变成了一个强大的、便携的 AI 计算终端。2.2 技术栈选型Next.js 与生态整合项目的前端界面基于NextChat构建并采用了Next.js框架。这个选型非常务实且高明NextChat 提供了开箱即用的聊天UI包括对话历史管理、Markdown 渲染、代码高亮、夜间模式等。自己从零实现一套体验良好的聊天界面是巨大的前端工程直接复用成熟方案能让团队专注于核心的 AI 集成。Next.js 兼顾开发效率与部署灵活性作为 React 的元框架Next.js 提供了服务端渲染、静态生成、API Routes 等能力。对于这个项目它主要的价值在于快速的本地开发体验热重载、清晰的工程结构。灵活的构建输出既可以构建为需要 Node.js 环境的 Next.js 应用 (yarn build)也可以输出为纯静态文件 (yarn export)方便部署到 GitHub Pages、Vercel 或任何静态托管服务。易于集成可以方便地管理环境变量、引入第三方库。整个技术栈的选择体现了“不重复造轮子”和“关注核心差异化价值”的工程思想。团队把精力花在了最难的、也是最具价值的环节将大模型高效、稳定地运行在浏览器中。3. 从零开始环境准备与首次运行3.1 硬件与浏览器要求在动手之前必须确认你的设备满足基本要求否则会直接卡在第一步。操作系统Windows 10/11, macOS 12, 或主流 Linux 发行版。系统需要能安装现代浏览器。显卡与驱动这是最关键的一环。你需要一块支持Vulkan(Linux/Windows) 或Metal(macOS) 的独立显卡或集成显卡并安装最新版的官方驱动。NVIDIA建议使用 GTX 10系列或更新架构的显卡并更新到最新的 Game Ready 或 Studio 驱动。AMD建议使用 RX 5000 系列或更新架构的显卡。Intel第 11 代酷睿Iris Xe或更新的集成显卡。Apple Silicon (M1/M2/M3)完美支持性能表现通常很好。检查方法访问chrome://gpu或edge://gpu在“Graphics Feature Status”中查找“WebGPU”。如果显示为“Hardware accelerated”则基本可用。浏览器Google Chrome版本 113 及以上。确保在chrome://flags中搜索并启用#enable-unsafe-webgpu在较新版本中可能已默认启用且无需此标志。Microsoft Edge版本 113 及以上。同样基于 Chromium支持情况与 Chrome 类似。其他浏览器Firefox 和 Safari 对 WebGPU 的支持仍在完善中目前不建议作为首选。注意如果你的浏览器提示“WebGPU 不可用”99% 的原因是显卡驱动过旧或浏览器版本太低。请优先更新这两者。在虚拟机和部分老旧集成显卡上WebGPU 可能无法启用。3.2 本地开发环境搭建如果你想自己构建、修改或深入了解项目需要搭建本地开发环境。# 1. 安装 Node.js 和包管理工具 # 建议使用 nvm (Node Version Manager) 来管理 Node.js 版本避免权限问题。 # 访问 Node.js 官网下载 LTS 版本如 18.x, 20.x亦可。 # 这里以使用 nvm 为例适用于 macOS/LinuxWindows 用户可下载 nvm-windows # curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash # 安装后新开终端安装 Node.js nvm install 20 nvm use 20 # 安装 yarn (一个更快的包管理器) npm install -g yarn # 2. 获取项目代码 git clone https://github.com/mlc-ai/web-llm-chat.git cd web-llm-chat # 3. 配置环境变量可选但重要 # 项目根目录下创建 .env.local 文件用于覆盖默认配置。 # 例如如果你在墙内可能需要配置代理来加速 npm 包的下载和模型文件的获取。 # 在 .env.local 中加入请替换为你自己的代理地址和端口 # HTTPS_PROXYhttp://127.0.0.1:7890 # 注意此代理配置仅影响构建过程中的网络请求不影响运行时。 # 4. 安装项目依赖 # 这个过程会下载 Next.js、React、WebLLM 等所有必要的库。 yarn install # 如果网络不畅可以尝试设置 yarn 的代理或使用国内镜像源。 # 5. 启动本地开发服务器 yarn dev执行yarn dev后终端会输出类似 Ready on http://localhost:3000的信息。此时打开浏览器访问http://localhost:3000你就能看到本地的 WebLLM Chat 界面了。首次运行的加载过程 第一次打开页面时应用会自动从项目的 CDN 下载你选择的模型文件例如Llama-2-7b-chat-hf-q4f32_1。这是一个几百 MB 甚至上 GB 的文件下载速度和你的网络状况有关。下载完成后浏览器会进行模型的初始化和缓存。下次再打开同一模型时就会快很多。这个下载进度条和初始化状态在界面上会有明确提示。4. 内置模型体验与性能实测4.1 如何选择你的第一个模型进入应用后在侧边栏的设置中你会看到“模型”选项。WebLLM 预置了一系列优化好的模型。对于初次体验我的建议是从轻量级开始首选TinyLlama-1.1B-Chat或Phi-2。它们的参数量小1B-3B下载快几百MB对硬件要求低即使在集成显卡上也能获得尚可的响应速度。目的是先验证整个链路是否通畅。关注量化等级模型名称中的q4f32_1、q4f16_1等后缀代表了量化方式。q4表示权重被量化为 4 比特相比原始的 16 比特 FP16大幅节省内存和带宽f32_1或f16_1表示计算过程中激活值等仍保持较高精度以保证输出质量。q4系列是内存、速度和精度权衡下的最佳选择强烈推荐。逐步升级确认轻量模型运行无误后可以尝试Llama-2-7B-Chat或Mistral-7B-Instruct。7B 模型是当前在消费级硬件上能达到实用效果的“甜点”尺寸能提供更复杂的推理和更高质量的回答。但请注意它们需要至少 4-8GB 的可用显存内存。4.2 性能表现与优化技巧我在一台配备M1 Pro (16GB 统一内存)的 MacBook Pro 和一台配备RTX 4060 Laptop GPU (8GB 显存)的 Windows 笔记本上进行了测试。TinyLlama-1.1B-Chat (q4f32_1)首次 Token 时间 (Time to First Token)约 1-2 秒。这是从你按下发送到看到第一个字出现的时间包含了模型预热、计算初始化。生成速度约 20-30 tokens/秒。感觉非常流畅几乎无感知延迟。内存占用浏览器标签页内存约 1.5GB。体验适合简单的问答、摘要、翻译。逻辑推理和长文生成能力有限。Llama-2-7B-Chat (q4f32_1)首次 Token 时间约 3-5 秒。明显能感觉到一个“思考”的停顿。生成速度约 8-15 tokens/秒。速度尚可看着文字一个个蹦出来适合不赶时间的对话。内存占用浏览器标签页内存飙升到 4-6GB。这是对设备内存的硬性考验。体验回答质量显著提升能进行多轮对话、撰写邮件、构思代码框架等实际任务。是本地可用性和能力平衡的标杆。性能优化心得关闭其他高负载应用运行 7B 模型时Chrome 本身可能占用 4-6GB 内存。请务必关闭不必要的浏览器标签页尤其是视频网站、IDE、虚拟机等为模型运行留出足够的内存空间否则浏览器可能会崩溃或系统开始频繁使用交换内存导致速度急剧下降。利用模型缓存模型文件下载后默认会缓存在浏览器的 IndexedDB 中。除非你手动清除网站数据否则下次加载会非常快。这是“一次下载终身离线”的基础。关注生成设置在设置中你可以调整“最大生成长度”和“温度”。降低生成长度可以提前结束生成节省时间。降低温度如从 0.7 调到 0.2会让模型输出更确定、更保守可能略微加快速度并提高一致性。理解“离线”的含义一旦模型加载完成你可以完全断开网络进行对话。但是模型的“知识截止日期”是固定的取决于训练数据它无法获取实时信息。对于需要最新数据的查询它无能为力。5. 高级玩法连接本地自定义模型内置模型虽好但如果你有自己微调过的模型或者想尝试 WebLLM 官方列表之外的模型如最新的 Qwen 或 DeepSeek该怎么办WebLLM Chat 提供了通过MLC-LLM REST API连接本地自定义模型的“高级模式”。这相当于把浏览器作为前端你本地另一个更强大的服务作为后端。5.1 搭建本地 MLC-LLM 服务这是整个流程中最具技术挑战性的一步但一步步来并不难。# 假设你已经在本地准备好了一个编译好的 MLC 格式模型。 # 1. 安装 MLC-LLM (推荐使用 Python 虚拟环境) pip install mlc-ai-nightly -f https://mlc.ai/wheels # 或者从源码安装以获得最新特性。 # 2. 启动 REST API 服务 # 假设你的模型路径是 ./dist/models/Llama-2-13b-chat-hf-q4f16_1 mlc_llm serve ./dist/models/Llama-2-13b-chat-hf-q4f16_1 --device \cuda:0\ --host 0.0.0.0 --port 8000参数解析./dist/models/...你通过mlc_llm convert_weight等命令编译好的模型目录路径。--device \cuda:0\指定使用第一块 NVIDIA GPU。如果是 CPU则用\cpu\Apple Silicon 用\mps\。--host 0.0.0.0允许所有网络接口访问方便同一局域网内其他设备连接。--port 8000服务监听的端口。服务成功启动后你会看到类似INFO: Uvicorn running on http://0.0.0.0:8000的输出。此时一个遵循 MLC-LLM REST 协议的模型服务就在你本地的 8000 端口运行起来了。5.2 在 WebLLM Chat 中配置连接打开 WebLLM Chat 网页本地运行的或官方的均可。点击侧边栏的“设置”图标。在“模型”部分找到“模型类型”下拉框选择“MLC-LLM REST API (Advanced)”。在下方出现的“API 端点”输入框中填入你的本地服务地址例如http://localhost:8000。点击“保存并关闭”。现在回到聊天主界面。你会发现模型列表变成了从你的本地 API 动态获取的列表。选择你刚刚启动的模型例如Llama-2-13b-chat-hf就可以开始对话了。所有的推理请求都会从浏览器发送到你本地的localhost:8000由你的本地服务利用完整的 GPU 资源进行计算再将结果流式传回浏览器展示。这种模式的优势突破浏览器资源限制你可以运行 13B、70B 甚至更大的模型只要你的本地机器扛得住。使用自定义模型你可以接入自己微调的、或任何 MLC-LLM 支持格式的模型。资源共享一台性能强大的台式机作为服务器同一局域网内的笔记本、平板都可以通过浏览器访问这个私有 AI 服务。重要提示在这种模式下数据依然没有离开你的本地网络隐私性仍然有保障。但性能瓶颈从浏览器的 WebGPU 转移到了你的本地服务硬件以及局域网速度上。6. 部署方案从本地到公网6.1 静态站点部署最简单如果你只是想把自己定制好的聊天界面比如换了主题、默认模型分享出去或者部署到一台没有 Node.js 环境的机器上静态部署是最佳选择。# 在项目根目录下 yarn build yarn export执行yarn export后会在out目录下生成纯静态的 HTML、JS、CSS 文件。你可以直接双击out/index.html在浏览器中打开注意由于浏览器安全限制直接打开可能无法加载模型最好通过本地 HTTP 服务器。使用npx serve out启动一个简单的静态服务器。将out文件夹里的全部内容上传到GitHub Pages、Vercel、Netlify或任何静态托管服务。静态部署的局限性它只能使用 WebLLM 内置的、从 CDN 下载的模型。无法使用“MLC-LLM REST API”模式因为那需要后端服务。6.2 Docker 容器化部署推荐用于生产对于更正式、可移植的部署Docker 是标准答案。项目自带的Dockerfile使得部署变得极其简单。# 1. 构建 Docker 镜像 docker build -t my-webllm-chat . # 2. 运行容器 # 基础运行映射到宿主机 3000 端口 docker run -d -p 3000:3000 --name webllm-chat-app my-webllm-chat # 更复杂的例子设置环境变量如代理 docker run -d -p 3000:3000 \ -e PROXY_URLhttp://host.docker.internal:7890 \ --name webllm-chat-app \ my-webllm-chat环境变量说明PROXY_URL如果容器内的应用需要访问外部网络如下载模型且处于受限环境可以通过此变量设置 HTTP 代理。host.docker.internal是一个特殊的主机名指向宿主机的本地回环地址。Docker 部署的优势环境一致性消除了“在我机器上能跑”的问题。资源隔离应用运行在独立的容器中更安全。易于扩展和管理可以配合 Docker Compose、Kubernetes 进行编排。6.3 反向代理与 HTTPS如果你希望通过域名在公网访问请注意安全风险建议仅在可信内网或配合认证使用你需要一个反向代理如 Nginx、Caddy来处理 SSL 证书和请求转发。一个简单的 Nginx 配置示例server { listen 443 ssl http2; server_name chat.yourdomain.com; ssl_certificate /path/to/your/cert.pem; ssl_certificate_key /path/to/your/key.pem; location / { proxy_pass http://localhost:3000; # 指向 Docker 容器或本地运行的服务 proxy_http_version 1.1; 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; # 以下两行对于 WebSocket 通信用于流式输出很重要 proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection upgrade; } }安全警告将此类服务直接暴露在公网存在风险。任何人拿到地址都可以使用你的服务并可能消耗你的服务器资源。强烈建议至少添加基础的 HTTP 认证或将其部署在 VPN 或零信任网络之后。7. 实战问题排查与经验记录在实际把玩和部署 WebLLM Chat 的过程中我踩过不少坑也总结了一些排查问题的路径。7.1 常见问题速查表问题现象可能原因排查步骤与解决方案页面打开后一片空白控制台报错1. 浏览器不支持 WebGPU。2. Node.js 版本不兼容。3. 依赖安装失败。1. 访问chrome://gpu检查 WebGPU 状态更新浏览器和显卡驱动。2. 确认 Node.js 版本为 18使用node -v检查。3. 删除node_modules和yarn.lock重新运行yarn install。模型下载失败或卡在 0%1. 网络连接问题尤其是对 GitHub 等国外源。2. 浏览器存储空间不足。1. 检查网络可尝试配置系统或浏览器的代理。对于本地开发在.env.local中设置HTTPS_PROXY。2. 检查浏览器的 IndexedDB 存储是否已满尝试清理该网站的数据。模型加载成功但推理时浏览器崩溃或页面无响应1. 内存/显存不足。2. 模型太大超出硬件承受能力。1. 关闭所有不必要的程序和浏览器标签页。使用任务管理器监控内存使用。2.换用更小的模型如从 7B 换到 3B 或 1B。这是最有效的办法。选择“MLC-LLM REST API”模式后无法连接或列表为空1. 本地 MLC-LLM 服务未启动。2. 防火墙阻止了端口访问。3. API 地址填写错误。4. CORS 问题。1. 在终端确认mlc_llm serve进程正在运行且无报错。2. 尝试在浏览器直接访问http://localhost:8000应能看到 MLC-LLM 的 API 文档页面。3. 确保地址和端口号正确。如果 WebLLM Chat 是https而 API 是http浏览器会因混合内容策略阻止需确保两者协议一致或使用反向代理。流式输出中断或响应很慢1. 本地机器 CPU/GPU 负载过高。2. 网络延迟仅限 REST API 模式。3. 浏览器垃圾回收导致卡顿。1. 降低生成长度 (max_tokens)。2. 在 REST API 模式下确保客户端和服务端在同一局域网网络通畅。3. 这是一个已知的浏览器端性能问题暂无完美解决方案通常等待一下或刷新页面可缓解。7.2 性能调优与资源监控对于追求极致体验的用户这里有一些进阶技巧浏览器选择经过我的测试在相同硬件上Chrome 通常比 Edge 有稍好一点的 WebGPU 性能和内存管理。可以两者都试试选择在你机器上表现更稳定的那个。开发者工具是利器Memory 面板在 Chrome DevTools 的 Memory 面板中可以拍摄堆快照查看 WebLLM 运行时和模型缓存具体占用了多少内存。这有助于判断是否是内存不足导致崩溃。Performance 面板录制一段生成回答的过程可以看到主线程、GPU 线程的活动情况找出可能的卡顿点。模型量化等级如果官方提供了同一模型的不同量化版本如q4f16_1vsq4f32_1可以都尝试一下。f16可能比f32速度稍快但理论上精度略有损失实际对话中差异可能微乎其微。系统级监控在运行大模型时打开系统的活动监视器macOS或任务管理器Windows观察 GPU 利用率和内存压力。如果内存压力持续很高macOS 显示黄色/红色Windows 内存使用率 90%崩溃风险就很大。7.3 关于隐私的再思考WebLLM Chat 标榜的“隐私”是它最大的卖点但我们需要理性看待绝对本地是的对话数据本身不会离开你的设备。这是它相对于 OpenAI API 等服务的根本优势。模型来源你下载的模型文件来自项目的 CDN通常是 GitHub 或 Hugging Face。你需要信任这些模型的发布者没有在权重中植入后门。对于开源模型社区审查是一道屏障。初始下载第一次下载模型需要联网。这个过程中你的 IP 地址、下载时间等信息对 CDN 提供商是可见的。但这仅表明你下载了某个模型文件不涉及对话内容。浏览器扩展如果你安装了其他浏览器扩展它们有可能读取页面内容。确保你信任所安装的扩展。总的来说它的隐私模型是“客户端计算”比“服务器计算”要安全得多但并非毫无攻击面。对于绝大多数非敏感的商业对话和个人创意写作它提供的隐私保护已经绰绰有余。8. 总结与未来展望折腾了这么久从环境配置到模型测试再到尝试连接本地大模型WebLLM Chat 给我的感觉更像是一个技术宣言和一个强大的起点。它证明了在浏览器中运行实用级的大语言模型不再是天方夜谭而是触手可及的现实。对于开发者而言它打开了一扇新的大门如何构建真正属于用户、无需担心服务稳定性和数据隐私的下一代 AI 应用我个人最看好的几个方向是企业内网知识库助手将企业内部的文档、代码库编译成 RAG检索增强生成模型通过 WebLLM 部署员工在浏览器内即可安全、快速地查询内部信息所有数据不出内网。教育工具为学生提供离线的编程辅导、语言学习伙伴完全规避网络依赖和内容审查问题。个人写作与思考伙伴一个永远在线、完全私密的写作助手帮你起草邮件、润色文章、激发灵感而不必担心想法被第三方记录和分析。当然它目前还有明显的局限性模型性能受限于终端硬件最大的可用模型尺寸可能就在 7B-13B 这个范围生成速度无法与云端媲美多模态能力除了基础的视觉模型还比较弱。但技术的车轮滚滚向前WebGPU 在持续优化模型压缩和推理技术也在飞速发展。也许用不了多久在浏览器里流畅运行 70B 模型就会成为常态。最后给想深入研究的开发者一个建议别只把它当做一个聊天应用。去看看它背后的WebLLM和MLC-LLM项目理解其编译栈和运行时。这才是真正的宝藏。你可以用它把任何兼容的模型“变成”一个 Web 应用这才是“Democratizing AI”的题中之义。

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