基于EVE ESI API与AI Agent的自动化游戏监控与数据分析实践

news2026/5/12 20:55:15
1. 项目概述为AI助手注入EVE宇宙的灵魂如果你是一名《EVE Online》的玩家同时又对AI自动化工具感兴趣那么你很可能和我一样长期被一个矛盾所困扰一方面EVE这个沙盒宇宙充满了需要监控和管理的日常事务——从行星开发PI的提取器计时到市场订单的价格波动再到穿越低安星域时的安全威胁评估另一方面这些重复性的数据查询和状态检查工作又极其消耗时间和精力让人难以专注于游戏里更有趣的战略和社交活动。我一直在寻找一种方法能让我的AI助手比如我用的OpenClaw真正“理解”并介入我的EVE游戏生活。我希望它能在我工作时自动告诉我哪个行星的提取器快空了能在我规划贸易路线时提醒我哪些星系的击杀数突然飙升甚至能定期汇总我的资产净值。然而现成的工具要么功能单一要么需要复杂的自建服务学习成本和维护负担都很重。直到我遇到了burnshall-ui/openclaw-eve-skill这个项目。它本质上是一个专为OpenClaw这类AI Agent平台设计的“技能包”其核心使命就是将零散的EVE ESI API能力封装成一套AI助手能够直接理解、调用的标准化指令。你可以把它想象成给你的AI助手安装了一个“EVE专用插件”让它瞬间获得了查询你游戏角色数据、分析市场、评估威胁的超能力。这个项目最吸引我的地方在于它的设计哲学零依赖、模块化、玩家友好。它不要求你搭建一个庞大的后端服务仅仅利用Python标准库和ESI公开接口就构建了一套从身份认证、数据查询到高级功能如PI监控、威胁评估的完整工具链。接下来我将带你深入拆解这个技能包分享如何从零开始部署、配置并将其深度集成到你的自动化工作流中让你在EVE宇宙中的每一步都更加从容、智能。2. 核心设计思路为何选择ESI与技能化架构在深入代码之前理解这个项目背后的设计逻辑至关重要。它没有选择去解析游戏客户端内存、模拟鼠标键盘操作或是破解私有协议而是完全基于CCP官方提供的EVE Swagger Interface来构建。这个选择奠定了项目安全、稳定和可持续的基石。2.1 为什么是ESI APIESI是一套遵循OpenAPI规范的RESTful API是CCP官方唯一认可的外部数据接口。使用它有几个无法替代的优势绝对合规所有操作都在游戏规则允许的范围内完全避免了使用第三方插件可能导致的封号风险。数据权威实时数据直接来自TQ tranquility服务器是最权威、最及时的。功能全面涵盖了从角色信息、资产、技能到市场、宇宙状态等几乎所有可公开查询的数据维度。完善的OAuth2鉴权通过标准的SSO流程获取访问令牌无需玩家提供账号密码安全性极高。项目采用PKCE增强的OAuth2流程进行认证。这是一种目前公认最安全的授权码流程特别适合像本项目这样没有后端服务器、运行在用户本地环境的应用。它通过一个临时创建的、随机的“代码验证码”来防止授权码被拦截冒用即使有人截获了你的授权码也无法换到访问令牌。整个过程中你的EVE账号密码只输入在CCP官方的登录页面项目本身完全接触不到。2.2 “技能”化架构的精妙之处这个项目不是一个独立的桌面应用或网站而是一个“技能”。这在AI Agent的语境下意味着它是一组标准化、可被AI理解和调用的功能模块。这种设计带来了极大的灵活性即插即用你不需要改造你的AI助手主程序只需将本技能包放置到指定目录助手就能发现并加载它。模块化功能每个功能如查钱包、查PI状态、评估威胁都被封装成独立的“动作”AI可以通过简单的命令行或函数调用来触发。与工作流无缝集成你可以让AI助手按计划定时运行这些技能例如每30分钟检查一次PI状态也可以基于特定事件触发例如当检测到角色进入低安星系时自动评估威胁。配置驱动通过JSON配置文件你可以自定义警报规则、报告模板和监控任务实现高度个性化的自动化。这种架构使得项目的边界非常清晰它只负责与ESI交互、处理数据、提供接口。至于何时调用、如何决策、怎样通知用户则完全交给更上层的AI Agent或你的自定义脚本。这种关注点分离的设计让整个系统更易于维护和扩展。3. 从零开始环境准备与认证配置理论说得再多不如动手实践。让我们一步步把这个技能包装进你的系统并完成最关键的身份认证。3.1 基础环境与项目获取首先确保你的环境满足最基本的要求一个安装了Python 3.8或更高版本的Linux/macOS/WSL环境以及一个已经部署好的OpenClaw环境或者至少你知道它的工作空间目录在哪。获取技能包非常简单就是一个git clone操作# 切换到你的OpenClaw技能目录通常在这里 cd ~/.openclaw/workspace/skills # 克隆本技能仓库 git clone https://github.com/burnshall-ui/openclaw-eve-skill eve-esi完成后你会得到一个名为eve-esi的目录里面包含了所有的脚本、配置和文档。正如项目所说核心功能零外部依赖仅用Python标准库这意味着你几乎不可能遇到令人头疼的包版本冲突问题。3.2 申请你的开发者密钥这是与ESI交互的通行证。前往 EVE开发者门户 并登录你的EVE账号。点击“Create New Application”。应用名称可以随意起比如“My OpenClaw Monitor”。应用类型选择“Third-Party Application”。回调地址这是最关键的一步。必须填写http://127.0.0.1:8080/callback。这个地址是本地认证脚本用来接收授权码的。权限范围在“Scopes”部分勾选你需要的权限。对于基础的PI监控和资产查看我建议至少勾选以下核心权限esi-planets.manage_planets.v1(管理行星)esi-assets.read_assets.v1(读取资产)esi-wallet.read_character_wallet.v1(读取钱包)esi-location.read_location.v1(读取位置)esi-universe.read_structures.v1(读取建筑信息用于解析PI行星位置)创建成功后页面上会显示你的Client ID。请妥善保存它是一串长字符我们接下来的认证会用到它。注意在这个PKCE流程中我们不需要也不应该使用“Client Secret”所以可以忽略它。重要安全提示整个过程中你的EVE账号密码只会在CCP官方的SSO页面上输入。本地的认证脚本只会收到一个有时效性的访问令牌Access Token这个令牌的权限也仅限于你上一步勾选的范围。这是OAuth2标准流程的安全保障。3.3 执行首次认证本地环境如果你的OpenClaw和本技能包都运行在你日常使用的电脑上那么认证过程非常简单# 进入技能目录 cd ~/.openclaw/workspace/skills/eve-esi # 运行认证脚本将 YOUR_CLIENT_ID 替换为刚才获取的ID python3 scripts/auth_flow.py --client-id YOUR_CLIENT_ID --char-name main脚本会启动一个临时的本地Web服务器并打印出一个URL。用浏览器打开这个URL你会看到熟悉的EVE SSO登录页面。登录并授权后页面会跳转回本地服务器脚本自动完成令牌交换并将令牌加密保存到~/.openclaw/eve-tokens.json文件中。--char-name参数是你给这个角色起的别名方便后续管理比如我用main代表我的主号。3.4 远程服务器认证的SSH隧道技巧很多朋友为了7x24小时运行监控会选择将OpenClaw部署在云服务器或家里的NAS上。在这种情况下认证流程需要一点小技巧因为CCP的回调地址是127.0.0.1:8080而你的浏览器在本地电脑上。解决方案是使用SSH端口转发将服务器上的8080端口“隧道”到你本地电脑# 在你的本地电脑终端执行 ssh -L 8080:localhost:8080 your_usernameyour_server_ip -N这个命令的意思是“将我本地电脑的8080端口的所有流量通过SSH连接转发到远程服务器的8080端口”。-N参数表示不执行远程命令只建立隧道。保持这个SSH窗口开启。然后在另一个终端里通过SSH登录到你的服务器再执行和本地一样的认证命令ssh your_usernameyour_server_ip cd ~/.openclaw/workspace/skills/eve-esi python3 scripts/auth_flow.py --client-id YOUR_CLIENT_ID --char-name main此时脚本打印出的URL你依然在本地电脑的浏览器中打开。登录授权后回调信息会通过我们建立的SSH隧道安全地传回服务器上的认证脚本。完美解决3.5 管理多个角色如果你和我一样是个“仓鼠党”拥有多个角色管理起来也很轻松# 为第二个角色认证使用不同的别名 python3 scripts/auth_flow.py --client-id YOUR_CLIENT_ID --char-name industry_alt # 列出所有已认证的角色 python3 scripts/get_token.py --listget_token.py --list命令会显示所有已存储的角色别名及其对应的角色名和角色ID非常清晰。所有的令牌都安全地存储在那个单一的eve-tokens.json文件里并由脚本自动管理刷新。4. 核心功能深度解析与实战完成认证我们就拿到了通往EVE数据宇宙的钥匙。接下来让我们深入这个技能包的几个核心功能模块看看它如何将原始的ESI数据转化为 actionable 的洞察。4.1 行星开发监控从数据到决策PI是很多玩家的重要ISK来源但也是最繁琐的日常之一。这个技能包的PI监控功能是我认为价值最高的部分。它不仅仅是拉取数据而是做了深度的解析和状态判断。基础查询获取所有行星# 首先获取一个有效令牌 TOKEN$(python3 ~/.openclaw/workspace/skills/eve-esi/scripts/get_token.py --char main) # 设置你的角色ID CHAR_IDYOUR_CHARACTER_ID_HERE # 列出角色拥有的所有PI行星 python3 scripts/esi_query.py --action pi_planets --token $TOKEN --character-id $CHAR_ID --pretty这个命令会返回一个列表包含每个行星的ID、所在星系、行星类型以及升级等级。这是你所有PI殖民地的“地图”。核心功能PI状态总览真正强大的是pi_status动作python3 scripts/esi_query.py --action pi_status --token $TOKEN --character-id $CHAR_ID --pretty这个命令的输出是结构化的对于每个行星它会告诉你planet_name: 行星的具体名称如“Dodixie IX - Moon 3”。extractors: 所有提取头的详细信息列表。对于每个提取头关键字段是expiry_time到期时间和hours_remaining剩余小时数。脚本会自动计算剩余时间。storage_fill_pct: 发射平台和存储设施的估算填充百分比。这是通过分析行星上所有建筑的输入输出链路估算当前存储了多少产品。needs_attention: 一个布尔值True意味着这个行星需要你尽快上线处理。action_required: 一段人性化的描述直接告诉你问题所在例如“Extractor #2 on P1 will expire in 4.3 hours” 或 “Storage for P3 is 92% full”。状态判断逻辑解析needs_attention这个标志不是随便设置的它背后有一套实用的逻辑提取器警报任何提取头的剩余时间小于6小时就会触发警报。这给了你足够的时间比如一个工作日内去登录游戏进行重置。存储警报存储填充率超过80%触发警报。防止因存储满仓导致生产线停工。组合警报如果同时存在多个问题action_required字段会汇总说明。这个功能彻底改变了我的PI管理方式。我不再需要每天手动登录每个角色去每个星球检查只需要让AI助手定时运行这个命令一旦有行星needs_attention为真就通过Telegram或Discord推送警报给我。效率提升不是一点半点。重要限制说明必须清醒认识到ESI API对PI是只读的。这个技能能做的所有事情就是“告诉你发生了什么问题”。它不能帮你重启提取器、调整工厂链路或发射产品。这些操作仍然必须在游戏内完成。它的价值在于把你从“频繁登录检查”的苦力中解放出来只在真正需要操作时通知你。4.2 市场情报与资产价值评估除了PI市场信息和资产总览也是日常管理的重点。获取全局市场均价ESI提供了一个包含所有物品“调整后价格”和“平均价格”的端点。这个技能包将其封装为market_price_bulk动作python3 scripts/esi_query.py --action market_price_bulk --pretty这个数据量很大通常用于批量计算资产价值或寻找价格异常物品。你可以将其输出重定向到文件或结合jq等工具进行过滤分析。查询吉他一跳市场行情对于具体物品的实时买卖行情jita_price动作非常有用# 查询三钛合金type_id: 34在吉他The Forge region的订单 python3 scripts/esi_query.py --action jita_price --type-id 34 --pretty输出会包含lowest_sell: 最低卖单价highest_buy: 最高买单价sell_order_count: 卖单数量buy_order_count: 买单数量spread_isk: 买卖价差ISKspread_pct: 买卖价差百分比这个信息对于短线交易者或决定何时出售PI产品至关重要。你可以写一个简单的脚本定期监控你生产的几种PI产品的吉他价差在价差收窄市场活跃或卖单价达到心理价位时提醒你。资产查询与净值估算结合资产列表和市场价格可以粗略估算角色总资产# 获取角色所有资产分页获取全部 python3 scripts/esi_query.py --token $TOKEN --endpoint /characters/$CHAR_ID/assets/ --pages --pretty assets.json # 获取钱包余额 python3 scripts/esi_query.py --token $TOKEN --endpoint /characters/$CHAR_ID/wallet/ --pretty虽然技能包没有直接提供“一键净值计算”的功能但利用它提供的这些原子化数据接口你完全可以构建自己的资产监控面板。例如用market_price_bulk的数据为assets.json中的物品计价再加上钱包余额就能得出一个大概的净值。这对于追踪财富增长趋势非常有帮助。4.3 威胁评估与安全导航在危险宇宙中规划航线对于常在低安、零安活动的玩家星系的安全状况是生死攸关的信息。这个技能包整合了多个数据源提供了一套威胁评估体系。数据源融合威胁评估不是拍脑袋想出来的它基于以下几个实时数据源的综合分析ESI系统击杀数(/universe/system_kills/): 过去一小时的舰船、舱体、NPC击杀总数。直接反映当前交火烈度。ESI跳跃数(/universe/system_jumps/): 过去一小时的舰船跳跃数量。高跳跃数可能意味着交通枢纽或热门战场也可能只是贸易路线。zKillboard PVP数据(通过公开API): 过去24小时内的PVP击杀及其估值。高价值的击杀往往意味着有组织的小队或旗舰在场。ESI势力战争系统状态(/fw/systems/): 显示哪些系统正处于势力战争争夺中冲突等级如何。ESI入侵状态(/incursions/): 显示哪里有萨沙或血袭者入侵舰队这些NPC舰队对过往船只极具威胁。威胁等级量化项目定义了一个简单的评分算法具体逻辑在Agent工作空间的脚本中将上述数据转化为一个威胁分数和等级威胁等级分数区间行动建议低 (Low)0-15常规操作。可以安心进行PI、采矿或过路。中 (Medium)15-40保持警惕。建议快速进出不要长时间逗留保持警觉。高 (High)40-80高度危险。强烈建议使用隐身装备侦察后再进入或直接绕行。非战斗船应避免进入。严重 (Critical)80极端危险。可能有大规模舰队战或死亡陷阱。除非你是战斗编队一员否则绝对不要进入。实战应用安全路线规划最酷的功能莫过于route_plan与威胁评估的结合。假设你想从吉他Jita去阿卡诺尔Akhonor但又想避开热点地区# 首先获取两个星系的ID可以通过其他工具或查询获得 # 例如Jita的system_id是30000142 ORIGIN30000142 DESTINATION30002537 # 假设这是Akhonor的ID # 使用‘secure’标志规划路线算法会尝试避开高威胁星系 python3 scripts/esi_query.py --action route_plan --origin $ORIGIN --destination $DESTINATION --route-flag secure --pretty脚本会返回一条航线并为航线上的每一个途经星系附加上计算出的威胁等级。你一眼就能看出哪一段路是“红色区域”。结合character_location动作获取角色当前位置你甚至可以做一个简单的预警当角色即将进入一个“高”或“严重”威胁的星系时让AI助手给你发一条强提醒。实操心得威胁评估模型可以自定义。项目提供的评分逻辑是一个很好的起点但你可以根据自己的风险承受能力和活动区域例如00联盟地区对跳跃数的权重可能和安全地区不同来调整工作空间中的评分脚本。比如我个人就更看重zKillboard上的近期旗舰击杀记录因此在我的自定义脚本里这部分数据的权重会调得更高。5. 自动化仪表盘配置让AI成为你的专属后勤官手动运行命令固然可以但真正的力量在于自动化。项目提供的仪表盘配置功能就是让你定义一套规则告诉AI助手“在什么情况下检查什么然后如何通知我”。5.1 配置文件结构与解析配置文件是一个JSON文件遵循config/schema.json定义的规范。它的核心结构包括几个部分alerts: 定义触发警报的条件和通知方式。reports: 定义定期生成的报告内容和发送周期。market_tracking: 定义需要跟踪的市场物品和价格阈值。pi_monitoring: 定义PI监控的细节如检查频率、忽略的星球等。一个配置片段示例{ alerts: [ { type: pi_extractor_expired, character: main, params: { warning_hours: 12 }, notify: { method: discord_webhook, webhook_url: $ENV:DISCORD_PI_WEBHOOK } }, { type: wallet_large_deposit, character: main, params: { threshold_isk: 1000000000 }, notify: { method: telegram, chat_id: $ENV:TELEGRAM_CHAT_ID, bot_token: $ENV:TELEGRAM_BOT_TOKEN } } ], reports: [ { type: net_worth, schedule: 0 9,18 * * *, characters: [main, industry_alt], notify: { method: log, path: /var/log/eve/net_worth.log } } ] }5.2 关键配置技巧与安全实践使用环境变量保护敏感信息注意$ENV:VARIABLE_NAME的用法。永远不要将Discord Webhook URL、Telegram Bot Token等敏感信息直接写在JSON文件里。应该将它们设置为系统环境变量。例如export DISCORD_PI_WEBHOOKhttps://discord.com/api/webhooks/... export TELEGRAM_BOT_TOKEN123456:ABC-DEF1234ghIkl-zyx57W2v1u123ew11这样即使配置文件意外泄露你的关键令牌也是安全的。理解警报类型配置文件支持多种警报类型如skill_complete技能完成、industry_job_complete工业作业完成、killmail收到击杀邮件等。你需要根据自己实际开启的ESI权限范围来配置。例如如果你没有申请esi-characters.read_notifications.v1权限那么killmail警报就无法工作。合理设置报告周期schedule字段使用Cron表达式。0 9,18 * * *意味着在每天UTC时间的9点和18点各运行一次。请考虑ESI的请求频率限制大约30次/秒以及你角色的数量避免过于频繁的请求。配置验证在启用任何配置之前务必使用内置工具验证其正确性python3 scripts/validate_config.py ~/.openclaw/eve-dashboard-config.json这个脚本会检查JSON格式、必填字段、枚举值有效性等确保配置无误避免运行时出现奇怪的问题。5.3 与AI助手集成实现自动化流水线配置文件本身不会自动运行。你需要让你的AI助手如OpenClaw Agent去读取并执行它。这通常通过编写一个Agent的“工作流”或“技能”来实现该工作流定期例如每15分钟执行以下步骤加载配置读取并解析eve-dashboard-config.json。检查警报条件遍历alerts列表对每个警报调用对应的ESI查询技能如pi_status检查条件是否满足。生成报告根据schedule在指定时间触发reports中的任务生成报告内容。执行通知根据notify配置通过日志、Discord、Telegram等方式发送警报或报告。这个“驱动引擎”部分通常位于你的OpenClaw工作空间的自定义脚本中例如~/.openclaw/workspace/scripts/eve_dashboard_runner.py。burnshall-ui/openclaw-eve-skill项目提供了所有的“武器”数据查询技能而你需要构建一个“指挥官”调度脚本来指挥它们何时、如何开火。6. 高级技巧、问题排查与性能优化在长期使用中我积累了一些经验也踩过一些坑。这里分享出来希望能帮你更顺畅地使用这个工具。6.1 权限管理与Scope选择ESI的权限Scope是精细控制的。在开发者门户创建应用时不要一股脑全选。遵循“最小权限原则”只申请你真正需要的。这不仅更安全也能减少认证时用户的疑虑。基础监控esi-planets.manage_planets.v1,esi-assets.read_assets.v1,esi-wallet.read_character_wallet.v1。全面监控在上述基础上加上esi-skills.read_skillqueue.v1,esi-industry.read_character_jobs.v1,esi-characters.read_notifications.v1。安全导航需要esi-location.read_location.v1来获取实时位置。 如果你后续需要增加权限需要让用户重新授权。你可以修改scripts/auth_flow.py中的SCOPES列表然后让角色重新运行一次认证流程即可。6.2 应对ESI速率限制ESI对所有客户端有严格的速率限制每个X-ESI-Access-Token头约30请求/秒。本项目中的esi_query.py脚本已经内置了简单的速率控制和重试逻辑查看其源码中的_make_request函数。但在设计自动化工作流时你仍需注意避免高频轮询对于PI状态、位置信息设置5-15分钟的检查间隔是合理的。市场数据可以更频繁一些但也不要秒级查询。批量请求像market_price_bulk这种一次获取所有物品价格的请求比为你资产中的每个物品单独查询一次jita_price要高效得多。利用缓存对于变化不频繁的数据如星系名称、物品类型信息可以在本地建立缓存避免重复查询。6.3 可选Redis缓存加速市场查询项目提到了可选的Redis缓存这主要是针对PI产品市场价格的。因为PI产品种类相对固定几十种但价格查询又比较频繁。每次都用market_price_bulk拉取全宇宙几万种物品的价格只是为了其中几十个有点浪费。 你可以创建一个独立的脚本例如cache_market_prices.py定期每小时运行一次market_price_bulk然后将你关心的PI产品类型ID和价格存入Redis并设置1小时过期。这样你的PI监控脚本在计算产品价值或判断售价时可以直接从超快的Redis内存数据库中读取体验会流畅很多。# 示例思路非项目原装需自实现 import redis import esi_query r redis.Redis() pi_type_ids [2393, 2396, 2399, ...] # 你的PI产品类型ID列表 prices esi_query.get_market_prices_bulk() for type_id in pi_type_ids: if type_id in prices: r.setex(feve:market:price:{type_id}, 3600, prices[type_id][adjusted_price])6.4 常见问题与排查清单问题现象可能原因解决方案认证时浏览器提示“redirect_uri不匹配”开发者门户中应用的回调URL配置错误确保准确填写为http://127.0.0.1:8080/callback运行脚本提示Invalid token或403访问令牌已过期且刷新失败或申请的Scope权限不足1. 检查~/.openclaw/eve-tokens.json文件是否存在且权限正确(chmod 600)。2. 尝试重新运行认证流程 (auth_flow.py)。3. 确认当前操作所需的ESI权限已在应用Scope中勾选。pi_status返回空列表或错误角色可能没有PI殖民地或未申请esi-planets.manage_planets.v1权限1. 确认游戏内角色有已开发的星球。2. 在开发者门户为应用添加该权限并让角色重新授权。威胁评估数据不更新或为空zKillboard API临时不可用或网络问题导致ESI请求失败1. 检查脚本日志看是哪个数据源失败。2. zKillboard偶尔会限流或维护可考虑在脚本中增加重试或降级逻辑仅使用ESI数据。自动化脚本突然停止工作令牌文件损坏或ESI端点URL变更罕见1. 备份后删除eve-tokens.json重新认证。2. 关注EVE开发者博客ESI重大变更会提前通知。get_token.py --list不显示角色令牌文件路径错误或格式不对确认技能包和OpenClaw使用相同的~/.openclaw主目录。检查令牌文件是否为合法JSON。6.5 扩展思路超越开箱即用的功能这个技能包提供了坚实的基础组件。你可以基于它构建更复杂的应用跨角色资产聚合面板写一个脚本遍历你所有已认证的角色汇总他们的ISK、资产估值、技能点总数生成每日财富报告。工业计划监控结合esi-industry.read_character_jobs.v1权限监控制造、研究的进度在材料不足或作业完成时发出提醒。自动化的本地价格对比定期抓取吉他市场和某个任务枢纽如达坦尼伦的市场数据计算价差自动找出有利可图的搬运贸易机会。结合外部工具的增强导航将本技能包的威胁数据导入到像Dotlan或EVE-Gatecheck这样的第三方地图工具中实现可视化的危险区域标注。这个项目的魅力在于它像一套高质量的乐高积木。官方提供了最核心、最稳定的砖块ESI交互而你可以根据自己的想象力和需求搭建出独一无二的自动化城堡。它未必能直接让你在会战中取胜但一定能让你在EVE这个复杂宇宙的后勤与管理中享受到前所未有的从容与效率。

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