dojo.md:从提示词工程到技能工程,打造稳定可靠的AI智能体

news2026/5/14 1:39:54
1. 项目概述为什么你的AI助手在演示时很聪明一上线就“翻车”你有没有过这样的经历精心调教了一个AI助手让它帮你写邮件、处理客服问题或者生成广告文案在测试环境里它对答如流表现堪称完美。你满怀信心地把它部署到生产环境结果没过多久用户的抱怨就来了——“这AI写的邮件太生硬了一看就是模板”、“客服回答完全没解决我的问题”、“广告文案根本不符合我们品牌调性”。问题出在哪不是模型不够聪明而是它缺乏特定领域的、经过验证的、可复用的专业知识。这就是dojo.md要解决的核心痛点。它不是一个简单的提示词优化工具而是一个AI智能体的“训练道场”。想象一下你是一位武术教练你的学员AI模型空有一身蛮力强大的基础能力但不懂具体的招式领域规则和实战技巧场景应对。dojo.md的作用就是通过一套精心设计的“课程”和“实战演练”让AI在反复的“挨打”失败和“复盘”学习中将零散的知识点内化成肌肉记忆般的技能。它的工作流程非常直观你选定一个技能领域比如“撰写B2B冷启动邮件”dojo.md会加载对应的训练课程。课程包含数十个由易到难的场景ScenarioAI需要在每个场景中完成特定任务。一个独立的“裁判”LLM Judge会对它的表现进行打分。如果分数不达标dojo.md会分析失败模式将学到的教训总结成一份结构化的SKILL.md文件然后把这个文件作为新的知识注入给AI让它进入下一轮训练。如此循环直到AI在该技能上的表现达到你设定的目标分数比如90分。最终这份凝聚了实战经验的SKILL.md会被永久保存以后每当AI处理相关任务时都会自动加载这份“武功秘籍”确保表现稳定可靠。最妙的是整个过程不需要微调模型不修改任何权重纯粹是通过上下文学习In-Context Learning进行知识蒸馏。这意味着成本极低、速度极快并且生成的技能是跨模型、可移植的。无论是 Claude、GPT 还是 DeepSeek它们都能通过各自的训练获得专属于自己模型特性和弱点的、最优的SKILL.md。2. 核心设计思路从“提示词工程”到“技能工程”的范式转变传统的AI应用开发严重依赖“提示词工程”Prompt Engineering。开发者需要绞尽脑汁编写冗长、复杂的提示词Prompt试图在单次交互中告诉AI所有规则。这种方式有几个致命缺陷脆弱性提示词容易被后续对话干扰或覆盖稳定性差。低效性复杂的规则很难通过一次描述就让AI完全掌握尤其是那些“只可意会”的行业潜规则。不可复用为特定任务编写的提示词很难系统化地迁移到其他类似任务或模型中。dojo.md倡导的是一种“技能工程”Skill Engineering的新范式。其核心设计思想可以拆解为以下几个层面2.1 基于场景的课程化学习dojo.md将一项技能如“处理Stripe退款”拆解成一系列具体的、有上下文的情境Scenario。每个Scenario都是一个YAML文件定义了初始状态State、触发事件Trigger和评判标准Assertions。这模拟了真实的工作流程让AI在接近实战的环境中学习而不是背诵抽象的规则列表。例如在stripe-refunds课程中一个Scenario可能模拟“用户因重复扣款申请退款”的场景。State里定义了用户信息、扣款记录Trigger是用户的请求Assertions则要求AI必须依次调用“查询用户”、“查询扣款”、“创建退款”等工具并在最后用恰当的语言向用户确认。这种设计迫使AI学习完整的操作链条和沟通话术。2.2 LLM-as-Judge 与自动化评估闭环让谁来评判AI做得好不好dojo.md巧妙地使用了另一个LLM作为“裁判”Judge。这个Judge模型会根据Scenario中预定义的、细化的评判标准Criteria给AI的表现打分。评判标准可以非常具体比如“邮件主题行不超过50字符”、“避免使用全部大写”、“在正文第三段插入个性化钩子”等。这就形成了一个自动化评估闭环AI执行 - Judge评分 - 分析失败 - 生成改进知识SKILL.md - 再次执行。这个循环可以全自动运行--target参数直到达到目标分数。它解决了人工评估效率低下、标准不一的问题让AI的迭代学习变得可量化、可追踪。2.3 知识蒸馏与渐进式披露训练的核心产出物是SKILL.md。这不是一个简单的提示词合集而是一个遵循 AgentSkills 开放标准的、结构化的技能文档。它的精妙之处在于“渐进式披露”Progressive Disclosure描述Description约100个token用于技能匹配和触发。只有当用户的任务意图匹配描述时才会加载整个技能。完整技能约5000个token包含领域知识、核心规则、决策树、边界案例和反模式。这样做的好处是极大的节省了上下文窗口。在不需要该技能时它几乎不占位置一旦需要所有精炼过的知识瞬间可用。这比把一个巨大的、包含所有可能规则的提示词常年挂在上下文中要高效得多。2.4 模型特异性与技能移植性dojo.md承认不同模型有不同“性格”和弱点。Claude可能过于正式GPT-4可能过于啰嗦DeepSeek可能忽略细节。因此它为同一个技能课程会为不同模型生成不同的SKILL.md文件。这些文件存储在类似.claude/skills/xxx/或.openai/skills/xxx/的路径下里面记录的是该模型特有的失败模式和纠正方案。但同时技能本身课程场景、评判标准又是模型无关的。这意味着你可以用一套课程去训练任何支持的模型生成的技能文件格式统一便于管理和移植。这为实现“一次编写课程处处训练模型”的愿景打下了基础。3. 实战上手零成本与全功能两种路径详解了解了核心思想我们来看看如何实际使用dojo.md。根据你的使用场景和预算主要有两条路径零成本的MCP集成模式和功能完整的CLI命令行模式。3.1 零成本模式在Claude Code或Cursor中直接开练如果你已经是 Claude Code或类似支持 MCP 的 IDE 如 Cursor、Windsurf的用户那么恭喜你这是体验dojo.md威力最便捷、成本最低的方式。你的订阅费用已经覆盖了训练和评判所需的计算资源。原理你将dojo.md配置为一个 MCPModel Context Protocol服务器。这样你的AI编程助手如Claude就能直接调用dojo.md提供的工具指挥自己进行训练、提交答案、查看结果。整个过程都在你的IDE会话中完成无需额外支付API费用。配置步骤安装与配置MCP服务器在你的IDE的MCP配置文件中例如对于Claude Code是~/.config/claude/desktop_config.json添加以下配置{ mcpServers: { dojo: { command: npx, args: [dojo.md, mcp] } } }保存并重启你的IDE。这相当于给你的AI助手安装了一个“训练师插件”。开始训练在IDE的聊天框中直接对你的AI助手下指令。例如请使用dojo工具在“自动巡航”模式下训练你自己掌握“cold-email-b2b”技能循环训练直到分数达到90分。AI助手会理解你的指令调用dojo_train工具并进入自动化训练循环。你可以在聊天窗口实时看到每一轮的得分和进展就像文章开头展示的那个例子一样。技能应用训练完成后生成的SKILL.md会自动保存在你项目目录下的.claude/skills/中。以后当你在同一项目中让AI“写一封开发冷启动邮件”时它会自动加载这个技能文件输出质量将直接提升到训练后的水平。实操心得在MCP模式下建议先从简单的技能开始比如cold-email-b2b或stripe-refunds。观察AI自我训练的过程非常有趣你能清晰看到它是如何从“不及格”一步步分析错误、吸收规则、最终“毕业”的。这本身也是对AI工作原理的一次生动教学。3.2 CLI命令行模式灵活调用任意模型如果你需要更灵活的控制比如使用特定的模型如GPT-4o、Gemini、指定裁判模型或者进行模型对战Arena那么CLI模式是你的不二之选。这需要你拥有 OpenRouter 的API密钥因为dojo.mdCLI 通过 OpenRouter 来统一调用数百个不同的模型。环境准备安装确保系统已安装 Node.js然后全局安装dojo.md。npm install -g dojo.md配置API密钥前往 OpenRouter 注册并获取API Key然后在终端中设置环境变量。export OPENROUTER_API_KEY你的sk-or-...密钥 # 对于Windows PowerShell用户 $env:OPENROUTER_API_KEY你的sk-or-...密钥注意事项OpenRouter 的计费是按Token消耗的不同模型价格不同。训练一个技能约5轮循环的成本通常在0.5到5美元之间具体取决于课程复杂度和所用模型。在开始大规模训练前建议先用--level 1参数只运行第一级场景估算一下成本。核心命令实战基础训练训练一个特定模型掌握某项技能。# 训练 DeepSeek 掌握谷歌广告文案撰写目标85分 dojo train ad-copy-google-ads --model deepseek/deepseek-v3.2 --target 85这个命令会启动自动化循环。dojo.md会使用默认的裁判通常是claude-sonnet-4-6因其评判能力较强且性价比高来为 DeepSeek 的表现打分直到达到85分或达到最大重试次数默认5次。高级训练你可以精确控制训练过程中的每一个环节。# 用 GPT-5.2 作为学员Claude Opus 作为严厉的裁判训练“事件响应”技能 dojo train incident-response --model openai/gpt-5.2 --judge claude-opus-4.6 --target 90 --max-retrain 10这里我们指定了更强大的 Opus 作为裁判以提高评判标准的质量。同时将最大重试次数提高到10次给模型更多学习机会。一键重训如果你之前训练过但想刷新技能或者想用默认设置快速运行。dojo retrain stripe-refunds这等价于dojo train stripe-refunds --target 90 --max-retrain 5是一个快速开始的捷径。探索课程在开始之前先看看有什么可学的。dojo list这会列出所有内置的125门课程。如果你有特殊需求还可以用dojo generate命令通过描述来生成一门定制课程。4. 核心功能深度解析竞技场与技能标准除了训练dojo.md还有两个极具价值的核心功能竞技场Arena用于模型基准测试以及生成的SKILL.md 开放标准确保了技能的生态互操作性。4.1 竞技场模式不再是笼统的跑分而是针对性的能力对决传统的模型评测如MMLU、HellaSwag测的是通用能力。但当你需要为一个具体的生产任务比如“写谷歌广告文案”选型时这些通用分数参考价值有限。dojo.md的 Arena 模式就是为了解决这个问题而生。运行一次竞技场测试dojo arena ad-copy-google-ads --level 3这个命令会选取当前平台上表现最好的5个模型或通过--models指定让它们在“谷歌广告文案撰写”课程的第三级难度场景下同台竞技。关键点在于相同场景所有模型面对完全一样的场景描述和初始状态保证了公平性。相同裁判使用同一个LLM Judge默认是claude-opus-4-6进行评分消除了评判标准波动。纯净环境竞技场中不会注入任何SKILL.md测试的是模型的“原始天赋”和指令遵循能力。输出的结果是一个清晰的排行榜带有分数和进度条。文章中提到“Above 70, every point gets exponentially harder”这非常像国际象棋的ELO等级分系统。70分可能意味着“基本合格”80分是“良好”90分以上就是“专家”级别了。几分之差在实际生产中的表现可能就是天壤之别。应用场景技术选型你的创业公司需要做一个自动客服机器人在预算有限的情况下是选性价比高的 DeepSeek还是能力更均衡的 Claude Sonnet跑一个customer-support-escalation的竞技场看谁在真实场景下得分高。版本对比GPT-4.5 发布了它比 GPT-4o 在“技术RFC写作”上强多少用technical-rfc-writing课程测一下数据说话。能力摸底你想知道某个模型在“法律合同审查”上的短板在哪里为后续定制化训练提供方向。4.2 SKILL.md 标准技能生态的基石dojo.md生成的技能文件遵循统一的SKILL.md标准这是它与 AgentSkills 生态以及 OpenClaw 等工具无缝协作的基础。理解这个文件的结构有助于你更好地理解和定制技能。一个典型的SKILL.md结构如下--- name: stripe-refunds description: - 正确处理Stripe退款请求。当处理退款、重复扣款或客户争议时使用此技能。 --- ## 领域知识 *从训练课程中提炼的非显而易见的见解* - Stripe退款到账通常需要5-10个工作日取决于发卡行。 - 部分退款时必须明确告知用户原始订单的剩余金额状态。 - 对于“未认领”的退款需要引导用户检查银行账户或联系发卡行。 ## 快速开始 *最常见的错误及纠正方法* - **错误**直接创建退款未验证客户和扣款信息。 - **正确做法**始终先调用 stripe_customers_retrieve 和 stripe_charges_retrieve 进行验证。 ## 核心规则 *自由度校准的指令必须做/分步做/优先做* - **必须**在创建退款前100%确认扣款状态为 succeeded。 - **分步** 1. 确认客户身份和扣款记录。 2. 判断退款原因重复扣款、服务未提供、客户争议。 3. 调用 stripe_refunds_create。 4. 向客户提供退款ID和预计到账时间线。 - **优先**使用温和、共情的语气即使客户有误解。 ## 决策树 *if/then分支逻辑* - **如果** 客户声称重复扣款 - **那么** 查询该客户近期所有成功扣款记录。 - **如果** 扣款状态为 pending - **那么** 告知客户款项尚未最终扣取建议等待或联系银行取消预授权。 - **如果** 扣款已超过180天 - **那么** 告知用户已超过标准退款窗口建议其直接联系Stripe支持。 ## 边界案例 *每一个陷阱及其正确处理方法* - **案例**客户要求退款至与原支付不同的银行卡。 - **处理**解释Stripe退款只能原路返回。如需退至其他账户需先原路退款再由客户进行新的支付。 - **案例**退款创建成功但API返回 status: failed。 - **处理**告知用户退款请求已提交但被银行拒绝建议其联系发卡行了解详情。 ## 反模式 *不要做X。相反应该做Y。* - **不要** 说“你的退款已经处理了”而要说“你的退款请求已成功提交退款ID是re_123abc”。 - **不要** 忽略提供时间线而要明确说明“通常需要5-10个工作日显示在您的对账单上”。 - **不要** 在未确认前承诺全额退款而要说明“我们将为您核实这笔扣款”。这份文档的价值在于结构化信息分门别类易于AI理解和人类查阅。可操作提供了具体的步骤、条件和话术而非模糊的原则。源于实践每一条规则都来自训练中真实的失败场景是经过“血与火”检验的精华。轻量触发顶部的description字段是技能加载的“触发器”精准匹配任务意图避免了不必要的上下文污染。5. 从使用到贡献自定义课程与高级技巧内置的125门课程覆盖了广泛领域但真正的力量在于你能为自己独特的业务需求创建定制化课程。5.1 创建你自己的训练课程假设你是一家SaaS公司你的客服AI需要处理一种非常具体的“企业版降级咨询”场景。你可以用一句描述来生成课程骨架dojo generate Handle enterprise plan downgrade inquiries, including contract review, data migration implications, and final billing adjustment.dojo.md会利用LLM生成一个包含多个场景的课程目录。但自动生成的场景往往比较泛泛你需要深入编辑YAML场景文件使其贴合你的真实业务逻辑。编辑一个场景文件 (scenarios/enterprise-downgrade/level-1-simple-inquiry.yaml)meta: id: simple-downgrade-request level: 1 course: enterprise-downgrade description: Customer requests to downgrade from Enterprise to Pro plan before contract renewal. type: conversation # 可以是 conversation对话、tool工具调用、code代码等 state: customer: name: Alex Chen company: TechStart Inc. current_plan: enterprise contract_end_date: 2024-12-31 monthly_billing: 5000 subscription_data: user_seats: 50 storage_used_gb: 245 custom_sso_enabled: true trigger: Hi, this is Alex from TechStart. Our current Enterprise plan is a bit too costly for next year. Were considering downgrading to the Pro plan before our contract renews at the end of December. Can you guide us through the process and let us know what changes we should expect? assertions: - type: llm_judge criteria: The agent MUST first acknowledge the request and express understanding. It MUST then inquire about the exact timing for the downgrade (effective date). It MUST mention that custom SSO will be disabled upon downgrade. It MUST explain that the Pro plan has a 100GB storage limit, and ask how they plan to handle the excess 145GB. It MUST clarify that the per-seat cost will change, and offer to calculate the new monthly quote. The tone must be helpful and consultative, not transactional. description: Covers key business points and consultative tone在这个场景中我们定义了客户的初始状态企业版用户用量情况设定了触发对话并通过assertions中的llm_judge设定了非常详细的评判标准。AI的回答必须触及所有关键业务点SSO关闭、存储超限、重新计价并且语气要符合“咨询式”销售的要求。实操心得编写高质量的场景Scenario是课程效果好坏的关键。我的经验是从真实工单/对话记录开始这是最宝贵的素材能确保场景接地气。评判标准Criteria要具体、可衡量避免“回答要好”这种模糊要求而是像上面的例子一样列出必须包含的要点和必须避免的坑。利用type: api_called断言对于需要调用工具或API的场景这是确保AI操作流程正确的利器。它能精确检查是否调用了正确的函数、参数是否正确。循序渐进设置关卡Level 1 设置简单、标准的场景。Level 2 引入复杂情况如客户同时要求数据导出。Level 3 设置刁难或模糊的请求如“我不想付钱了直接给我降级”训练AI的边界处理能力。5.2 高级配置与成本优化对于团队或高频使用者以下技巧可以提升效率和降低成本本地化部署课程将你创建或修改的课程文件夹放在~/.dojo/courses/目录下dojo.md会自动加载它们方便版本管理和团队共享。使用更经济的Judge模型在CLI模式中Judge的Token消耗也是一笔成本。对于要求不是极端严苛的训练可以使用--judge claude-haiku-4.6或--judge google/gemini-2.0-flash这类更快更便宜的模型通常能节省30%-50%的评判成本而对最终技能质量影响不大。设定合理的--target和--max-retrain不是所有技能都需要追求95分。对于内部使用的文档起草80分可能就够了。将--target设为80--max-retrain设为3可以更快地完成训练降低成本。你可以通过dojo results命令查看历史训练记录分析分数曲线找到性价比最高的“拐点”。技能文件的版本管理生成的SKILL.md是纯文本文件非常适合用 Git 进行版本管理。你可以看到技能随着业务规则变化或模型迭代而更新的全过程。建议将.claude/skills/或.openai/skills/目录纳入版本库。5.3 与现有工作流集成dojo.md生成的技能其价值在于被使用。除了在Claude Code中自动加载你还可以集成到自定义AI应用你的Python或Node.js后端AI应用可以在处理特定任务前读取对应的SKILL.md文件并将其作为系统提示System Prompt的一部分注入瞬间提升模型在该任务上的表现。用于提示词库的维护将SKILL.md中的“核心规则”和“反模式”部分提炼成你内部提示词库的标准化条款确保不同开发者写的提示词都遵循同一套高质量标准。作为新员工培训材料一份优秀的SKILL.md本身就是一份清晰的标准作业程序SOP。它不仅可以训练AI也可以用来培训新人客服、销售或运营告诉他们处理某类问题的正确流程和话术。6. 常见问题与故障排查实录在实际使用中你可能会遇到一些典型问题。以下是我在深度使用过程中总结的排查清单问题现象可能原因解决方案MCP模式下AI助手找不到dojo工具1. MCP配置未生效。2. IDE未重启。3.npx命令不存在或网络问题。1. 检查配置文件路径和格式是否正确。2. 完全关闭IDE并重启。3. 在终端运行npx dojo.md mcp看是否能正常启动服务器。确保网络通畅。CLI训练时卡住或报错“API Error”1. OpenRouter API密钥未设置或错误。2. 账户余额不足。3. 请求的模型暂时不可用或超时。1. 运行echo $OPENROUTER_API_KEY检查密钥。确保在同一个终端会话中设置。2. 登录OpenRouter检查余额和用量。3. 尝试更换模型如从gpt-4o换到claude-sonnet-4-6或稍后重试。OpenRouter仪表板有各模型状态。训练分数始终很低无法达到目标1. 课程场景设计不合理评判标准Criteria模糊或矛盾。2. 目标分数--target设置过高。3. 所选Agent模型能力不足以完成该任务。1. 使用dojo train course --level 1 --report生成详细报告查看AI具体失败在哪条断言上。修改场景YAML文件使Criteria更清晰、可执行。2. 对于复杂任务先将目标设为70或75看看模型能学到什么。3. 在Arena中测试不同模型在该课程上的原始能力选择一个基础分更高的模型作为学员。生成的SKILL.md文件内容空洞或重复1. 训练循环次数--max-retrain太少模型尚未提炼出有效模式。2. 场景多样性不足AI没有遇到足够的失败案例来学习。3. Judge模型评判不够严格或准确。1. 增加--max-retrain到8或10。2. 为课程添加更多、更具挑战性的场景Level 2, Level 3。3. 更换更强大的Judge模型如--judge claude-opus-4.6。Opus在复杂逻辑判断上更可靠。技能应用时感觉没效果1.SKILL.md的description字段与用户请求匹配度不高。2. AI助手如Claude的上下文加载机制未正确触发。3. 技能文件未放在正确的路径下。1. 检查SKILL.md的description是否准确概括了技能用途。可以稍作修改使其更容易被匹配。2. 查阅你的AI助手文档确认其加载本地技能的具体规则和触发条件。3. 确认SKILL.md文件位于正确的模型子目录下如.claude/skills/course-name/。Arena模式结果中所有模型分数都很接近且偏低1. 课程难度过高或评判标准Criteria过于严苛超出了当前模型的能力范围。2. 使用的Judge模型本身不擅长评判此类任务。1. 简化Level 1的场景确保有一个模型能达到70分以上以建立基准。2. 尝试更换Judge模型。对于创意写作类任务claude-sonnet可能比claude-opus更合适对于逻辑性任务则相反。一个真实的踩坑案例我曾训练一个模型处理“数据导出请求”。初期分数卡在65分上不去。查看报告发现AI总是在“确认导出格式”这一步丢分。我原本的评判标准是“必须询问用户希望的导出格式CSV/JSON”。但AI有时会问“您需要什么格式”有时会问“您希望导出为CSV还是JSON”。Judge模型Haiku认为后者更具体而给高分前者模糊而给低分导致学习不稳定。解决方案我将Criteria修改为“必须明确提供‘CSV’和‘JSON’作为选项供用户选择”。这样一来评判标准变得绝对明确AI迅速学会了固定话术分数在下一轮就跃升到了85分。这个案例给我的教训是LLM Judge虽然强大但它也需要清晰、无歧义的指令。你的评判标准越像给机器看的代码训练过程就越稳定高效。避免使用需要人类主观判断的描述多使用“必须包含X关键词”、“必须按顺序执行A、B、C步骤”这样的客观断言。

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