AI prompts
base on 基于图像识别的自动化黑盒测试框架 | An automation black-box testing framework based on image recognition <!-- markdownlint-disable MD033 MD041 -->
<p align="center">
<img alt="LOGO" src="https://cdn.jsdelivr.net/gh/MaaAssistantArknights/design@main/logo/maa-logo_512x512.png" width="256" height="256" />
</p>
<div align="center">
# MaaFramework
<!-- prettier-ignore-start -->
<!-- markdownlint-disable-next-line MD036 -->
_✨ 基于图像识别的自动化黑盒测试框架 ✨_
<!-- prettier-ignore-end -->
</div>
<p align="center">
<img alt="C++" src="https://img.shields.io/badge/C++-20-%2300599C?logo=cplusplus">
<img alt="platform" src="https://img.shields.io/badge/platform-Windows%20%7C%20Linux%20%7C%20macOS%20%7C%20Android-blueviolet">
<br>
<img alt="license" src="https://img.shields.io/github/license/MaaXYZ/MaaFramework">
<img alt="activity" src="https://img.shields.io/github/commit-activity/m/MaaXYZ/MaaFramework?color=%23ff69b4">
<img alt="stars" src="https://img.shields.io/github/stars/MaaXYZ/MaaFramework?style=social">
<br>
<a href="https://pypi.org/project/MaaFw/" target="_blank"><img alt="pypi" src="https://img.shields.io/badge/PyPI-3775A9?logo=pypi&logoColor=white"></a>
<a href="https://www.nuget.org/packages/Maa.Framework.Runtimes" target="_blank"><img alt="nuget" src="https://img.shields.io/badge/NuGet-004880?logo=nuget"></a>
<a href="https://www.npmjs.com/package/@maaxyz/maa-node" target="_blank"><img alt="npm" src="https://img.shields.io/badge/npm-CB3837?logo=npm"></a>
<a href="https://mirrorchyan.com/zh/projects" target="_blank"><img alt="mirrorc" src="https://img.shields.io/badge/Mirror%E9%85%B1-%239af3f6?logo=countingworkspro&logoColor=4f46e5"></a>
</p>
<div align="center">
[English](./README_en.md) | [简体中文](./README.md)
</div>
## 简介
**MaaFramework** 是基于图像识别技术、运用 [MAA](https://github.com/MaaAssistantArknights/MaaAssistantArknights) 开发经验去芜存菁、完全重写的新一代自动化黑盒测试框架。
低代码的同时仍拥有高扩展性,旨在打造一款丰富、领先、且实用的开源库,助力开发者轻松编写出更好的黑盒测试程序,并推广普及。
## 即刻开始
- [快速开始](docs/zh_cn/1.1-快速开始.md)
- [集成文档](docs/zh_cn/2.1-集成文档.md)
- [Pipeline 协议](docs/zh_cn/3.1-任务流水线协议.md)
## 社区项目
### 通用 UI
- [MFAWPF](https://github.com/SweetSmellFox/MFAWPF)     [](https://mirrorchyan.com/zh/projects)
基于 MAA 全新架构的 通用 GUI。由 MaaFramework 强力驱动!
- [MFW-PyQt6](https://github.com/overflow65537/MFW-PyQt6)     [](https://mirrorchyan.com/zh/projects)
基于PyQt6的通用GUI。由 MaaFramework 强力驱动!
- [MFAAvalonia](https://github.com/SweetSmellFox/MFAAvalonia)     [](https://mirrorchyan.com/zh/projects)
基于 Avalonia 的 通用 GUI。由 MaaFramework 强力驱动!
### 开发工具
- [MaaDebugger](https://github.com/MaaXYZ/MaaDebugger)     [](https://pypi.org/project/MaaDebugger/)
MaaFramework Pipeline 调试器
- [maa-support-extension](https://github.com/neko-para/maa-support-extension)    [](https://marketplace.visualstudio.com/items?itemName=nekosu.maa-support)
MaaFramework VSCode 插件
- [MFATools](https://github.com/SweetSmellFox/MFATools)    
基于WPF框架开发的工具界面,旨在提供类似于截图工具的功能
- [YAMaaPE](https://github.com/kqcoxn/YAMaaPE)    
基于 vue-flow 的 Pipeline 编辑器。由 MaaFramework 强力驱动!
### 应用程序
- [M9A](https://github.com/MaaXYZ/M9A)      [](https://mirrorchyan.com/zh/projects) [](https://1999.fan)
亿韭韭韭 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MAABH3](https://github.com/MaaXYZ/MAABH3)    
蹦蹦蹦 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MAS](https://github.com/MaaXYZ/MaaAssistantSkland)    
森空岛 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MSBA](https://github.com/overflow65537/MAA_SnowBreak)     [](https://mirrorchyan.com/zh/projects)
尘白禁区 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MAA-for-Millennium-Tour](https://github.com/Ostwind23/MAA-for-Millennium-Tour)    
千年之旅 小助手。图像技术 + 模拟控制,解放侍主的大手!由 MaaFramework 强力驱动!
- [MET](https://github.com/shanchuan001/MET)    
悠久之树 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MaaYYs](https://github.com/TanyaShue/MaaYYs)      [](https://mirrorchyan.com/zh/projects)
阴阳师小助手。图像技术 + 模拟控制,当赛博屯屯鼠,自动日常,解放你的双手!由 MaaFramework 强力驱动!
- [MaaJR](https://github.com/Saratoga-Official/MaaJR)     [](https://mirrorchyan.com/zh/projects)
战舰少女R 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MPA](https://github.com/overflow65537/MAA_Punish)      [](https://mirrorchyan.com/zh/projects)
战双帕弥什 小助手。图像技术 + 模拟控制,解放双手!由 玛丽的黑咖啡 2.0 强力驱动!
- [MaaYuan](https://github.com/syoius/MaaYuan)     [](https://mirrorchyan.com/zh/projects) [](https://maayuan.top)
代号鸢/如鸢 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [Maa-HBR](https://github.com/KarylDAZE/Maa-HBR)     [](https://mirrorchyan.com/zh/projects)
炽焰天穹/HBR 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MaaGF2Exilium](https://github.com/DarkLingYun/MaaGF2Exilium)     [](https://mirrorchyan.com/zh/projects)
少女前线2: 追放自动化助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MaaAshEchoes](https://github.com/moulai/MaaAshEchoes)     [](https://mirrorchyan.com/zh/projects)
白荆回廊 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MaaXuexi](https://github.com/ravizhan/MaaXuexi)     
学习强国 自动化助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MACC](https://github.com/mxia9416/MACC)    
无期迷途 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MAA_MHXY_MG](https://github.com/gitlihang/Maa_MHXY_MG)    
梦幻西游手游 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MNMA](https://github.com/kqcoxn/MaaNewMoonAccompanying)      [](https://mirrorchyan.com/zh/projects)
新月同行 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
- [MaaTOT](https://github.com/Coxwtwo/MaaTOT)    
未定事件簿 小助手。图像技术 + 模拟控制,解放双手!由 MaaFramework 强力驱动!
## 生态共建
MAA 正计划建设为一类项目,而非舟的单一软件。
若您的项目依赖于 MaaFramework ,我们欢迎您将它命名为 MaaXXX, MXA, MAX 等等。当然,这是许可而不是限制,您也可以自由选择其他与 MAA 无关的名字,完全取决于您自己的想法!
同时,我们也非常欢迎您提出 PR ,在上方的社区项目列表中添加上您的项目!
## 许可证
### MaaFramework
本项目采用 [`LGPL-3.0`](./LICENSE.md) 许可证进行开源。
### DirectML
本项目支持 GPU 加速功能,其在 Windows 平台上依赖于 Microsoft 提供的独立组件 [DirectML](https://learn.microsoft.com/en-us/windows/ai/directml/)。DirectML 并非本项目的开源部分,也不受 LGPL-3.0 的约束。为方便用户,我们随安装包附带了一个未经修改的 DirectML.dll 文件。如果您无需 GPU 加速功能,可安全删除该 DLL 文件,软件的核心功能仍可正常运行。
## 开发
_请留意,仅当您准备开发 MaaFramework 本身时,才需要阅读本章节内容。若您仅希望基于 MaaFramework 开发自己的应用,则请参考 [即刻开始](#即刻开始)。_
- [构建指南](docs/zh_cn/4.1-构建指南.md)
- [接口设计](docs/zh_cn/4.2-标准化接口设计.md)
## 鸣谢
### 开源库
- [opencv](https://github.com/opencv/opencv)
Open Source Computer Vision Library
- [fastdeploy](https://github.com/PaddlePaddle/FastDeploy)
⚡️An Easy-to-use and Fast Deep Learning Model Deployment Toolkit for ☁️Cloud 📱Mobile and 📹Edge.
- [onnxruntime](https://github.com/microsoft/onnxruntime)
ONNX Runtime: cross-platform, high performance ML inferencing and training accelerator
- [boost](https://www.boost.org/)
Boost provides free peer-reviewed portable C++ source libraries.
- [libzmq](https://github.com/zeromq/libzmq)
ZeroMQ core engine in C++, implements ZMTP/3.1
- [cppzmq](https://github.com/zeromq/cppzmq)
Header-only C++ binding for libzmq
- [meojson](https://github.com/MistEO/meojson)
✨ Next-gen C++ JSON/JSON5 Serialization Engine | Zero Dependency | Header-Only | Unleash JSON Potential
- [minitouch](https://github.com/DeviceFarmer/minitouch)
Minimal multitouch event producer for Android.
- [maatouch](https://github.com/MaaAssistantArknights/MaaTouch)
Android native implementation of minitouch input protocol
- [minicap](https://github.com/DeviceFarmer/minicap)
Stream real-time screen capture data out of Android devices.
- [zlib](https://github.com/madler/zlib)
A massively spiffy yet delicately unobtrusive compression library.
- [gzip-hpp](https://github.com/mapbox/gzip-hpp)
Gzip header-only C++ library
- ~~[protobuf](https://github.com/protocolbuffers/protobuf)~~
~~Protocol Buffers - Google's data interchange format~~
- ~~[grpc](https://github.com/grpc/grpc)~~
~~The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#)~~
- ~~[thrift](https://github.com/apache/thrift)~~
~~Apache Thrift~~
### 开发者
感谢以下开发者对 MaaFramework 作出的贡献:
[](https://github.com/MaaXYZ/MaaFramework/graphs/contributors)
## 讨论
- 集成/开发交流 QQ 群: 595990173
## 赞助
<!-- markdownlint-disable MD045 -->
<a href="https://afdian.com/a/misteo">
<img width="200" src="https://pic1.afdiancdn.com/static/img/welcome/button-sponsorme.png">
</a>
", Assign "at most 3 tags" to the expected json: {"id":"10417","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"