AI赋能Git提交:aicommit2自动化工具的原理、配置与工程实践

news2026/5/6 3:37:12
1. 项目概述一个让Git提交信息自动化的智能助手如果你和我一样每天要和Git打交道无数次那你肯定也经历过这样的场景敲完一堆代码准备提交时却对着那个空白的提交信息框发呆——“这次改了点啥来着” 是写“修复了一个bug”还是“优化了XX功能”写得详细点吧太费时间写得简单点吧过两周自己都看不懂。这种“提交信息焦虑”几乎是每个开发者的日常。今天要聊的这个项目tak-bro/aicommit2就是专门来治这个“病”的。简单来说它是一个命令行工具利用大语言模型LLM的能力自动为你生成清晰、规范、有上下文的Git提交信息。你不再需要手动敲git commit -m fix bug而是运行一条命令工具会自动分析你本次暂存区staged的代码变更理解这些改动的意图和影响然后生成一段像模像样的提交说明。这听起来可能像个小玩具但用好了它能显著提升团队协作效率和项目可维护性。想象一下项目历史记录里不再是满屏的“update”和“fix”而是“feat(auth): 增加JWT令牌自动刷新机制”或“fix(api): 修复用户列表接口在分页参数为空时的500错误”。这样的提交历史无论是回溯问题、生成变更日志还是新成员理解代码演进都友好太多了。aicommit2是原aicommit项目的延续和增强核心思路没变但在模型支持、配置灵活性和用户体验上做了不少改进。它不绑定任何特定的代码托管平台就是一个纯粹的本地Git钩子或命令行工具因此你可以把它用在任何Git仓库里。接下来我就结合自己深度使用和折腾的经验带你彻底拆解这个工具从原理、配置到高阶玩法让你也能轻松拥有一个“永不词穷”的提交助手。2. 核心原理与架构设计拆解2.1 工作流程从代码变更到智能描述aicommit2的核心工作流程非常清晰可以概括为“收集、分析、生成、提交”四个步骤。理解这个流程是后续一切配置和问题排查的基础。首先当你执行aicommit命令时工具做的第一件事是收集变更信息。它不会去扫描整个工作区而是精准地调用git diff --staged命令获取所有已暂存staged文件的差异内容。这一步很关键因为它尊重了Git的标准工作流——你通过git add精心挑选出本次想要提交的变更aicommit2就只分析这部分内容确保生成的描述与你意图提交的范围完全一致。接下来进入分析阶段。工具会将收集到的git diff输出结合一些上下文信息比如变更的文件路径、文件类型打包成一个结构化的提示词Prompt发送给配置好的大语言模型。这里的提示词工程是核心机密之一它大致会告诉模型“这里有一些代码改动请扮演资深开发者用约定式提交Conventional Commits的格式生成一段简洁专业的提交信息。需要说明改动的类型是新增功能feat、修复bug、文档更新还是其他、影响的范围模块名以及具体做了什么和为什么这么做。”然后就是生成阶段。模型接收到提示词后会基于其对代码和编程逻辑的理解生成一段自然语言描述。aicommit2会解析模型的返回结果将其格式化为标准的提交信息。最后是提交阶段。工具不会自动帮你执行git commit而是将生成的提交信息展示给你并询问是否确认使用。你确认后它才会执行git commit -m “生成的描述”。这个“二次确认”机制非常重要给了你最终审核和修改的机会避免模型“胡言乱语”导致提交信息出错。2.2 技术选型为什么是命令行工具LLM API这个项目的技术选型非常务实直接命中了开发者的痛点。选择命令行工具CLI形式确保了最大的兼容性和可集成性。无论是Windows的PowerShell、CMD还是macOS/Linux的Terminal、iTerm抑或是集成在VSCode、IntelliJ IDEA等编辑器的内置终端里它都能无缝运行。CLI工具也易于通过包管理器如npm, pip, brew安装和升级降低了使用门槛。核心的智能部分则完全依赖外部的大语言模型API。项目本身不包含、也不训练任何模型而是作为一个“调度器”和“格式化器”。这样做有几个巨大优势模型无关性你可以根据需求、预算和网络环境自由选择后端模型。无论是OpenAI的GPT系列、Anthropic的Claude还是国内可访问的智谱、DeepSeek等平台的模型只要它们提供兼容的API理论上都可以接入。轻量级工具本体非常轻量只负责流程控制和交互复杂的理解和生成任务交给云端强大的模型用户本地无需强大的GPU资源。持续进化模型的升级换代由AI服务商负责。今天你用GPT-3.5明天可以换成GPT-4生成的提交信息质量会随之提升而你使用的工具命令却无需改变。这种架构也决定了项目的核心配置就是模型API的配置。你需要告诉aicommit2使用哪个服务商、API密钥是什么、调用哪个模型端点。这将是接下来配置环节的重点。2.3 与Git的集成模式钩子与命令的权衡aicommit2提供了两种主要的使用方式适合不同的场景和习惯。第一种是作为Git提交钩子Hook使用。你可以将其配置为prepare-commit-msg钩子。这样每当你执行git commit命令即使不带-m参数时Git会自动触发aicommit2让它生成提交信息并填充到提交编辑器里。这种方式最“无感”完全融入了你的标准Git工作流适合希望全自动化的开发者。但缺点是你可能每次提交都想微调一下信息钩子模式可能会让你觉得流程被打断。注意我个人不太推荐新手一开始就用钩子模式。因为一旦钩子脚本有bug或模型API出错可能会导致你的git commit命令卡住或失败影响正常开发。建议先熟悉命令行模式。第二种也是我更推荐的是作为独立的命令行工具使用。即在你完成git add之后不直接运行git commit而是运行aicommit命令。工具生成描述并询问确认后再帮你完成提交。这种方式保留了完全的控制权你可以在生成后随意编辑信息或者干脆放弃生成的内容手动编写。它作为一个增强命令而非替代命令心理负担和出错风险都更小。项目也支持在命令中直接指定模型或参数实现临时覆盖全局配置灵活性很高。例如某次提交改动很大你可以临时指定使用更强大的模型aicommit --model gpt-4。3. 从零开始的详细配置与实操指南3.1 环境准备与安装首先你需要一个Node.js环境因为aicommit2是一个npm包。建议使用Node.js 16或以上版本。你可以通过node -v检查现有版本。安装过程极其简单使用npm全局安装即可npm install -g aicommit2安装完成后在终端输入aicommit --help如果能看到帮助信息说明安装成功。接下来是最关键的一步配置AI模型API。aicommit2需要知道如何调用AI服务。配置信息通常存储在你用户目录下的一个配置文件里例如~/.aicommit2rc或通过环境变量设置。我们以最常用的OpenAI API为例进行配置。你需要准备一个OpenAI API密钥。如果没有可以去OpenAI平台注册并获取。请注意使用API会产生费用虽然生成提交信息消耗的token很少但请妥善保管你的密钥并关注用量。配置可以通过命令交互式完成也可以手动创建配置文件。交互式配置更简单aicommit config setup运行后它会引导你选择AI服务商如OpenAI输入API密钥选择默认模型如gpt-3.5-turbo等。完成后配置会自动保存。如果你想手动配置或查看配置文件通常是一个JSON或YAML文件。一个最简化的OpenAI配置示例如下配置文件路径可能因系统而异{ apiProvider: openai, apiKey: 你的-sk-...密钥, model: gpt-3.5-turbo, locale: zh-CN // 可选指定生成中文提交信息 }实操心得关于模型选择对于生成提交信息这个任务gpt-3.5-turbo在绝大多数情况下已经足够好用、快速且成本极低。只有在代码变更极其复杂、涉及多个模块重构时才需要考虑使用gpt-4以获得更精准的分析。一开始用gpt-3.5-turbo是完全没问题的。3.2 首次运行与基础使用配置好API后就可以在你的任意Git仓库中尝试了。确保仓库已初始化并且你有一些已暂存的更改。暂存你的更改git add . # 暂存所有更改或使用 git add [具体文件] 暂存部分运行 aicommitaicommit工具会开始工作读取暂存区的diff调用AI API等待片刻后会在终端打印出它生成的提交信息。一个生成的示例可能如下[AI生成的提交信息] feat(user-service): 实现用户头像上传功能 - 新增 uploadAvatar API接口支持JPEG/PNG格式 - 添加文件大小校验最大5MB - 集成云存储服务上传后返回CDN链接 - 更新用户模型增加 avatarUrl 字段 是否使用此提交信息(Y/n):确认或编辑如果觉得生成的内容满意输入Y或直接回车工具就会执行git commit -m “...”。如果不满意输入n取消你可以选择手动提交或者调整暂存内容后再次运行aicommit。第一次运行可能会遇到的问题网络超时如果API服务器访问慢或网络不稳定可能会超时。可以尝试在配置中增加timeout参数单位毫秒或检查网络连接。API密钥错误确保密钥正确无误并且有足够的余额或配额。没有暂存的更改如果你没有运行git add就直接运行aicommit工具会友好地提示你“No staged changes found.”。3.3 高级配置与个性化定制基础功能用起来后你可以通过配置让它更贴合你的个人习惯和团队规范。1. 提交信息格式定制默认情况下aicommit2会倾向于生成“约定式提交”格式即类型(范围): 描述。你可以在配置文件中定制types: 定义允许的提交类型列表例如[feat, fix, docs, style, refactor, test, chore]。这可以防止模型生成你团队规范外的类型。maxLength: 限制生成描述的标题部分的最大长度保持简洁。language: 强制指定生成信息的语言如zh-CN中文或en英文。2. 模型参数调优你可以调整调用模型时的参数以平衡生成质量、速度和成本。temperature温度控制生成内容的随机性。值越低如0.1生成内容越确定、保守值越高如0.8越有创造性。对于提交信息这种需要准确性的任务建议设置在0.1-0.3之间。maxTokens最大令牌数限制模型返回内容的最大长度。生成提交信息通常不需要很长设置为150-200足够。一个更详细的高级配置示例{ apiProvider: openai, apiKey: 你的密钥, model: gpt-3.5-turbo, locale: zh-CN, commitTypes: [feat, fix, docs, style, refactor, perf, test, chore], temperature: 0.2, maxTokens: 200, timeout: 30000 }3. 使用其他AI服务商除了OpenAIaicommit2通常也支持其他兼容OpenAI API格式的服务商或者通过配置自定义API端点。例如如果你使用某国内服务配置可能类似{ apiProvider: custom, apiBaseUrl: https://api.xxx.com/v1, apiKey: 你的密钥, model: deepseek-coder }具体支持的服务商和配置项需要查阅项目最新的官方文档。注意事项切换不同服务商的模型时生成风格和质量可能有差异。建议先用一些小改动测试几次熟悉该模型的“文风”后再投入到重要工作中。4. 深入核心提示词工程与生成逻辑4.1 默认提示词解析aicommit2的“智能”很大程度上源于其精心设计的提示词Prompt。虽然我们看不到其确切的内部提示词但根据其生成结果和行为我们可以反向推导其核心逻辑。一个有效的提交信息生成提示词通常包含以下部分角色设定明确告诉模型“你是一个经验丰富的软件工程师”使其以专业视角分析代码。任务指令核心指令是“根据提供的git diff内容生成一条符合约定式提交规范的提交信息”。格式规范详细说明输出格式例如格式必须为type(scope): subject 空一行 body 空一行 footer其中type、scope、subject、body的填写规则都会给出。上下文注入将git diff --staged的输出作为主要上下文提供给模型。约束条件包括使用英语或中文、字数限制、避免使用模糊词汇如“更新了代码”等。理解这一点很重要因为当你发现生成结果不符合预期时可能是模型没有从diff中正确理解上下文也可能是提示词的某些约束导致了偏差。4.2 影响生成质量的关键因素生成提交信息的质量并非完全随机它受以下几个关键因素影响1. 代码变更的质量Diff的清晰度这是最重要的因素。如果你提交的是一大堆杂乱无章的改动比如同时修复bug、重构函数、又顺手改了格式模型很难提炼出一个清晰的主题。最佳实践是保持提交的原子性即一次提交只做一件事实现一个功能、修复一个bug。这样git diff的输出会非常聚焦模型也更容易生成准确的描述。2. 暂存区Staged Changes的选择aicommit2只分析暂存区的变更。这意味着你可以通过git add -p交互式暂存精心挑选出本次想要提交的代码块过滤掉调试语句、无关的格式修改等。提交的信息会因此变得更加精准。3. 模型的理解能力不同的模型对代码的理解深度不同。GPT-4通常比GPT-3.5更能理解复杂的逻辑变更和跨文件的影响。对于简单的修改3.5足够对于涉及架构调整的重构使用更强大的模型可能效果更好。4. 项目上下文模型在生成时只能看到你提供的diff片段看不到整个项目的代码库。因此对于一些高度依赖项目内部术语或特定领域逻辑的变更生成的信息可能不够“内行”。这是当前工具的局限性之一。4.3 如何引导模型生成更佳描述技巧虽然不能直接修改工具的提示词但我们可以通过“准备更好的输入”来间接引导模型。写好代码注释和命名如果你的代码本身有清晰的函数名、变量名和注释diff会包含这些信息模型能更好地理解你的意图。例如一个函数从process()改名为validateAndProcessUserInput()模型很容易看出这是在进行输入验证。提交前进行合理的拆分不要一次性提交所有改动。将功能新增、Bug修复、文档更新、代码格式化等不同类型的变更分开提交。分别对它们运行aicommit会得到更清晰、更专一的提交信息。利用交互式暂存git add -p这是高阶玩法。面对大量修改时使用git add -p可以一块一块地hunk选择要暂存的代码。你可以先暂存所有与“修复登录失败”相关的代码块运行aicommit生成“fix(login): 修复因密码加密盐值缺失导致的登录失败”提交后再暂存“更新登录页面文档”的代码块生成“docs(login-page): 更新密码强度要求说明”。这样历史记录会非常清晰。5. 集成到日常工作流与团队实践5.1 与IDE和编辑器的集成虽然aicommit2是命令行工具但可以很方便地集成到现代IDE中进一步提升流畅度。VS Code 集成打开VS Code的命令面板CtrlShiftP。输入 “Tasks: Configure Task”然后选择 “Create tasks.json file from template” - “Others”。在生成的tasks.json文件中添加一个任务{ label: AI Commit, type: shell, command: aicommit, presentation: { echo: false, reveal: always, focus: false, panel: shared }, problemMatcher: [] }你可以为这个任务绑定一个快捷键在keybindings.json中设置例如CtrlShiftC。这样在VS Code中暂存文件后按快捷键就能直接在集成终端里运行aicommit。IntelliJ IDEA / WebStorm 集成 这些IDE支持配置“外部工具”。你可以添加一个工具命令为aicommit并将其绑定到一个快捷键或添加到右键菜单。更简单的方法是直接使用IDE内置的终端窗口运行命令。5.2 团队规范与强制使用如果想让团队所有成员都使用一致的提交信息规范aicommit2可以成为一个很好的辅助工具但它不应该是强制约束的唯一手段。共享配置可以将一个优化好的.aicommit2rc配置文件放入项目根目录并加入版本控制。工具会优先使用项目内的配置。这样能统一团队使用的模型、语言和提交类型。结合提交信息校验钩子Commitlintaicommit2负责生成commitlint负责校验。你可以在commit-msg钩子中配置commitlint检查提交信息是否符合团队约定的格式无论它是手动写的还是AI生成的。这样形成了“AI生成 自动校验”的质量保障流水线。文化倡导而非强制向团队成员展示使用规范提交信息的好处如自动生成CHANGELOG、语义化版本号等并推荐使用aicommit2来降低遵守规范的成本。将其作为一个提升效率的“神器”来推广比作为一项硬性规定更容易被接受。5.3 在CI/CD流水线中的价值清晰规范的提交信息在自动化流程中能发挥巨大价值自动生成变更日志Changelog使用standard-version或semantic-release等工具可以自动分析符合约定式提交的历史记录生成美观的CHANGELOG.md文件。aicommit2确保了提交信息的可解析性。语义化版本SemVer自动升级上述工具可以根据提交信息的类型feat对应次版本号升级fix对应修订号升级自动决定下一个版本号并打上Git Tag。代码审查Code Review清晰的提交信息能让审查者快速理解本次提交的目的和范围提升审查效率。AI生成的描述通常比匆忙手写的要详细和规范。6. 常见问题、局限性与排查技巧6.1 常见错误与解决方案问题现象可能原因解决方案运行aicommit无反应或报错Command not found1. 未全局安装成功2. Node.js路径未加入系统PATH1. 重新运行npm install -g aicommit2注意权限有时需要sudo2. 检查Node.js安装或将npm全局包路径加入PATH提示No staged changes found没有使用git add暂存任何更改先运行git add [文件]或git add .暂存要提交的更改提示API Error: Invalid API KeyAPI密钥配置错误或已失效1. 检查配置文件中的apiKey是否正确注意不要有多余空格2. 登录对应AI平台确认密钥有效且有余额/配额提示API Error: Timeout或网络错误网络连接不稳定或API服务端响应慢1. 检查网络连接2. 在配置中增加timeout: 30000单位毫秒3. 如果使用海外API考虑网络环境问题生成的提交信息完全无关或胡言乱语1. 模型温度temperature设置过高2. 代码diff过于混乱或包含无关文件如大文件、二进制文件3. API返回内容被截断或出错1. 将temperature调低至0.1-0.32. 确保暂存的diff清晰、原子化避免提交package-lock.json等大文件或图片3. 检查API返回的原始信息可通过开启调试模式查看生成的信息是英文但我想要中文未配置语言或模型不支持中文在配置文件中设置locale: zh-CN。注意部分模型或服务商可能对中文支持不佳。6.2 工具的局限性认识到工具的局限性才能更好地利用它无法理解业务上下文模型只看到代码diff看不到产品需求文档、会议讨论或业务背景。因此对于“为什么做这个改动”的深层原因它无法生成。这部分仍需开发者在确认前手动补充到提交信息的正文body中。对“重构”类型识别可能不准区分refactor重构不改变外部行为和fix修复bug或perf性能优化有时很微妙。模型可能会误判需要人工纠正。依赖网络和API服务这是一个需要联网的工具。在无网络环境或AI服务不可用时无法使用。同时使用第三方API存在数据隐私考量尽管只发送了代码diff但对于高度敏感的项目需评估风险。成本因素虽然单次调用成本极低几分甚至几厘钱但日积月累也是一笔小开销。团队使用需要考虑预算。6.3 我的使用心得与最佳实践经过一段时间的深度使用我总结出几条能让aicommit2发挥最大效能的经验1. 把它当作“初稿撰写助手”而非“最终决策者”永远不要盲目接受AI生成的第一次结果。把它看作一个帮你打草稿的实习生。它生成的标题和要点通常能覆盖80%的内容你需要做的是快速审核、修正不准确的用词特别是类型和范围并在正文部分补充关键的业务上下文或设计决策。这个过程通常比自己从头写要快得多。2. 培养“原子提交”的习惯这是用好任何提交信息工具包括AI的前提。一次提交只做一件事。这不仅让aicommit2的分析更准确也让你的Git历史变得极其清晰便于二分查找、回滚和代码审查。善用git add -p是你的好帮手。3. 建立团队配置模板在团队内部创建一个标准的.aicommit2rc模板定义好统一的提交类型列表、语言和模型如果统一使用某个付费API。这能确保大家生成的提交信息风格一致。可以将这个文件放在项目模板或内部工具仓库中。4. 复杂提交分而治之面对一个大型功能开发分支在合并到主分支前不要直接用git merge产生一个巨大的合并提交。而是先通过git rebase -i交互式变基将分支上的多个小提交整理成逻辑清晰的序列然后对每个提交逐一使用aicommit通过git commit --amend结合aicommit的方式来优化信息。这样主分支的历史会非常干净。5. 定期审查与优化每隔一段时间和团队一起回顾一下Git历史。看看AI生成的提交信息是否真的达到了“一看即懂”的效果。根据发现的问题可以微调本地的提示词配置如果工具支持自定义提示词或者调整团队写代码的习惯比如鼓励更清晰的函数命名和注释从源头提升生成质量。最后工具终究是工具。tak-bro/aicommit2的价值在于它移除了“编写规范提交信息”这个动作中的机械性、重复性的思考负担让我们开发者能更专注于代码逻辑和业务价值本身。它不会让你变成一个更优秀的工程师但它能让你优秀的工作成果以更专业、更清晰的方式被记录下来。从这个角度看花一点时间配置和适应它是一笔非常划算的投资。

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