基于Claude API的GitHub Action实现AI代码审查自动化

news2026/5/9 5:47:57
1. 项目概述与核心价值最近在折腾AI辅助编程工具链发现了一个挺有意思的开源项目SohelMalekk/claude-code-action。这名字乍一看有点摸不着头脑但如果你和我一样日常重度依赖Cursor、Claude Code或者各类AI代码助手并且希望将它们的代码审查、重构建议能力无缝集成到你的GitHub工作流里那这个项目绝对值得你花时间研究一下。简单来说它是一个基于Anthropic Claude API特别是强大的Claude 3 Opus模型构建的GitHub Action能够在你提交Pull RequestPR或者推送代码时自动对变更的代码进行深度分析和评论提供堪比资深工程师的代码审查意见。为什么说它有价值在团队协作中代码审查是保证质量的关键环节但人力审查总有瓶颈耗时、可能因疲劳而遗漏细节、标准难以绝对统一。而这个Action将Claude Opus这种顶级代码理解模型引入CI/CD流水线相当于给每个PR配备了一个不知疲倦、知识渊博的“AI审查员”。它不仅能检查语法错误更能理解代码意图、识别潜在的设计缺陷、安全漏洞、性能问题甚至能根据团队约定提出代码风格改进建议。对于个人开发者或小团队它弥补了缺乏专职审查人员的短板对于大团队它能将人类审查者的精力解放出来聚焦于更高层次的架构和业务逻辑讨论。2. 核心架构与技术栈解析要玩转这个项目得先搞清楚它的“五脏六腑”。它不是一个简单的脚本而是一个设计相对完整的、容器化的GitHub Action应用。2.1 技术栈构成与选型理由项目主要依赖于以下几项技术每一环的选择都有其考量核心AI引擎Anthropic Claude API为什么是Claude而不是其他模型如OpenAI GPT这是项目的根本定位。Claude 3 Opus模型在代码理解、长上下文处理和指令遵循方面表现出了极强的能力尤其在需要深度推理的代码审查场景下其输出的分析往往更结构化、更切中要害。项目直接使用了anthropic-claude官方SDK进行交互保证了稳定性和兼容性。运行时与环境管理Docker Docker Compose项目通过Dockerfile定义了一个独立的运行环境。这是构建可靠GitHub Action的最佳实践。Docker化确保了无论Action在GitHub的哪个RunnerUbuntu、Windows等上执行其内部依赖Python版本、系统库、Python包都是一致且可控的彻底避免了“在我机器上能跑”的环境问题。docker-compose.yml文件的存在则极大方便了本地开发和测试。你不需要在本地系统全局安装各种依赖只需一个docker-compose up命令就能在本地复现Action的完整运行环境进行调试和验证。现代Python工具链UV这是一个值得关注的亮点。项目使用uv作为Python包管理器和运行器。uv由AstralRuff的创建者开发用Rust编写其依赖解析和安装速度远超传统的pip和pip-tools。在CI/CD环境中时间就是金钱使用uv能显著缩短Action的启动时间提升整体流水线效率。这体现了项目维护者对开发者体验和效率的追求。开发与集成环境Cursor项目关键词中包含cursor这暗示了维护者很可能使用Cursor IDE进行开发。Cursor以其深度集成的AI编程助手而闻名这个项目本身也是服务于AI辅助编程生态的用Cursor来开发它可谓“用魔法打造魔法”形成了一个有趣的闭环。辅助工具Statuslinestatusline可能指的是某种状态栏工具或相关配置用于在开发过程中监控系统或应用状态。这在复杂的本地开发调试中能提供便利。2.2 项目目录结构推测与工作流尽管正文描述为“None”但根据其作为GitHub Action项目的通用模式和技术栈我们可以合理推断其核心目录和文件结构claude-code-action/ ├── .github/ │ └── workflows/ # GitHub Actions 工作流定义文件 │ └── claude-review.yml # 主工作流触发代码审查 ├── action.yml # Action的元数据文件定义输入/输出 ├── Dockerfile # 构建Action运行环境的镜像 ├── docker-compose.yml # 本地开发与测试的编排文件 ├── requirements.txt │ └── 或 pyproject.toml # Python依赖声明由uv管理 ├── src/ # 主要源代码目录 │ ├── main.py # Action的入口点脚本 │ ├── claude_client.py # 封装与Claude API交互的客户端 │ ├── diff_parser.py # 解析Git Diff提取变更代码 │ └── comment_poster.py # 将分析结果发布为PR评论 ├── tests/ # 单元测试和集成测试 └── README.md # 项目说明、使用指南其工作流程可以概括为触发当有PR创建或更新时.github/workflows中定义的工作流被触发。准备GitHub Runner拉取代码并根据action.yml或工作流指示启动由Dockerfile构建的容器。执行容器内uv快速安装依赖并执行src/main.py。处理主脚本 a. 通过GitHub Actions提供的环境变量如GITHUB_TOKEN,GITHUB_SHA获取当前PR的上下文和代码差异。 b. 调用diff_parser.py解析差异聚焦于实际变更的文件和代码行。 c. 将变更代码、PR描述、可能的自定义指令组装成Prompt通过claude_client.py调用Claude Opus API。 d. 接收Claude返回的详细审查报告。反馈comment_poster.py将报告以Markdown格式发布到该PR的评论区域完成AI审查。3. 本地开发环境搭建与深度配置想要贡献代码或者仅仅是想在本地模拟运行、测试效果搭建环境是第一步。这里会详细拆解每一步并分享如何高效配置。3.1 基础环境准备首先确保你的本地机器已经安装了必要的基石软件Docker 与 Docker Compose这是项目的运行基础。建议安装Docker Desktop它通常包含了docker命令行工具和docker-compose。安装后在终端运行docker --version和docker-compose --version确认安装成功。Git用于克隆项目代码。sudo apt-get install git(Linux) 或从官网下载安装包。可选但推荐UV虽然Action容器内会使用UV但在宿主机安装UV能让你的本地开发如运行脚本、格式化更快捷。可以通过curl -LsSf https://astral.sh/uv/install.sh | sh一键安装。注意在Windows系统上使用Docker建议启用WSL2后端能获得更好的性能和文件系统兼容性。确保在Docker Desktop设置中完成相关配置。3.2 项目初始化与依赖安装# 1. 克隆项目代码 git clone https://github.com/SohelMalekk/claude-code-action.git cd claude-code-action # 2. 使用Docker Compose构建并启动开发环境 docker-compose up --build这个命令会执行以下关键操作读取docker-compose.yml构建在Dockerfile中定义的镜像。Dockerfile里很可能包含了从Python官方镜像开始使用uv复制并安装pyproject.toml或requirements.txt中依赖的步骤。将本地代码目录挂载到容器内的/app或类似的工作路径实现代码实时同步。可能以docker-compose run或直接启动一个服务的方式让你进入容器内的交互式环境。3.3 关键配置详解环境变量与密钥管理项目的核心配置几乎必然通过环境变量完成尤其是敏感的API密钥。你需要重点关注以下几个ANTHROPIC_API_KEY这是与Claude API通信的凭证。绝对不要将它硬编码在代码中或提交到Git仓库。获取方式前往Anthropic Console创建API Key。本地配置方式在项目根目录创建.env文件确保该文件已被添加到.gitignore中内容如下ANTHROPIC_API_KEYyour_actual_api_key_here修改docker-compose.yml确保服务能读取这个.env文件services: app: build: . env_file: - .env # 加载.env文件中的变量 volumes: - .:/app working_dir: /app # ... 其他配置GITHUB_TOKEN (模拟)在本地测试时你需要模拟GitHub Actions提供的令牌用于访问GitHub API来获取PR差异和发布评论。你不能使用真实的个人访问令牌PAT来模拟所有权限但可以创建一个具有repo范围权限的PAT进行有限测试。在GitHub Settings - Developer settings - Personal access tokens (classic) 中创建。同样将其添加到.env文件GITHUB_TOKENghp_your_token_here。重要安全提示这个令牌权限很高务必妥善保管.env文件绝不外泄。模型与参数配置可能通过如CLAUDE_MODEL(默认值claude-3-opus-20240229)、MAX_TOKENS、TEMPERATURE等环境变量来控制AI行为。你可以在.env文件中覆盖它们以适应本地测试例如使用claude-3-haiku-20240307以更低成本进行快速功能测试。3.4 本地测试与调试技巧环境跑起来后如何验证它是否工作进入容器内部在docker-compose up之后另开一个终端执行docker-compose exec app bash假设服务名是app你就进入了容器内部的工作目录。运行单元测试如果项目有tests/目录使用uv run pytest或python -m pytest来运行测试确保核心逻辑如diff解析正确。模拟GitHub上下文进行端到端测试这是最复杂的部分。你需要模拟一个PR事件。可以创建一个测试脚本例如scripts/test_local.py在这个脚本中设置上述环境变量。模拟GITHUB_EVENT_PATHGitHub Actions会将触发事件的信息保存为一个JSON文件。你可以从真实项目的一个测试PR中下载event.json通过Actions日志找到Pull request事件的下载链接或根据 GitHub Webhook 事件格式 自己构造一个简化的版本包含仓库、PR号、commit SHA等信息。在脚本中调用项目的主入口函数并传入模拟的事件数据。观察输出看它是否能正确调用Claude API并生成预期的评论内容。实操心得本地端到端测试成本较高因为涉及真实API调用和费用。一个高效的策略是使用“录制与回放”模式。首先在严格控制下例如针对一个很小的、已知的代码变更进行一次真实运行并使用像pytest-vcr或responses这样的库将HTTP请求特别是对Claude API和GitHub API的调用及响应录制下来保存为“磁带”cassette文件。后续的本地测试就使用这些录制的数据实现零成本、离线、可重复的测试。这能极大提升开发调试效率。4. 集成到GitHub工作流的实战指南将claude-code-action部署到你自己的仓库才是其价值的最终体现。下面是一步一步的配置详解。4.1 创建并配置工作流文件在你的目标Git仓库中创建文件.github/workflows/claude-review.yml。name: Claude Code Review on: pull_request: types: [opened, synchronize, reopened] # 在PR创建、更新推送新commit、重新打开时触发 branches: [ main, master, develop ] # 指定哪些目标分支的PR需要审查 # 设置必要的权限允许Action在PR上添加评论 permissions: contents: read pull-requests: write # 这是关键权限允许写评论 jobs: claude-review: runs-on: ubuntu-latest # 可以设置条件例如仅当PR来自非管理员、或文件变更超过一定行数时才运行以节省资源 # if: github.event.pull_request.user.login ! repo-admin-username steps: - name: Checkout repository code uses: actions/checkoutv4 with: fetch-depth: 0 # 获取完整历史确保diff计算准确 - name: Run Claude Code Review uses: SohelMalekk/claude-code-actionv1 # 使用发布的稳定版本标签如v1, main代表最新提交 with: # Action的输入参数需参考该项目的action.yml定义 github-token: ${{ secrets.GITHUB_TOKEN }} # GitHub自动提供的令牌具有当前工作流的权限 anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} # 你的Claude API密钥存储在仓库Secret中 # 以下为可选参数用于定制审查行为 model: claude-3-opus-20240229 # 指定模型 max-tokens: 4000 # 限制回复长度 temperature: 0.2 # 较低的温度使输出更确定、更专注 review-instructions: | # 自定义指令引导Claude的审查重点 请以资深工程师的身份审查此代码变更。 重点关注 1. 逻辑正确性与边界条件。 2. 潜在的性能瓶颈与内存泄漏如适用。 3. 代码风格是否符合项目规范我们使用Black格式化类型提示优先。 4. 安全性问题如SQL注入、XSS等。 5. 提出具体的、可操作的改进建议。 请将反馈分为“关键问题”、“改进建议”和“风格提示”三个部分。 exclude-patterns: *.md, *.json, *.lock # 忽略非代码文件的变更4.2 关键参数解析与安全配置github-token: 这里使用的是secrets.GITHUB_TOKEN这是GitHub Actions在每个工作流运行时自动生成的临时令牌。它的权限由工作流文件顶层的permissions设置决定。我们设置了pull-requests: write这足以让它发布评论。无需也不应该在此处使用你的个人PAT。anthropic-api-key: 这是最敏感的信息。必须将其存储在仓库的Settings - Secrets and variables - Actions中命名为ANTHROPIC_API_KEY。在工作流中通过${{ secrets.ANTHROPIC_API_KEY }}引用。这样密钥永远不会出现在代码或日志中。review-instructions: 这是发挥AI审查威力的关键。通过精心设计的指令Prompt Engineering你可以让Claude的审查更贴合你的团队需求。例如指定角色“你是一个专注于Python后端和系统设计的首席架构师。”明确范围“只审查src/目录下.py文件的变更忽略测试文件和配置文件。”定义输出格式“请用表格列出发现的问题包含文件路径、行号、问题类型Bug/优化/风格、严重程度高/中/低、具体描述和建议修改。”融入团队规范“检查函数命名是否遵循小写蛇形命名法类名是否为大写驼峰。所有公开API必须包含Google风格的docstring。”触发策略优化on: pull_request的配置可以更精细。types: [opened, synchronize]是最常见的每次新提交都会触发审查。你可以添加paths-ignore来忽略某些文件的变更例如文档或配置文件避免不必要的AI调用on: pull_request: paths-ignore: - docs/** - **.md - **.yml - **.yaml对于大型仓库频繁的推送可能导致大量API调用。可以考虑使用pull_request_target事件结合concurrency控制或者只在特定标签如needs-review的PR上运行。4.3 高级用法矩阵策略与审查总结一个更高级的用法是针对不同类型的代码变更使用不同的审查策略。这可以通过策略矩阵Matrix Strategy实现。jobs: claude-multi-review: runs-on: ubuntu-latest strategy: matrix: review-profile: [security, performance, maintainability] steps: - uses: actions/checkoutv4 - name: Run ${{ matrix.review-profile }} Review uses: SohelMalekk/claude-code-actionmain with: github-token: ${{ secrets.GITHUB_TOKEN }} anthropic-api-key: ${{ secrets.ANTHROPIC_API_KEY }} review-instructions: | 你是一个专注于代码${{ matrix.review-profile }}的专家。 # 根据profile动态改变指令核心 ${{ matrix.review-profile security 请严格检查此代码变更中所有可能的安全漏洞注入、敏感信息泄露、不安全的反序列化、权限绕过等。 }} ${{ matrix.review-profile performance 请分析此代码变更对性能的影响时间复杂度、空间复杂度、是否存在冗余计算、循环优化、数据库查询效率等。 }} ${{ matrix.review-profile maintainability 请评估此代码变更的可维护性模块化程度、函数复杂度、注释清晰度、重复代码、依赖清晰度等。 }} 请提供详细的、分点的分析。这样一个PR会并行触发三个侧重点不同的AI审查分别从安全、性能、可维护性角度提供深度反馈审查维度更加全面。5. 成本控制、性能优化与避坑指南将强大的Claude Opus接入CI/CD成本和性能是无法回避的问题。以下是一些实战中总结的经验。5.1 成本估算与控制策略Claude API按Token计费输入输出Opus模型价格不菲。无节制使用可能导致账单爆炸。估算单次审查成本假设一个PR变更了200行代码约4000字符可粗略估计为1000-1500个Token。你的review-instructions约500 Token。Claude返回的评论约1000 Token。单次请求总Token数 ≈ 1500 (输入) 1000 (输出) 2500 Token。按Anthropic定价请以官网最新为准Opus模型每百万Token输入$15输出$75。单次成本 ≈ (1500/1,000,000)$15 (1000/1,000,000)$75 $0.0225 $0.075 $0.0975。一个活跃的开发团队每天产生20个PR月成本约为 20 * 30 * $0.0975 ≈$58.5。这在很多团队是可接受的但需心中有数。核心控制策略设置Usage Limits在Anthropic控制台为API Key设置每月使用限额和预警。精细化触发使用paths-ignore忽略非代码文件使用if条件跳过某些贡献者如机器人或小修改github.event.pull_request.additions 50。降级模型对于非关键分支如feature分支或小型PR可以在Action输入中指定使用更便宜的模型如claude-3-haiku。Haiku速度极快成本仅为Opus的很小一部分对于基础语法和风格检查足够用。缓存与去重如果PR只是更新了注释或README代码逻辑未变理论上不需要重新审查。可以在Action逻辑中实现简单的Diff哈希比对如果与上次成功审查的Diff哈希一致则跳过本次AI调用。5.2 性能优化与稳定性保障超时与重试网络或API服务可能不稳定。务必在Action步骤或代码中设置合理的超时如120秒和指数退避重试机制特别是对Claude API的调用。- name: Run Claude Review uses: SohelMalekk/claude-code-actionmain timeout-minutes: 5 # 为整个步骤设置超时 with: # ... 其他参数在代码中使用tenacity或backoff库装饰API调用函数实现自动重试。处理大Diff如果一个PR变更了数千行代码可能会超出Claude的上下文窗口Opus目前是200K Token但成本激增。必须在Action中实现“分片”逻辑解析Diff按文件或模块分组。如果总变更超过预设阈值例如5000行则优先选择核心业务逻辑文件进行审查或自动将任务标记为“需要人工审查”并给出提示评论。也可以将大Diff分成多个请求但要注意维护评论的连贯性。Runner资源确保GitHub Actions Runner有足够的内存。复杂的代码分析和AI请求处理可能需要较多内存使用runs-on: ubuntu-latest通常提供的标准Runner是足够的但如果处理超大型项目考虑使用runs-on: [self-hosted, large]自定义大内存Runner。5.3 常见问题与排查实录即使配置正确在实际运行中也可能遇到各种问题。下面是一个快速排查指南问题现象可能原因排查步骤与解决方案Action运行失败日志显示“Failed to create comment”1.GITHUB_TOKEN权限不足。2. PR来自Fork的仓库且未启用相应权限。1. 检查工作流中permissions:是否包含pull-requests: write。2. 对于Fork的PR默认的GITHUB_TOKEN是只读的。需要在仓库Settings - Actions - General中找到“Workflow permissions”勾选“Read and write permissions”。同时在Pull Request触发的工作流中需要额外配置permissions为write。这是一个安全特性。Action成功运行但未在PR下看到评论1. Claude API返回了空内容或格式错误。2. 评论可能被折叠或发布到了不显眼的位置。1. 查看Action运行的详细日志检查Claude API的响应内容。可能是API密钥无效、额度用尽或Prompt导致模型拒绝了请求。2. 确保评论发布逻辑正确使用的是GitHub API的“创建PR评论”接口并且关联到了正确的commit SHA。审查评论质量不高流于表面1.review-instructions指令过于笼统。2. 提供给模型的代码上下文不足。1. 细化你的审查指令。明确角色、焦点、输出格式。参考上文的高级指令示例。2. 考虑在Prompt中附带相关文件的更多上下文例如变更函数被调用的上下游代码帮助模型更好地理解。但这会增加Token消耗需权衡。Action运行时间过长超时失败1. PR Diff过大处理耗时。2. Claude API响应慢或网络延迟。1. 实现Diff分片或行数过滤逻辑跳过超大变更。2. 增加步骤的timeout-minutes。考虑使用更快的模型如Haiku进行初步过滤。本地测试正常线上Action报错1. 环境变量未正确设置为Secret。2. 容器内外的文件路径差异。3. GitHub Runner环境与本地Docker环境存在细微差异。1. 双重检查secrets.ANTHROPIC_API_KEY在仓库Settings中是否已正确设置。2. 检查Action代码中所有文件读写路径是否使用了绝对路径或相对于容器内工作目录的路径。3. 在Action日志中增加调试信息对比与本地运行的差异。我个人在实际集成中的体会是启动初期一定要设置好预算警报并从一个小型、活跃的内部项目开始试点。观察AI评论的质量收集团队反馈不断迭代你的review-instructions。它不是要取代人类审查者而是一个强大的辅助。最理想的状态是AI负责抓出那些显而易见的bug、风格问题和常见漏洞而人类审查者则可以更专注于架构合理性、业务逻辑正确性和更深层次的设计模式讨论。这个项目提供了一个绝佳的起点让你能以较低的成本将顶尖的AI代码理解能力嵌入到团队的日常开发流程中潜移默化地提升整个代码库的质量与一致性。

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