AutoGPT.js:浏览器内AI智能体开发与部署全指南

news2026/5/7 1:26:44
1. 项目概述在浏览器里跑一个AI副驾驶最近在折腾AI应用开发的朋友估计都绕不开AutoGPT这个项目。它把大语言模型LLM变成了一个能自主思考、执行任务的智能体想法很酷但部署起来对新手来说门槛不低通常需要折腾Python环境、API密钥管理还得有个服务器。直到我发现了AutoGPT.js这个项目它的核心思路非常直接把AutoGPT的能力直接搬到你的浏览器里运行。简单来说AutoGPT.js是一个开源的全栈JavaScript应用。它让你能通过一个Web界面直接与一个具备“自动”能力的GPT智能体交互。这个智能体可以帮你写代码、分析网页内容、甚至基于你本地的文件来生成新的内容。最吸引我的一点是它的核心逻辑比如任务规划、步骤执行是在你的浏览器前端执行的这带来了两个显著优势隐私性和便捷性。你的对话历史和任务细节在你不主动提交到后端的情况下很大程度上留在了本地。同时你打开一个网页就能用省去了复杂的安装配置。这个项目特别适合几类人一是想体验或学习AI智能体Agent工作原理的开发者二是需要一个轻量级、可定制的AI编程助手或研究工具的用户三是像我这样对“浏览器即操作系统”这个方向感兴趣想看看现代Web API比如文件系统访问能和AI碰撞出什么火花的探索者。接下来我会结合自己实际部署和使用的经验把这个项目的里里外外拆解清楚。2. 核心架构与工作原理拆解要玩转AutoGPT.js不能只停留在点按钮的层面得先搞清楚它内部是怎么转起来的。理解了架构无论是使用、调试还是二次开发都会顺手很多。2.1 前后端分离与职责划分AutoGPT.js采用了典型的前后端分离架构但它的“智能”核心偏重于前端。前端浏览器端是整个应用的大脑和交互中心。它基于React构建主要负责用户界面提供聊天界面、任务设置面板、文件管理器等。智能体核心逻辑这是最关键的部分。前端代码里包含了任务分解、规划、执行循环的逻辑。它会根据你的目标生成一系列子任务并决定每一步调用哪个“工具”。工具执行器项目内置了多种工具比如“读写本地文件”、“执行JavaScript代码”、“搜索网页”等。前端负责调用这些工具。例如当你要求它“分析当前目录下的README.md文件”时前端会通过浏览器提供的window.showOpenFilePicker等API来读取你本地文件的内容。与LLM API通信前端直接调用你配置的OpenAI API或其他兼容API发送精心构造的Prompt并解析返回的结果将其转化为下一步的指令或直接输出给你。后端Node.js服务器则扮演了辅助和桥梁的角色主要出于安全性和功能补充的考虑代理请求由于浏览器的同源策略限制前端不能直接访问某些外部API比如DuckDuckGo搜索、任意网站抓取。后端提供了相应的代理接口前端将请求发送到自己的后端由后端去获取数据后再返回给前端。这样既实现了功能又避免了跨域问题。会话与状态管理虽然项目强调无状态但后端可以利用Cookie或类似机制来管理用户会话确保多次请求来自同一用户。提供静态资源在生产环境中后端服务负责托管和提供前端构建好的HTML、JS、CSS文件。这种设计的巧妙之处在于将最复杂、最体现“智能”的Agent逻辑放在前端使得整个系统的响应更快减少了与后端的反复通信并且将用户数据的处理尽可能留在本地。后端则专注于处理那些前端因权限或策略无法完成的事情。2.2 智能体Agent的工作循环这是AutoGPT.js最核心的部分理解了这个循环你就明白了它如何实现“自动”。这个循环通常包含以下几个步骤我把它简化成一个更易懂的模型目标接收与解析你输入一个目标比如“为我的博客首页写一个响应式导航栏组件”。前端会把这个目标包装进一个系统Prompt中这个Prompt定义了智能体的角色比如“资深前端工程师”、约束比如“使用现代CSS不依赖jQuery”和输出格式。任务规划智能体实际上是前端代码逻辑将大目标拆解成一系列可执行的子任务。例如a. 分析需求b. 编写HTML结构c. 编写CSS样式d. 添加简单的交互逻辑e. 在浏览器中测试渲染效果。工具选择与执行对于每个子任务智能体会决定使用哪个工具。比如对于“编写HTML结构”它可能直接调用LLM生成代码并显示给你对于“在浏览器中测试”它可能会尝试将生成的代码放入一个iframe沙箱中运行。如果任务需要读取你本地的一个设计稿图片它就会调用“读文件”工具。观察与反思执行工具后会得到一个结果比如读取到的文件内容、代码执行后的输出、搜索到的信息。智能体会将这个结果作为新的上下文再次询问LLM“根据目前的结果我们下一步该做什么目标完成了吗”循环迭代上述步骤3和4会不断循环直到智能体认为目标已达成或者达到预设的循环次数限制又或者用户手动中断。注意这个循环的“智能”程度高度依赖于你给LLM如GPT-4的Prompt设计以及工具集的丰富程度。AutoGPT.js提供了一个基础框架和几个关键工具但复杂的、需要深度领域知识的任务规划目前仍需要模型本身具备较强的推理能力。2.3 关键技术依赖解析项目能跑起来离不开几个关键的技术依赖了解它们有助于排查问题Vite现代的前端构建工具提供极快的开发服务器启动和热更新。你在开发时npm run dev瞬间启动就是它的功劳。Express后端的Web框架轻量且灵活用于搭建代理接口和静态文件服务。LangChain.js规划中/社区版可能已集成这是一个强大的LLM应用开发框架。原版Roadmap提到了引入LangChain这将使工具扩展、记忆管理、链式调用变得更加模块化和强大。如果你看到代码中有langchain相关的包那就是用来构建更健壮智能体的。浏览器 File System Access API这是实现“读写本地文件”功能的基石。它允许网页在用户明确授权后直接访问用户设备上的文件。这是一个相对较新的API对浏览器版本有要求Chrome 86 Edge 86且在非HTTPS环境下可能被限制。这是其隐私性优势的来源也是其兼容性需要注意的地方。3. 从零开始本地开发环境搭建与运行纸上得来终觉浅我们直接动手把它在本地跑起来。这里我会以macOS/Linux环境为例Windows用户操作类似主要是命令行和路径的差异。3.1 环境准备与项目获取首先确保你的机器上已经安装了Node.js版本建议16或以上和npm。打开终端通过以下命令检查node --version npm --version接下来获取项目代码。推荐使用git克隆方便后续更新和贡献。git clone https://github.com/zabirauf/AutoGPT.js.git cd AutoGPT.js进入项目目录后你会看到标准的现代前端项目结构。核心部分在/src目录下包含了前端组件和工具服务器代码通常在根目录或/server目录下。3.2 关键配置环境变量与API密钥项目运行需要连接LLM服务默认是OpenAI的API。这是整个配置中最关键的一步。复制环境变量模板项目根目录下应该有一个.env.example文件。我们将其复制一份命名为.env。这个文件用来存储你的敏感配置并且默认被.gitignore排除不会提交到代码库。cp .env.example .env编辑.env文件用你喜欢的文本编辑器如VSCode、Vim、Nano打开这个新创建的.env文件。你会看到类似以下内容OPENAI_API_KEYsk-xxx...xxx # 其他可能的配置如代理地址、会话密钥等 SESSION_SECRETyour-super-secret-session-key-here获取并填入OpenAI API Key前往 OpenAI平台 登录你的账户。点击“Create new secret key”生成一个新的密钥。请妥善保管此密钥它就像你的密码一旦泄露他人就可以用你的额度调用API。将生成的密钥以sk-开头复制粘贴到.env文件中OPENAI_API_KEY的等号后面。设置会话密钥SESSION_SECRET用于加密浏览器与后端之间的会话Cookie保证基本的安全。你可以用任何随机生成的复杂字符串。在终端里你可以用以下命令快速生成一个openssl rand -hex 32将输出的字符串复制填入SESSION_SECRET后面。实操心得.env文件是配置的命门。一个常见的坑是修改了.env文件但开发服务器没有重启导致新配置不生效。另外确保你的API Key有足够的余额和正确的权限。对于国内用户如果直接连接OpenAI有困难你可能需要在代码或配置中寻找设置代理的选项但请注意这涉及到修改网络请求部分的代码不属于项目原生支持的功能。3.3 启动开发服务器配置完成后启动就非常简单了。在项目根目录下运行npm install npm run devnpm install会安装所有依赖包包括前端和后端的。这个过程取决于网络速度可能需要几分钟。npm run dev会同时启动Vite开发服务器前端和Node.js后端服务器。通常前端会运行在http://localhost:5173后端接口运行在另一个端口如3000但Vite会帮你做好代理让你感觉像是在同一个域名下操作。看到终端输出类似“Vite dev server running at:”和“Server listening on port:”的信息后就可以打开浏览器访问提示的本地地址通常是http://localhost:5173。第一次使用的注意事项页面加载后你可能需要先授权网站访问本地文件系统。当你点击“Read from my computer”之类的按钮时浏览器会弹出系统文件选择窗口请务必理解你正在授予该网页访问你选定目录的权限。初始对话时给智能体清晰、具体的指令会比模糊的指令效果更好。例如“帮我在当前文件夹下创建一个名为hello.js的文件内容为打印‘Hello World’”就比“写个代码”要好得多。4. 深度功能体验与实操指南成功运行起来后我们来深入体验它的几个核心功能并分享一些实用的操作技巧。4.1 文件系统交互你的本地AI工作区这是AutoGPT.js区别于很多云端AI应用的一大特色。它利用现代浏览器的能力直接与你电脑上的文件互动。如何使用在聊天界面你可以直接告诉智能体“请读取我桌面上的project_plan.txt文件并为我总结要点。”智能体会回复一个请求或者界面上会出现一个按钮提示你“选择文件”。点击后浏览器会弹出文件选择器。你选择目标文件后智能体就能获取其内容并基于此进行后续操作比如分析、总结、甚至修改。同样你可以让智能体“创建一个名为weekly_report.md的Markdown文件并写入以下内容...”。它会生成文件内容并提示你选择保存位置。背后的原理与限制原理调用的是window.showOpenFilePicker()和window.showSaveFilePicker()等API。这些API要求必须在用户主动交互如点击按钮的上下文中触发不能由脚本自动执行这是浏览器的安全策略。重要限制权限是临时的大多数浏览器中授予的文件夹或文件访问权限仅在当前标签页存活期间有效。关闭标签页后下次需要重新授权。不能静默访问AI不能在你不知情的情况下遍历你的硬盘。每一次读写操作都需要你通过浏览器对话框明确点选。兼容性并非所有浏览器或所有版本都完全支持此API。在移动端浏览器上可能受限。避坑技巧为了获得最佳体验建议使用最新版的Chrome或Edge浏览器。如果你在本地开发时遇到文件API无法使用检查一下浏览器地址栏左侧的锁形图标确保网站是通过http://localhost访问而不是file://协议。file://协议下许多高级API是被禁用的。4.2 代码生成与执行浏览器内的编程助手智能体可以生成各种语言的代码并且对于JavaScript/HTML/CSS它还能尝试在浏览器沙箱中直接运行看效果。典型工作流生成代码你提出需求如“用Python写一个快速排序函数”。智能体会调用LLM生成代码片段并显示在聊天框中通常会用代码块格式化。解释代码你可以继续问“请逐行解释这段代码的逻辑。”执行测试针对Web技术对于前端代码你可以说“把刚才生成的这个CSS动画效果在一个HTML页面里展示给我看。”智能体可能会尝试创建一个临时的HTML文档并利用iframe沙箱或data:URL来渲染让你直观看到效果。关于代码执行的安全性项目设计上任何代码执行尤其是动态生成的JS代码都应在严格的沙箱环境中进行比如iframe配合sandbox属性限制其访问父页面、本地存储等能力。这是防止恶意代码的关键。在Roadmap中提到的“Running JS code in a sandbox (e.g.iframe)”正是为了完善这个功能。在现有版本中如果遇到直接执行代码的功能请保持警惕理解它是在何种隔离环境下运行的。实操建议将AutoGPT.js作为一个强大的“草稿生成器”和“问题解答器”。对于复杂的项目让它生成模块代码、单元测试示例、或者解决某个具体的函数bug。但最终代码的集成、测试和上线仍需你作为开发者进行审查和把控。不要完全依赖它执行具有副作用的操作如删除文件、发送网络请求。4.3 网络搜索与信息获取智能体不能直接“上网”但它可以通过后端代理进行搜索或获取网页内容。搜索当你要求它“搜索最新的React 18特性”前端会将查询发送到自己的后端后端再去调用DuckDuckGo或其他搜索引擎的接口或模拟访问将搜索结果返回给前端前端再提炼信息呈现给你。访问URL类似地你可以说“去访问https://example.com并告诉我它的标题”。后端会扮演一个无头浏览器或简单HTTP客户端的角色去获取那个网页的内容然后返回给智能体分析。需要注意的点延迟由于多了一次代理转发搜索和访问网页会比直接操作慢一些。依赖性这个功能完全依赖于后端服务的可用性。如果项目部署的后端没有正确配置搜索代理或者代理接口失效这部分功能就会瘫痪。内容限制后端代理可能无法处理需要JavaScript渲染的复杂单页应用SPA获取到的可能是未渲染的初始HTML。4.4 短期记忆与对话上下文AutoGPT.js宣称具有“短期记忆”。在LLM应用的语境中这通常指的是它能记住当前会话中你之前说过的话和它自己执行过的操作从而保持对话的连贯性。实现方式这主要是通过将整个对话历史包括用户消息、AI回复、工具执行结果作为上下文在每次调用LLM API时一并发送过去来实现的。OpenAI的API有上下文长度限制例如GPT-3.5-turbo是16K tokensGPT-4是8K或32K所以这个“短期记忆”实际上受限于这个token窗口。管理技巧对于非常长的对话智能体可能会“忘记”很早之前的内容。你可以通过开启新对话来重置上下文。一些高级的实现可能会引入“摘要”或“向量存储”来压缩和提取关键记忆但这在基础版本中可能还未实现。5. 部署指南将你的AI助手放到线上本地玩得转之后你可能想把它部署到公网方便在不同设备上使用或者分享给团队成员。项目提供了几种部署方式这里详细讲解最主流的两种。5.1 使用Fly.io部署推荐给个人开发者Fly.io是一个非常适合部署此类轻量级Node.js应用的平台它抽象了服务器和容器让你通过命令行就能轻松部署全球应用。部署步骤详解安装Fly CLI按照 Fly.io官方指南 安装命令行工具。在终端运行fly version验证安装成功。登录与认证fly auth signup # 如果没有账号先注册 fly auth login # 已有账号则登录确保CLI登录的账号和你浏览器里Fly控制台是同一个。在项目根目录创建Fly应用fly launch这个命令会交互式地引导你扫描你的项目推荐一个DockerfileAutoGPT.js项目通常自带。让你输入一个应用名如my-autogpt-js或者随机生成。询问你是否要部署一个Postgres或Redis数据库对于AutoGPT.js通常选No除非你修改了代码需要数据库。询问是否立即部署可以先选No等我们配置好密钥。设置关键环境变量这是部署成功与否的核心。在Fly.io上环境变量通过secrets管理。fly secrets set OPENAI_API_KEY你的真实API密钥 fly secrets set SESSION_SECRET$(openssl rand -hex 32)重要OPENAI_API_KEY必须在这里设置不能写在代码或.env文件里提交。fly secrets set命令会安全地将这些变量注入到你的运行环境中。可选调整配置检查项目根目录生成的fly.toml文件。你可以根据需要调整[env]部分的其他变量或者[http_service]的端口内部端口应为8080对应代码里的监听端口。通常默认配置即可。开始部署fly deploy这个命令会打包你的应用上传到Fly.io并启动容器。终端会显示构建和部署日志。成功后会给出你的应用URL如https://my-autogpt-js.fly.dev。访问与验证用浏览器打开给你的URL。如果一切正常你应该能看到和本地开发时一样的界面。首次使用文件功能时浏览器会提示“此网站想访问你的文件”因为现在是通过HTTPS访问文件API可以正常工作。部署后维护查看日志fly logs重启应用fly apps restart更新代码后重新部署提交代码后在项目目录再次运行fly deploy。注意费用Fly.io有免费的额度足够个人小应用使用。但务必在控制台设置用量提醒防止意外超支。5.2 使用Docker部署适用于自有服务器或云平台如果你有自己的云服务器如AWS EC2、DigitalOcean Droplet、腾讯云CVM等使用Docker部署能保证环境一致性。步骤详解构建Docker镜像在项目根目录确保有Dockerfile执行。docker build -t autogpt-js:latest .这个命令会根据Dockerfile中的指令创建一个包含所有依赖和构建后代码的镜像。准备环境变量Docker运行时需要注入环境变量。创建一个docker-compose.yml文件是更优雅的方式version: 3.8 services: autogptjs: image: autogpt-js:latest # 或使用你构建的镜像名 container_name: autogptjs-app ports: - 3000:8080 # 将宿主机的3000端口映射到容器的8080端口 environment: - NODE_ENVproduction - OPENAI_API_KEY${OPENAI_API_KEY} # 从.env文件或宿主机环境变量读取 - SESSION_SECRET${SESSION_SECRET} restart: unless-stopped同时在docker-compose.yml同目录下创建或复制你的.env文件填入OPENAI_API_KEY和SESSION_SECRET。运行容器docker-compose up -d-d参数表示在后台运行。配置反向代理强烈推荐直接暴露Node.js应用的3000端口不安全也不便于用域名访问。你应该在前面加一个Nginx或Caddy作为反向代理。安装Nginxsudo apt install nginx(Ubuntu/Debian)配置站点在/etc/nginx/sites-available/下创建一个配置文件例如autogptjsserver { listen 80; server_name your-domain.com; # 你的域名 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_cache_bypass $http_upgrade; 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; } }创建软链接并重启Nginxsudo ln -s /etc/nginx/sites-available/autogptjs /etc/nginx/sites-enabled/ sudo nginx -t # 测试配置语法 sudo systemctl reload nginx配置HTTPS使用Let‘s Encrypt的Certbot获取免费SSL证书是让浏览器文件API正常工作的必备步骤。sudo apt install certbot python3-certbot-nginx sudo certbot --nginx -d your-domain.com两种部署方式对比特性Fly.ioDocker 自有服务器上手难度极低命令行几步搞定中等需了解Docker、服务器运维、Nginx运维成本低平台托管高需要自己维护服务器、更新、监控灵活性中等受平台限制极高可完全自定义环境、网络、存储成本有免费额度超出后按需付费需要支付服务器固定费用但资源完全自有适合场景个人项目、原型快速上线、不想管服务器企业内网部署、需要深度定制、已有服务器资源6. 常见问题排查与进阶技巧在实际使用和部署过程中你肯定会遇到一些问题。这里我整理了一些常见坑点和解决方法。6.1 常见错误与解决方案速查表问题现象可能原因解决方案启动npm run dev失败端口被占用3000或5173端口已被其他程序使用1. 修改package.json或Vite配置中的端口号。2. 用命令lsof -i :3000(Mac/Linux) 或netstat -ano | findstr :3000(Windows) 找到占用进程并结束。前端页面能打开但无法与AI对话控制台报错Failed to fetch1. 后端服务未启动或崩溃。2. 前端代理配置错误。3. OpenAI API Key未设置或错误。1. 检查终端后端服务日志是否有报错。2. 检查vite.config.js中的proxy配置是否正确指向后端地址。3. 确认.env文件中的OPENAI_API_KEY正确且已重启服务。文件读写功能不可用浏览器无反应1. 浏览器不支持File System Access API。2. 页面未通过HTTPS或localhost访问。3. 用户未授权或授权被阻止。1. 使用Chrome/Edge 86或Firefox最新版。2. 确保通过http://localhost:xxxx访问开发服务器。3. 检查浏览器地址栏是否有文件访问权限被阻止的图标尝试清除站点设置后重试。部署到Fly.io后应用启动失败1. 环境变量未通过fly secrets set设置。2. Docker构建失败依赖缺失。3. 应用监听端口与fly.toml中配置不一致。1. 运行fly secrets list确认密钥已设置。2. 查看fly logs检查构建和启动错误信息。3. 确保应用在容器内监听的是8080端口Fly.io默认转发到此端口。AI回复内容空洞或循环1. Prompt设计不佳目标不明确。2. 上下文过长模型“忘记”了最初目标。3. 达到Token限制或迭代次数限制。1. 给你的指令加上更具体的约束和上下文。例如指定角色、格式、步骤。2. 尝试开启新对话或者要求AI先总结当前进展再继续。3. 检查代码中是否有最大循环次数的限制。搜索或访问网页功能失效后端代理服务配置错误或依赖的第三方服务不可用。1. 检查后端相关代理路由的代码是否正常。2. 查看后端日志看代理请求时是否出错。3. 可能是DuckDuckGo等源站暂时不可用可尝试修改代理代码使用备用搜索引擎。6.2 性能优化与使用技巧控制成本频繁使用会消耗OpenAI API的token产生费用。在.env或界面设置中可以考虑对于不需要最高创造性的任务将模型从gpt-4切换到gpt-3.5-turbo。调整temperature参数如果项目支持降低其随机性让输出更可控。清晰、简洁的Prompt能减少不必要的token消耗。编写有效的Prompt这是用好任何LLM应用的关键。对AutoGPT.js的智能体你可以尝试这样的结构角色你是一个经验丰富的全栈开发者。任务帮我创建一个简单的Express.js服务器它有一个/api/hello的GET端点返回JSON{“message”: “Hello from AutoGPT.js”}。约束使用ES6语法代码要有注释并给出启动服务器的步骤。输出格式首先给出完整的server.js代码然后用步骤列表说明如何运行。利用“短期记忆”在复杂的多步骤任务中适时地帮智能体总结一下。例如在它完成几步操作后你可以说“好的目前我们已经完成了A和B。接下来请基于A和B的结果继续做C。”这有助于刷新它的上下文焦点。安全须知API密钥永远不要将写有真实API密钥的.env文件提交到Git仓库。确保.env在.gitignore中。文件权限授权网页访问文件时尽量选择特定的工作目录而不是整个硬盘或用户根目录。生成代码运行AI生成的代码尤其是涉及系统命令、文件操作、网络请求的代码前务必人工审查。切勿在生产环境中直接运行未经审核的代码。6.3 扩展与二次开发思路如果你不满足于现有功能想把它改造成更适合自己的工具这里有一些方向添加自定义工具这是最直接的扩展。在src目录下找到工具定义的地方可能是一个tools文件夹或类似结构模仿现有工具如readFile,webSearch的格式创建一个新工具。例如你可以创建一个“发送邮件”的工具调用你的邮件服务API。关键步骤定义工具名称、描述、输入参数实现一个执行函数将这个工具注册到智能体可用的工具列表中。集成其他LLM APIRoadmap里提到了切换不同LLM。你可以修改调用LLM的客户端部分比如集成Anthropic的Claude、Google的Gemini API甚至是本地部署的Ollama通过其API。这通常需要修改后端的相关API路由或前端的请求配置。增强记忆能力实现长期记忆可以将对话历史、执行结果的关键信息向量化存储到前端的IndexedDB或后端的数据库中。当新任务到来时先进行向量相似度搜索把相关记忆作为上下文喂给LLM。优化UI/UX根据你的使用习惯修改React组件。比如增加一个“常用指令”的快捷按钮栏或者改进文件管理器的展示方式。这个项目的魅力就在于它的可塑性。它提供了一个浏览器内AI智能体的基础框架剩下的就看你如何用它来解放自己的生产力了。从我自己的使用体验来看它最适合的场景是作为编程、写作、研究的“副驾驶”处理那些明确但繁琐的子任务而不是完全取代你的核心决策和创造过程。

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