AI代码工程化实战:从生成到部署的确定性框架

news2026/5/13 8:55:29
1. 项目概述从“AI画饼”到“AI交付”的工程化桥梁如果你和我一样在过去一年里深度使用过 Claude Code、Cursor 或者 GitHub Copilot那你一定经历过这种场景AI 助手噼里啪啦生成了一大堆看起来非常酷炫的代码你兴奋地跑起来Demo 完美运行。然后呢当你试图把它集成到现有项目或者准备部署上线时噩梦开始了。接口定义悄悄变了、Mock 数据忘了替换、依赖项冲突、测试覆盖率不足…… 原本以为能节省几天的工作量结果花在调试和返工上的时间反而更多。MIT 和 SP Global 的报告不是危言耸听高达 95% 的 AI 编码试点项目无法进入生产环境根本原因在于缺乏工程纪律。sgharlow/ai-control-framework就是为了解决这个痛点而生的。它不是一个代码生成工具而是一套工程约束框架。你可以把它理解为给“才华横溢但散漫不羁”的 AI 程序员配了一个严格的“技术主管”和一套“质量检查清单”。它的核心目标非常明确将 AI 生成代码的“可演示性”转化为“可部署性”。通过一系列自动化的检查、约束和评分机制它确保每一次与 AI 的协作会话产出的代码都是坚实、可靠、随时可以上线的。我花了几天时间深入研究和实践了这个框架它彻底改变了我使用 AI 编码的方式——从“碰运气”变成了“有把握”。2. 框架核心设计哲学用确定性对抗幻觉在深入脚本和配置之前理解这个框架背后的设计哲学至关重要。它不信任“感觉”只相信“证据”。其设计建立在几个对 AI 编码缺陷的深刻观察上并针对性地构建了防御机制。2.1 契约冻结锁定接口杜绝“静默变更”这是框架最核心、也是最有效的机制。AI 助手在迭代过程中为了“优化”代码常常会不经意地修改函数签名、API 接口或数据结构。昨天还能正常调用的getUser(id: string)今天可能就变成了fetchUser(uid: string)。这种“静默变更”是项目腐化和集成失败的主要原因。框架的解决方案是“契约冻结”。在会话开始时你可以指定关键文件如openapi.yaml,schema.graphql,interface.ts作为“契约”。框架会计算并存储这些文件的 SHA256 哈希值。在会话中的任何时刻只要运行检查脚本它都会重新计算哈希并与存储值对比。实操心得不要只冻结最顶层的 API 定义。我建议将项目核心的领域模型接口、数据库实体类、以及跨模块的通信协议如事件类型定义都纳入契约管理。这相当于为项目的核心骨架做了“石膏固定”AI 可以在肌肉业务逻辑上自由发挥但绝不会伤及骨骼。2.2 30分钟Mock超时倒逼真实集成AI 非常擅长生成 Mock 数据和桩函数Stub来快速搭建原型。但问题在于开发者容易沉溺于这种快速成型的假象迟迟不进行真实的集成。detect-mocks.sh脚本会扫描代码中常见的 Mock 模式如jest.mock,sinon.stub, 硬编码的mockData数组等。框架强制规定Mock 仅允许用于最初 30 分钟的探索期。超时后若仍检测到 Mock检查将失败并强制要求替换为真实的服务调用或数据源。这个看似“不近人情”的规则实际上是在培养一种健康的开发节奏快速验证想法然后立即转向生产就绪的实现。2.3 会话范围限制对抗“范围蔓延”你有没有过这种经历本来只想让 AI 修个 Bug结果它“热情地”开始重构整个模块引入了不必要的复杂性。范围蔓延Scope Creep是导致返工率居高不下的元凶。框架通过check-scope.sh强制执行两个硬性限制单次会话最多修改 5 个文件这迫使你和 AI 必须聚焦。如果想修改更多文件必须先交付Deploy当前会话的成果再开启一个新会话。单次会话最多新增/修改 200 行代码防止过度设计。鼓励小步快跑、持续集成的开发模式。这两个限制迫使开发者和 AI 在开始前就必须明确本次会话的精确目标极大地提升了注意力的集中度和任务的可完成性。2.4 部署就绪评分从主观判断到客观度量“这代码能上线了吗” 这个问题通常引发团队讨论和不确定性。DRS 框架引入了DRS一个从 0 到 100 的客观评分。它由 13 个维度的检查项综合计算得出包括契约完整性、安全验证、数据完整性、测试通过率、架构稳定性等。85分是“部署线”。达到或超过这个分数框架会明确告诉你“Ship it”。这消除了团队间的犹豫和争论将部署决策从一个主观的、政治性的讨论转变为一个客观的、数据驱动的指令。3. 实战部署与集成指南理论再好不如亲手配置一遍。下面是我在真实 TypeScript 项目中集成此框架的完整过程包含了你可能会遇到的所有细节。3.1 环境初始化与项目集成框架的安装不是简单地克隆仓库而是将一套治理结构“注入”到你的现有项目中。# 1. 克隆框架仓库到本地临时目录 git clone https://github.com/sgharlow/ai-control-framework.git /tmp/ai-cf cd /tmp/ai-cf # 2. 执行安装脚本指向你的目标项目根目录 # 假设你的项目路径是 /home/user/my-ts-app ./install.sh /home/user/my-ts-app这个install.sh脚本做了以下几件关键事情在你的项目根目录创建ai-framework/文件夹包含所有脚本、模板和规范。生成一个项目特定的CLAUDE.md文件这是你与 AI 助手尤其是 Claude Code交互的“宪法”文件。在项目根目录创建framework-integration-test.sh用于验证框架是否正确集成。不会覆盖你现有的任何项目文件。注意事项安装后务必第一时间阅读生成的CLAUDE.md。它定义了 AI 助手在你项目中的“行为准则”包括必须遵守的规范、每次会话必须执行的命令、以及如何报告状态。这是框架生效的前提。3.2 关键配置文件详解安装完成后你的项目结构会新增如下内容。理解每个文件的作用是灵活运用框架的关键。my-ts-app/ ├── CLAUDE.md # 【核心】AI 代理操作手册 ├── ai-framework/ │ ├── specs/ # 12份详细规范文档 │ │ ├── contract-freezing.md │ │ ├── mock-timeout.md │ │ └── drs-calculation.md # DRS 13个组件的评分细则 │ ├── reference/ │ │ ├── bash/ # Linux/macOS 脚本 │ │ │ ├── check-contracts.sh │ │ │ ├── detect-mocks.sh │ │ │ ├── check-scope.sh │ │ │ └── drs-calculate.sh # 主评分脚本 │ │ └── powershell/ # Windows 脚本功能对等 │ ├── templates/ │ │ ├── code.md # 会话状态跟踪模板 │ │ └── contract-change-approval.md # 契约变更申请模板 │ └── prompts.md # 20个即用型提示词用于引导AI └── framework-integration-test.sh # 集成测试脚本你需要重点关注和定制的两个文件CLAUDE.md这是你项目的“AI 宪法”。每次开始新的 AI 编码会话时你必须将这份文件的内容提供给 AI 助手例如粘贴到 Claude Code 的对话中。它明确告知 AI“我们正在使用 AI Control Framework。”“在开始任何实质性工作前必须先运行./ai-framework/scripts/can-i-continue.sh。”“所有代码变更必须遵守契约冻结、Mock 超时、范围限制三大纪律。”“会话结束时必须运行./ai-framework/scripts/drs-calculate.sh并报告 DRS 分数。”ai-framework/scripts/下的配置文件你可以根据项目实际情况调整约束的严格度。打开check-scope.sh你可以修改MAX_FILES和MAX_LINES。对于大型重构我有时会临时调整为 8 个文件和 500 行但完成后会立即改回默认值。打开detect-mocks.shMOCK_TIMEOUT默认是 30 分钟。对于极其复杂的外部服务集成你可以酌情延长至 45 或 60 分钟但原则是尽可能短。3.3 与 Claude Code 的深度集成MCP 服务器框架 v2.0 最大的亮点是提供了MCP 服务器。MCP 允许 Claude Code 直接“看见”和“操作”你的项目文件系统。# 进入 MCP 服务器目录 cd ai-framework-mcp-server # 安装依赖这是一个 Node.js 项目 npm install # 启动 MCP 服务器 node server.js启动后你需要在 Claude Code 的设置中配置 MCP。之后AI 助手就能自动读取CLAUDE.md和框架状态文件无需你手动粘贴。在后台自动运行can-i-continue.sh、check-scope.sh等脚本并在对话中直接向你报告结果“契约检查通过”、“当前修改了3个文件在限制范围内”。在生成代码后自动建议运行 DRS 评分并提供分数解读。这极大地简化了工作流将框架从“需要主动遵守的纪律”变成了“无缝嵌入的环境”。4. 完整工作流演示开发一个用户查询API让我们通过一个真实场景看看框架如何贯穿一次完整的开发会话。目标是在一个现有的 Express.js 后端项目中添加一个根据邮箱前缀模糊查询用户的功能。第零步会话初始化打开 Claude Code将CLAUDE.md的内容发送给它。AI 回复“已理解并加载 AI Control Framework 规则。正在执行初始检查...”AI 自动运行或提示你运行./ai-framework/scripts/can-i-continue.sh。脚本检查无进行中的会话、契约文件哈希已记录、项目状态干净。输出“✅ 可以开始新会话。”第一步明确契约与范围我告诉 AI“我们需要修改src/models/user.ts中的User接口增加一个查询方法。并修改src/routes/users.ts添加新的 API 端点。请先确认涉及的契约文件。”AI 分析后回复“识别到可能涉及的契约文件src/models/user.ts接口定义和src/routes/users.ts路由契约。本次会话将修改2个文件在5个文件的限制内。请确认是否冻结这些文件的当前状态”我运行./ai-framework/scripts/freeze-contracts.sh src/models/user.ts src/routes/users.ts。框架记录下这两个文件的哈希。第二步AI 生成代码与 MockAI 快速生成了user.ts中的findUsersByEmailPrefix方法以及users.ts中的新路由/users/search?emailPrefixxxx。为了让我快速测试AI 在路由处理程序中暂时使用了硬编码的 Mock 用户数组。此时30分钟 Mock 倒计时开始。第三步中期检查与 Mock 替换大约20分钟后我运行./ai-framework/scripts/detect-mocks.sh。输出“⚠ 检测到1处Mock数据位于src/routes/users.ts:45。剩余时间10分钟。”我指示 AI“Mock 数据即将超时请将其替换为对真实数据库我们使用 Prisma的调用。”AI 将const mockUsers [...]替换为const users await prisma.user.findMany({ where: { email: { startsWith: emailPrefix } } })并处理了错误和空结果。再次运行detect-mocks.sh输出“✅ 未检测到 Mock 数据。”第四步会话收尾与 DRS 评分功能完成后我运行./ai-framework/scripts/check-scope.sh。输出“✅ 范围检查通过。修改文件2个。新增代码行约85行。”运行./ai-framework/scripts/check-contracts.sh。输出“✅ 所有契约文件哈希匹配。”最后运行核心评分./ai-framework/scripts/drs-calculate.sh。$ ./ai-framework/scripts/drs-calculate.sh ═══════════════════════════════════════════════ DEPLOYABILITY READINESS SCORE ═══════════════════════════════════════════════ OVERALL SCORE: 88/100 ═══════════════════════════════════════════════ ✓ Contract Integrity (8/8) - 接口定义未发生漂移。 ✓ Behavioral Contracts (8/8) - 函数签名与调用约定一致。 ✓ Security Validation (18/18) - 输入已校验无SQL注入风险。 ✓ Data Integrity (10/10) - 数据库查询使用了参数化。 ✓ No Mocks (8/8) - 代码中无Mock数据或桩函数。 ✓ Tests Passing (7/7) - 相关单元测试已通过。 ✓ Integration Evidence (10/10) - 调用了真实的Prisma客户端。 ✓ Architecture Stability (7/7) - 符合项目分层架构。 ⚠ Production Readiness (12/15) - 缺少对新API端点的集成测试。 ✓ Context Preservation (8/8) - 代码变更意图清晰。 ═══════════════════════════════════════════════ RECOMMENDATION: DEPLOY ═══════════════════════════════════════════════ DRS ≥ 85。此代码已具备生产部署条件。 建议补充集成测试后分数可达93。第五步交付或迭代DRS 分数为 88超过了 85 的部署线。我可以选择立即部署将当前更改合并到主分支。小幅优化根据报告建议花15分钟补上一个集成测试将“生产就绪度”分数提满让 DRS 达到 93 分然后部署。无论哪种选择我都获得了明确的、数据支持的信心而不是猜测。5. 深入DRS13个维度的生产就绪度检查DRS 分数不是魔法而是对13个关键质量维度的系统性评估。理解每一项你就能知道如何有针对性地提升代码质量。维度权重检查内容典型扣分项与修复指南契约完整性8分关键接口、Schema文件是否被意外更改。哈希不匹配。运行approve-contract-change.sh提交变更申请或回滚更改。行为契约8分函数/方法的输入输出约定是否一致。函数返回值类型改变、参数顺序调整。需审查并更新所有调用方。安全验证18分安全检查如输入消毒、权限校验、依赖漏洞。使用了已废弃的、有漏洞的NPM包通过npm audit检测。需升级依赖。数据完整性10分数据操作是否安全如SQL参数化、事务处理。发现字符串拼接的SQL查询。需改为参数化查询或使用ORM的安全方法。无Mock数据8分代码中是否存在用于测试的模拟数据或桩函数。检测到jest.fn()、sinon.stub或硬编码数组。需替换为真实实现。测试通过率7分相关测试是否全部通过。新增代码导致现有测试失败或未为新功能添加测试。需修复或补充测试。集成证据10分是否调用了真实的外部服务、数据库或API。代码仍指向本地模拟服务URL如http://localhost:8080/mock-api。需替换为生产环境配置。架构稳定性7分变更是否符合项目既定架构模式。在控制器层直接写了复杂的业务逻辑违反了“服务层”分离原则。需重构。生产就绪度15分日志、监控、配置、健康检查等非功能需求。新增API缺少请求日志、错误未妥善处理、没有超时设置。需补充生产级代码。上下文保存8分代码变更是否易于理解有无清晰注释。新增了复杂算法但没有注释或文档。需补充必要的解释。性能影响5分变更是否可能引入性能瓶颈基础检查。新增了未加索引的数据库全表扫描查询。需评估并添加索引。依赖影响5分是否引入了新的、未经审查的第三方依赖。package.json中新增了不熟悉的库。需评估其必要性、许可和维护性。配置管理5分敏感信息是否硬编码配置是否环境隔离。在代码中发现了硬编码的API密钥或数据库密码。需移至环境变量或配置中心。实操心得不要追求一次拿到100分。85分是“安全部署线”意味着核心功能正确且风险可控。我的策略是在开发功能时先瞄准达到85分并部署然后在后续的“优化迭代”会话中针对DRS报告中的扣分项尤其是高权重的安全、数据完整性项进行专项改进逐步将分数提高到95。这符合敏捷开发中“尽早交付、持续改进”的原则。6. 常见问题与故障排查实录在实际使用中你肯定会遇到一些报错和疑惑。以下是我踩过坑后总结的解决方案。问题一运行can-i-continue.sh失败提示“发现未完成的会话文件”。原因上一次会话异常中断比如IDE崩溃没有正确运行HANDOFF命令来清理会话状态。解决手动删除ai-framework/.session/目录下的session_in_progress.lock文件如果存在。然后检查该目录下是否有以时间戳命名的日志文件可以帮你回顾上次中断时的状态。问题二check-contracts.sh报“契约哈希不匹配”但我确认接口是故意要改的。原因框架的设计原则是“任何契约变更都必须被显式记录和批准”以防止意外更改。正确流程不要直接修改契约文件。运行./ai-framework/scripts/approve-contract-change.sh 文件路径。脚本会打开一个模板要求你填写变更理由、影响分析哪些模块会受影响和回滚计划。填写完毕后脚本会计算新的哈希并更新记录同时将你的变更理由保存为审计日志。这个过程虽然多了一步但强制进行了必要的设计思考避免了后续的集成灾难。问题三drs-calculate.sh给出的分数极低50但我觉得代码没问题。排查步骤仔细阅读输出DRS 报告会详细列出每个扣分项。找到权重最高的扣分项通常是安全验证、数据完整性。典型案例我曾因为使用了一个axios的旧版本存在低危漏洞导致“安全验证”项被扣了15分。运行npm audit fix升级后分数立刻上去了。检查“无Mock数据”项确认你是否在不知不觉中留下了__mocks__目录下的文件或者测试用例中的mockResolvedValue被脚本误判了。你可以临时调整detect-mocks.sh中的正则表达式规则来适应你的项目模式。问题四在 Windows PowerShell 下某些 Bash 脚本命令不兼容。解决框架已充分考虑跨平台。请务必使用ai-framework/reference/powershell/目录下的 PowerShell 脚本如Check-Contracts.ps1,Calculate-DRS.ps1它们的功能与 Bash 版本完全对等。不要尝试在 PowerShell 中直接运行.sh文件。问题五如何将 DRS 检查集成到团队的 CI/CD 流水线核心思路将 DRS 分数作为合并请求Pull Request的门禁。GitHub Actions 示例name: AI Control Framework Gate on: [pull_request] jobs: drs-check: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Install Dependencies (if any) run: npm ci # 或 pip install, go mod tidy 等 - name: Run DRS Calculation id: drs run: | # 运行评分脚本并提取分数数值 SCORE$(./ai-framework/scripts/drs-calculate.sh | grep -oP OVERALL SCORE: \K\d) echo DRS_SCORE$SCORE $GITHUB_OUTPUT # 判断是否低于阈值例如70分 if [ $SCORE -lt 70 ]; then echo ❌ DRS score ($SCORE) is below the required threshold (70). exit 1 else echo ✅ DRS score ($SCORE) meets the requirement. fi这样任何 DRS 分数低于 70 分的代码都无法合并到主分支从流程上保障了代码库的整体可部署质量。7. 进阶技巧与团队协作实践使用框架一段时间后我总结出一些能极大提升效率的进阶方法。技巧一创建项目特定的“提示词启动包”ai-framework/prompts.md提供了通用提示词。你可以在此基础上创建你项目独有的my-project-prompts.md。例如“为我们基于 Next.js 的 App Router 项目添加一个服务端组件”“遵循我们团队的 Redux Toolkit 最佳实践创建一个新的 Slice”“在现有的 Prisma Schema 中添加一个新模型并生成对应的 CRUD 接口”这些定制化提示词能确保 AI 从一开始就走在正确的技术栈和模式上减少返工。技巧二利用“会话状态模板”进行知识接力ai-framework/templates/code.md是一个会话状态记录文件。在每次会话结束时除了运行HANDOFF我习惯性地在这个模板中快速记录本次会话实现的核心功能。做出的关键设计决策及其原因。遇到的坑和解决方案。留给下一个会话或未来的自己的待办事项。 当下次需要继续相关工作时把这个文件丢给 AI它能瞬间理解上下文无缝衔接极大减少了“我上次做到哪了”的认知负荷。技巧三在团队中推行“DRS 分数文化”个人使用框架已经能带来巨大收益但在团队中推广能产生网络效应。设立团队基线例如规定所有主干分支的合并请求必须附上 DRS 分数且不低于 80 分。代码审查结合 DRS在 Review 代码时不仅看逻辑也看 DRS 报告中的扣分项将其作为审查清单。可视化与激励可以考虑将每日/每周的 DRS 平均分通过简单的脚本统计出来贴在团队频道。看到分数随着时间推移稳步上升是一种非常直观的工程质量提升的正反馈。技巧四处理框架本身不直接支持的语言或框架框架的检查脚本主要是面向 JavaScript/TypeScript 和通用软件工程原则的。如果你在用 Go、Rust、Java 或者特定的框架如 Flutter可能需要微调。Mock 检测修改detect-mocks.sh中的正则表达式以识别你所用语言的 Mock 模式例如 Go 的gomock Java 的Mockito。契约定义对于强类型语言契约文件可能就是关键的接口.go中的interface或协议缓冲区文件.proto。确保将它们加入契约冻结列表。测试检查调整脚本使其能正确调用你项目的测试命令如go test ./...,cargo test,flutter test。这个框架提供的是一套方法论和可扩展的基座。根据你的技术栈进行适当适配能让它发挥出百分之两百的威力。它的价值不在于那几十个 Bash 脚本而在于它强制引入的这套关于“确定性”、“纪律”和“质量度量”的工程思维。这恰恰是当前狂热但混乱的 AI 辅助编程领域最需要的一剂清醒剂。

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