Midscene.js用视觉AI重新定义跨平台自动化测试的3种范式革命【免费下载链接】midsceneAI-powered, vision-driven UI automation for every platform.项目地址: https://gitcode.com/GitHub_Trending/mid/midscene在传统自动化测试的世界里开发者们常常陷入一个困境要么编写繁琐的CSS选择器要么维护脆弱的XPath表达式。当UI发生变化时整个测试脚本需要重写当应用扩展到移动端时又需要学习全新的工具链。这种割裂的体验让自动化测试成为开发团队的心头之痛。Midscene.js的出现彻底改变了这一局面。这个开源项目通过视觉语言模型驱动为Web、Android、iOS乃至任何界面提供了统一的AI操作能力。它不只是一个测试框架而是一个完整的跨平台自动化生态系统让开发者用自然语言描述目标让AI完成剩下的工作。范式一从代码驱动到意图驱动的转变传统自动化 vs Midscene.js的AI驱动传统自动化测试依赖于精确的元素定位器// 传统方式依赖DOM结构 await page.click(button[data-testidlogin-btn]); await page.fill(input[nameusername], testuser); await page.waitForSelector(.success-message);Midscene.js采用意图驱动的AI操作// Midscene方式使用自然语言描述 await agent.aiTap(红色背景的登录按钮); await agent.aiType(testuser, 用户名输入框); await agent.aiAssert(显示登录成功的提示信息);这种转变的核心优势在于语义理解而非结构依赖。Midscene.js通过屏幕截图分析UI元素的视觉特征而不是解析DOM结构。这意味着即使界面重构、元素ID变更或CSS类名修改自动化脚本依然能够正常工作。视觉优先的设计哲学Midscene.js采用纯视觉路径进行UI操作这一决策基于三个关键洞察跨平台一致性无论是Web的HTML、Android的XML布局还是iOS的SwiftUI最终都会渲染为像素。视觉模型能够统一处理所有平台的界面减少Token消耗跳过DOM解析可以显著减少AI模型的Token使用量降低运行成本并提升速度支持非标准界面对于Canvas渲染、游戏界面或自定义UI框架传统选择器完全失效而视觉模型依然有效范式二从平台割裂到统一工作流一站式多平台支持传统自动化测试中每个平台都需要独立的工具链WebPlaywright/Puppeteer 选择器引擎AndroidAppium UIAutomator adb命令iOSWebDriverAgent XCTest 特定配置Midscene.js提供了统一的API层让开发者用同一套代码控制所有平台// 统一的API调用方式 const webAgent new PlaywrightAgent(page); const androidAgent new AndroidAgent(device); const iosAgent new IOSAgent(device); // 相同的操作语义 await webAgent.aiTap(搜索按钮); await androidAgent.aiTap(设置图标); await iosAgent.aiTap(返回箭头);智能环境适配Midscene.js能够自动识别不同平台的UI范式差异。例如在Android上返回通常是物理按键或屏幕底部按钮在iOS上则是左上角的箭头图标。系统会根据平台特性智能调整操作策略操作类型Android适配iOS适配Web适配返回导航点击返回键或手势点击导航栏箭头浏览器后退或页面返回滚动操作基于触摸的滑动惯性滚动鼠标滚轮或触摸文本输入系统输入法键盘弹出焦点键盘事件范式三从脚本维护到智能调试可视化调试体验传统自动化测试的调试过程通常是黑盒操作运行脚本→查看日志→猜测问题→修改代码→再次运行。Midscene.js通过可视化报告系统改变了这一流程// 生成详细的执行报告 const report await agent.runTask(完成电商购物流程, { steps: [ 搜索无线耳机, 筛选价格低于500元的商品, 点击第一个商品查看详情, 加入购物车, 进入结算页面 ], generateReport: true });报告系统提供时间轴可视化每个操作的执行时长和状态屏幕截图对比操作前后的界面变化AI决策过程展示模型如何理解指令并定位元素错误分析智能诊断失败原因并提供修复建议实时交互式调试Midscene.js的Playground功能允许开发者在真实环境中测试自动化逻辑实时屏幕投影将设备屏幕实时投射到浏览器中即时指令测试输入自然语言指令立即查看执行效果操作录制手动操作设备自动生成对应的AI指令断点调试在关键步骤暂停检查界面状态和元素定位实战应用电商自动化测试案例重构传统电商测试的痛点传统的电商自动化测试面临诸多挑战商品列表的动态加载导致选择器失效促销弹窗的随机出现干扰测试流程多语言界面的元素定位不一致移动端和Web端的测试代码无法复用Midscene.js的解决方案// 电商全流程自动化测试 const agent new PlaywrightAgent(page); // 1. 智能商品搜索 await agent.aiType(无线降噪耳机, 搜索框); await agent.aiTap(搜索按钮); await agent.waitForNetworkIdle(); // 2. 语义化筛选 const affordableItems await agent.aiQuery( 找出所有价格低于500元且评分4.5星以上的商品 排除缺货或预售状态 ); // 3. 上下文感知操作 for (const item of affordableItems.slice(0, 3)) { await agent.aiTap(查看${item.title}的详情); await agent.aiAssert(商品详情页包含规格参数); // 智能处理弹窗 if (await agent.aiLocate(促销弹窗)) { await agent.aiTap(关闭弹窗); } await agent.aiTap(加入购物车); await agent.aiAssert(购物车数量增加); } // 4. 跨页面流程验证 await agent.aiTap(购物车图标); await agent.aiAssert(购物车中有3件商品); await agent.aiTap(去结算); await agent.aiAssert(显示收货地址表单);性能优化策略Midscene.js提供了多种缓存机制提升执行效率// 启用智能缓存 await agent.enableCache({ strategy: aggressive, // 缓存策略aggressive|balanced|conservative ttl: 3600, // 缓存有效期秒 cachePath: ./.midscene-cache }); // 预加载常用模型 await agent.preloadModels([ui-tars, qwen-vl]); // 批量操作模式 await agent.startBatchMode(); await agent.aiTap(第一个商品); await agent.aiTap(第二个商品); await agent.aiTap(第三个商品); await agent.commitBatch();技术架构深度解析三层架构设计Midscene.js采用创新的三层架构平衡了灵活性与性能控制层Control Layer平台适配器Playwright、Puppeteer、Android adb、iOS WebDriverAgent统一的操作抽象点击、输入、滑动、截图错误恢复机制网络波动、界面变化、权限问题决策层Decision Layer视觉语言模型集成支持UI-TARS、Qwen-VL、Gemini等主流模型意图解析引擎将自然语言转换为操作序列上下文管理维护会话状态和操作历史执行层Execution Layer原子操作执行精确控制每个交互细节性能监控实时跟踪操作耗时和成功率报告生成结构化记录执行过程桥接模式连接现有生态对于已有Playwright或Puppeteer代码库的团队Midscene.js提供无缝集成方案// 桥接现有Playwright项目 import { PlaywrightAgent } from midscene/web/playwright; import { chromium } from playwright; // 1. 创建标准Playwright实例 const browser await chromium.launch(); const page await browser.newPage(); // 2. 包装为Midscene Agent const agent new PlaywrightAgent(page, { model: ui-tars, // 指定视觉模型 cache: true, // 启用缓存 debug: false // 调试模式 }); // 3. 混合使用传统和AI操作 await page.goto(https://example.com); await agent.aiTap(登录链接); // AI定位 await page.waitForURL(**/login); // 传统等待 await agent.aiType(username, 用户名输入框); // AI输入 await page.locator(#password).fill(secret); // 传统填充 await agent.aiTap(登录按钮); // AI点击企业级部署与最佳实践环境配置与管理Midscene.js支持灵活的环境配置策略// 环境变量配置 export const config { // 模型配置 model: process.env.MIDSCENE_MODEL || ui-tars, apiKey: process.env.OPENAI_API_KEY, // 性能调优 screenshotQuality: 0.8, // 截图质量0-1 timeout: 30000, // 操作超时毫秒 retryCount: 3, // 重试次数 // 缓存策略 cache: { enabled: true, ttl: 86400, // 24小时 path: ./cache } }; // 初始化Agent const agent new PlaywrightAgent(page, config);持续集成集成在CI/CD流水线中集成Midscene.js# GitHub Actions配置示例 name: Midscene E2E Tests on: push: branches: [main] pull_request: branches: [main] jobs: e2e-tests: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Setup Node.js uses: actions/setup-nodev3 with: node-version: 18 - name: Install dependencies run: npm ci - name: Install Playwright browsers run: npx playwright install - name: Run Midscene tests run: npm test:e2e env: MIDSCENE_MODEL: ui-tars OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - name: Upload test reports uses: actions/upload-artifactv3 with: name: midscene-reports path: reports/监控与告警建立完善的监控体系// 自定义监控中间件 class MonitoringMiddleware { constructor(agent) { this.agent agent; this.metrics { successCount: 0, failureCount: 0, totalTime: 0, modelCalls: 0 }; } async wrapOperation(operation, description) { const startTime Date.now(); try { const result await operation(); this.metrics.successCount; this.metrics.totalTime Date.now() - startTime; return result; } catch (error) { this.metrics.failureCount; // 发送告警 await this.sendAlert(description, error); throw error; } } async sendAlert(description, error) { // 集成到监控系统 console.error(操作失败: ${description}, error); } }未来演进从自动化到自主智能当前能力边界Midscene.js目前专注于视觉驱动的元素定位基于截图而非DOM自然语言交互用描述替代选择器跨平台统一Web、移动端、桌面端智能调试可视化报告和实时反馈技术演进路线多模态输入支持语音指令识别用语音控制自动化流程手势识别支持复杂的手势操作场景理解结合环境上下文做出决策自适应学习能力操作模式学习从历史执行中学习最佳实践界面变化检测自动识别UI变更并调整策略性能优化建议基于历史数据推荐配置企业级特性团队协作共享测试用例和模型训练数据安全合规数据加密和访问控制大规模部署分布式执行和负载均衡开始你的AI自动化之旅快速入门指南基础环境准备# 克隆项目 git clone https://gitcode.com/GitHub_Trending/mid/midscene cd midscene # 安装依赖 npm install # 配置环境变量 export OPENAI_API_KEYyour_api_key export MIDSCENE_MODELui-tars第一个自动化脚本// web-automation.js import { PlaywrightAgent } from midscene/web/playwright; import { chromium } from playwright; (async () { const browser await chromium.launch(); const page await browser.newPage(); const agent new PlaywrightAgent(page); await page.goto(https://example.com); // 用自然语言控制浏览器 await agent.aiTap(导航菜单); await agent.aiType(自动化测试, 搜索框); await agent.aiTap(搜索按钮); const results await agent.aiQuery(搜索结果列表); console.log(找到结果:, results.length); await browser.close(); })();扩展学习路径基础掌握完成官方文档中的10个示例项目中级应用将Midscene.js集成到现有测试框架高级优化定制视觉模型和缓存策略生产部署建立监控告警和CI/CD流水线社区资源与支持官方文档查看packages目录下的详细API说明示例项目参考tests目录中的完整测试用例问题反馈在项目仓库中提交Issue最佳实践关注社区分享的实战经验结语重新定义自动化测试的可能性Midscene.js不仅仅是一个工具它代表了一种全新的自动化测试哲学从精确控制到智能理解从平台割裂到统一体验从脚本维护到自主进化。在这个AI驱动的时代测试自动化不再需要开发者记住每个元素的CSS选择器不再需要为每个平台编写不同的代码不再需要在UI变化时手动更新测试用例。通过视觉AI技术Midscene.js让自动化测试变得更加智能、更加灵活、更加人性化。它降低了自动化测试的门槛让更多开发者能够轻松创建稳定可靠的测试用例它提高了测试的健壮性让自动化脚本能够适应界面变化它统一了多平台体验让团队可以用同一套思维模型应对所有测试场景。无论你是前端开发者需要测试Web应用还是移动开发者需要验证Android/iOS功能或是测试工程师需要建立完整的自动化体系Midscene.js都提供了一个值得探索的新方向。在这个视觉AI与自动化测试交汇的时代选择正确的工具不仅能够提升效率更能够重新定义工作的可能性。立即开始你的AI自动化之旅体验用自然语言控制数字世界的魔力。【免费下载链接】midsceneAI-powered, vision-driven UI automation for every platform.项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
Midscene.js:用视觉AI重新定义跨平台自动化测试的3种范式革命
Midscene.js用视觉AI重新定义跨平台自动化测试的3种范式革命【免费下载链接】midsceneAI-powered, vision-driven UI automation for every platform.项目地址: https://gitcode.com/GitHub_Trending/mid/midscene在传统自动化测试的世界里开发者们常常陷入一个困境要么编写繁琐的CSS选择器要么维护脆弱的XPath表达式。当UI发生变化时整个测试脚本需要重写当应用扩展到移动端时又需要学习全新的工具链。这种割裂的体验让自动化测试成为开发团队的心头之痛。Midscene.js的出现彻底改变了这一局面。这个开源项目通过视觉语言模型驱动为Web、Android、iOS乃至任何界面提供了统一的AI操作能力。它不只是一个测试框架而是一个完整的跨平台自动化生态系统让开发者用自然语言描述目标让AI完成剩下的工作。范式一从代码驱动到意图驱动的转变传统自动化 vs Midscene.js的AI驱动传统自动化测试依赖于精确的元素定位器// 传统方式依赖DOM结构 await page.click(button[data-testidlogin-btn]); await page.fill(input[nameusername], testuser); await page.waitForSelector(.success-message);Midscene.js采用意图驱动的AI操作// Midscene方式使用自然语言描述 await agent.aiTap(红色背景的登录按钮); await agent.aiType(testuser, 用户名输入框); await agent.aiAssert(显示登录成功的提示信息);这种转变的核心优势在于语义理解而非结构依赖。Midscene.js通过屏幕截图分析UI元素的视觉特征而不是解析DOM结构。这意味着即使界面重构、元素ID变更或CSS类名修改自动化脚本依然能够正常工作。视觉优先的设计哲学Midscene.js采用纯视觉路径进行UI操作这一决策基于三个关键洞察跨平台一致性无论是Web的HTML、Android的XML布局还是iOS的SwiftUI最终都会渲染为像素。视觉模型能够统一处理所有平台的界面减少Token消耗跳过DOM解析可以显著减少AI模型的Token使用量降低运行成本并提升速度支持非标准界面对于Canvas渲染、游戏界面或自定义UI框架传统选择器完全失效而视觉模型依然有效范式二从平台割裂到统一工作流一站式多平台支持传统自动化测试中每个平台都需要独立的工具链WebPlaywright/Puppeteer 选择器引擎AndroidAppium UIAutomator adb命令iOSWebDriverAgent XCTest 特定配置Midscene.js提供了统一的API层让开发者用同一套代码控制所有平台// 统一的API调用方式 const webAgent new PlaywrightAgent(page); const androidAgent new AndroidAgent(device); const iosAgent new IOSAgent(device); // 相同的操作语义 await webAgent.aiTap(搜索按钮); await androidAgent.aiTap(设置图标); await iosAgent.aiTap(返回箭头);智能环境适配Midscene.js能够自动识别不同平台的UI范式差异。例如在Android上返回通常是物理按键或屏幕底部按钮在iOS上则是左上角的箭头图标。系统会根据平台特性智能调整操作策略操作类型Android适配iOS适配Web适配返回导航点击返回键或手势点击导航栏箭头浏览器后退或页面返回滚动操作基于触摸的滑动惯性滚动鼠标滚轮或触摸文本输入系统输入法键盘弹出焦点键盘事件范式三从脚本维护到智能调试可视化调试体验传统自动化测试的调试过程通常是黑盒操作运行脚本→查看日志→猜测问题→修改代码→再次运行。Midscene.js通过可视化报告系统改变了这一流程// 生成详细的执行报告 const report await agent.runTask(完成电商购物流程, { steps: [ 搜索无线耳机, 筛选价格低于500元的商品, 点击第一个商品查看详情, 加入购物车, 进入结算页面 ], generateReport: true });报告系统提供时间轴可视化每个操作的执行时长和状态屏幕截图对比操作前后的界面变化AI决策过程展示模型如何理解指令并定位元素错误分析智能诊断失败原因并提供修复建议实时交互式调试Midscene.js的Playground功能允许开发者在真实环境中测试自动化逻辑实时屏幕投影将设备屏幕实时投射到浏览器中即时指令测试输入自然语言指令立即查看执行效果操作录制手动操作设备自动生成对应的AI指令断点调试在关键步骤暂停检查界面状态和元素定位实战应用电商自动化测试案例重构传统电商测试的痛点传统的电商自动化测试面临诸多挑战商品列表的动态加载导致选择器失效促销弹窗的随机出现干扰测试流程多语言界面的元素定位不一致移动端和Web端的测试代码无法复用Midscene.js的解决方案// 电商全流程自动化测试 const agent new PlaywrightAgent(page); // 1. 智能商品搜索 await agent.aiType(无线降噪耳机, 搜索框); await agent.aiTap(搜索按钮); await agent.waitForNetworkIdle(); // 2. 语义化筛选 const affordableItems await agent.aiQuery( 找出所有价格低于500元且评分4.5星以上的商品 排除缺货或预售状态 ); // 3. 上下文感知操作 for (const item of affordableItems.slice(0, 3)) { await agent.aiTap(查看${item.title}的详情); await agent.aiAssert(商品详情页包含规格参数); // 智能处理弹窗 if (await agent.aiLocate(促销弹窗)) { await agent.aiTap(关闭弹窗); } await agent.aiTap(加入购物车); await agent.aiAssert(购物车数量增加); } // 4. 跨页面流程验证 await agent.aiTap(购物车图标); await agent.aiAssert(购物车中有3件商品); await agent.aiTap(去结算); await agent.aiAssert(显示收货地址表单);性能优化策略Midscene.js提供了多种缓存机制提升执行效率// 启用智能缓存 await agent.enableCache({ strategy: aggressive, // 缓存策略aggressive|balanced|conservative ttl: 3600, // 缓存有效期秒 cachePath: ./.midscene-cache }); // 预加载常用模型 await agent.preloadModels([ui-tars, qwen-vl]); // 批量操作模式 await agent.startBatchMode(); await agent.aiTap(第一个商品); await agent.aiTap(第二个商品); await agent.aiTap(第三个商品); await agent.commitBatch();技术架构深度解析三层架构设计Midscene.js采用创新的三层架构平衡了灵活性与性能控制层Control Layer平台适配器Playwright、Puppeteer、Android adb、iOS WebDriverAgent统一的操作抽象点击、输入、滑动、截图错误恢复机制网络波动、界面变化、权限问题决策层Decision Layer视觉语言模型集成支持UI-TARS、Qwen-VL、Gemini等主流模型意图解析引擎将自然语言转换为操作序列上下文管理维护会话状态和操作历史执行层Execution Layer原子操作执行精确控制每个交互细节性能监控实时跟踪操作耗时和成功率报告生成结构化记录执行过程桥接模式连接现有生态对于已有Playwright或Puppeteer代码库的团队Midscene.js提供无缝集成方案// 桥接现有Playwright项目 import { PlaywrightAgent } from midscene/web/playwright; import { chromium } from playwright; // 1. 创建标准Playwright实例 const browser await chromium.launch(); const page await browser.newPage(); // 2. 包装为Midscene Agent const agent new PlaywrightAgent(page, { model: ui-tars, // 指定视觉模型 cache: true, // 启用缓存 debug: false // 调试模式 }); // 3. 混合使用传统和AI操作 await page.goto(https://example.com); await agent.aiTap(登录链接); // AI定位 await page.waitForURL(**/login); // 传统等待 await agent.aiType(username, 用户名输入框); // AI输入 await page.locator(#password).fill(secret); // 传统填充 await agent.aiTap(登录按钮); // AI点击企业级部署与最佳实践环境配置与管理Midscene.js支持灵活的环境配置策略// 环境变量配置 export const config { // 模型配置 model: process.env.MIDSCENE_MODEL || ui-tars, apiKey: process.env.OPENAI_API_KEY, // 性能调优 screenshotQuality: 0.8, // 截图质量0-1 timeout: 30000, // 操作超时毫秒 retryCount: 3, // 重试次数 // 缓存策略 cache: { enabled: true, ttl: 86400, // 24小时 path: ./cache } }; // 初始化Agent const agent new PlaywrightAgent(page, config);持续集成集成在CI/CD流水线中集成Midscene.js# GitHub Actions配置示例 name: Midscene E2E Tests on: push: branches: [main] pull_request: branches: [main] jobs: e2e-tests: runs-on: ubuntu-latest steps: - uses: actions/checkoutv3 - name: Setup Node.js uses: actions/setup-nodev3 with: node-version: 18 - name: Install dependencies run: npm ci - name: Install Playwright browsers run: npx playwright install - name: Run Midscene tests run: npm test:e2e env: MIDSCENE_MODEL: ui-tars OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} - name: Upload test reports uses: actions/upload-artifactv3 with: name: midscene-reports path: reports/监控与告警建立完善的监控体系// 自定义监控中间件 class MonitoringMiddleware { constructor(agent) { this.agent agent; this.metrics { successCount: 0, failureCount: 0, totalTime: 0, modelCalls: 0 }; } async wrapOperation(operation, description) { const startTime Date.now(); try { const result await operation(); this.metrics.successCount; this.metrics.totalTime Date.now() - startTime; return result; } catch (error) { this.metrics.failureCount; // 发送告警 await this.sendAlert(description, error); throw error; } } async sendAlert(description, error) { // 集成到监控系统 console.error(操作失败: ${description}, error); } }未来演进从自动化到自主智能当前能力边界Midscene.js目前专注于视觉驱动的元素定位基于截图而非DOM自然语言交互用描述替代选择器跨平台统一Web、移动端、桌面端智能调试可视化报告和实时反馈技术演进路线多模态输入支持语音指令识别用语音控制自动化流程手势识别支持复杂的手势操作场景理解结合环境上下文做出决策自适应学习能力操作模式学习从历史执行中学习最佳实践界面变化检测自动识别UI变更并调整策略性能优化建议基于历史数据推荐配置企业级特性团队协作共享测试用例和模型训练数据安全合规数据加密和访问控制大规模部署分布式执行和负载均衡开始你的AI自动化之旅快速入门指南基础环境准备# 克隆项目 git clone https://gitcode.com/GitHub_Trending/mid/midscene cd midscene # 安装依赖 npm install # 配置环境变量 export OPENAI_API_KEYyour_api_key export MIDSCENE_MODELui-tars第一个自动化脚本// web-automation.js import { PlaywrightAgent } from midscene/web/playwright; import { chromium } from playwright; (async () { const browser await chromium.launch(); const page await browser.newPage(); const agent new PlaywrightAgent(page); await page.goto(https://example.com); // 用自然语言控制浏览器 await agent.aiTap(导航菜单); await agent.aiType(自动化测试, 搜索框); await agent.aiTap(搜索按钮); const results await agent.aiQuery(搜索结果列表); console.log(找到结果:, results.length); await browser.close(); })();扩展学习路径基础掌握完成官方文档中的10个示例项目中级应用将Midscene.js集成到现有测试框架高级优化定制视觉模型和缓存策略生产部署建立监控告警和CI/CD流水线社区资源与支持官方文档查看packages目录下的详细API说明示例项目参考tests目录中的完整测试用例问题反馈在项目仓库中提交Issue最佳实践关注社区分享的实战经验结语重新定义自动化测试的可能性Midscene.js不仅仅是一个工具它代表了一种全新的自动化测试哲学从精确控制到智能理解从平台割裂到统一体验从脚本维护到自主进化。在这个AI驱动的时代测试自动化不再需要开发者记住每个元素的CSS选择器不再需要为每个平台编写不同的代码不再需要在UI变化时手动更新测试用例。通过视觉AI技术Midscene.js让自动化测试变得更加智能、更加灵活、更加人性化。它降低了自动化测试的门槛让更多开发者能够轻松创建稳定可靠的测试用例它提高了测试的健壮性让自动化脚本能够适应界面变化它统一了多平台体验让团队可以用同一套思维模型应对所有测试场景。无论你是前端开发者需要测试Web应用还是移动开发者需要验证Android/iOS功能或是测试工程师需要建立完整的自动化体系Midscene.js都提供了一个值得探索的新方向。在这个视觉AI与自动化测试交汇的时代选择正确的工具不仅能够提升效率更能够重新定义工作的可能性。立即开始你的AI自动化之旅体验用自然语言控制数字世界的魔力。【免费下载链接】midsceneAI-powered, vision-driven UI automation for every platform.项目地址: https://gitcode.com/GitHub_Trending/mid/midscene创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考