// سطح: vasic-util-secondary · سفارش 23
VisionEngine activeاجازهنامه: UNVERIFIED
منبع
رابط کاربری را مانند یک کاربر ببینید — بینایی کامپیوتری بهعلاوه بینایی LLM برای تحلیل و پیمایش.
VisionEngine یک جعبهابزار Go جداشده است که بینایی کامپیوتری کلاسیک را با بینایی مبتنی بر LLM ترکیب میکند تا رابطهای کاربری را تحلیل کند، عناصر UI و مشکلات بصری را شناسایی کند و گراف پیمایشی از انتقالهای صفحه اپلیکیشن بسازد — با پشتیبانی از چندین ارائهدهنده بینایی بهصورت پلاگین و OpenCV که پشت یک تگ ساخت پنهان شده است.
یک ماژول Go قابل استفاده مجدد برای تحلیل رابط کاربری و ساخت گراف پیمایش. این ماژول یک لایه تحلیلگر (عناصر UI، تفاوتهای صفحه، مشکلات بصری)، یک گراف پیمایش با جستجوی مسیر به روش BFS و قابلیت صادرات به DOT/JSON/Mermaid، و آداپتورهای بینایی LLM برای GPT-4o، Claude، Gemini، Qwen-VL و موارد دیگر ارائه میدهد.
بیشتر اتوماسیونهای تست رابط کاربری عملاً نابینا هستند. آنها به درختهای دسترسی و سلکتورهای DOM تکیه میکنند — ایدهای ماشینی از یک رابط — و همه آنچه را که یک انسان واقعاً تجربه میکند از دست میدهند: اینکه آیا یک دکمه بهصورت قابلمشاهده رندر شده است، آیا چیدمان شکسته شده، آیا صفحهای که به آن رسیده همانی است که انتظارش را داشت. VisionEngine این شکاف را با دادن ادراک واقعی به اتوماسیون پر میکند؛ توانایی نگاه کردن به یک رابط کاربری و استدلال درباره آن به همان شیوهای که یک انسان انجام میدهد. این ابزار در چهار لایه همکاریکننده سازماندهی شده که از پیکسلهای خام تا درک کل اپلیکیشن را پوشش میدهند.
لایه تحلیلگر قرارداد پایداری را تعریف میکند — رابطها (Analyzer، VideoProcessor) و انواع داده (UIElement، ScreenAnalysis، ScreenDiff، Rect، Size، TextRegion، VisualIssue، ScreenIdentity، Action، KeyFrame) با یک پیادهسازی مرجع StubAnalyzer — تا مصرفکنندگان بتوانند عناصر را شناسایی کنند، تفاوت صفحات را مقایسه کنند و مشکلات بصری را بر اساس قراردادی که زیر پای آنها تغییر نمیکند، آشکار سازند.
لایه گراف پیمایش دید را از یک صفحه منفرد به کل اپلیکیشن گسترش میدهد و آن را بهصورت یک گراف جهتدار از انتقالهای صفحه مدلسازی میکند که قابلیت جستجوی مسیر به روش BFS و سه بکاند صادراتی (DOT، JSON، Mermaid) را دارد. به این ترتیب، اتوماسیون نهتنها میتواند یک صفحه را ببیند، بلکه میتواند مسیری به هر صفحه دیگری برنامهریزی کند — و مجموعه تستهای فشار، اتوماسیون، یکپارچهسازی و امنیتی را برای اثبات آن ارائه میدهد.
لایه بینایی LLM استدلال چندوجهی مدرن را اضافه میکند: یک رابط VisionProvider با آداپتورهایی برای OpenAI (GPT-4o)، Anthropic (Claude)، Gemini، Qwen-VL، کیمی، StepGUI، آستیکا و Ollama که از طریق یک FallbackChain ترکیب شدهاند تا در صورت شکست، محدودیت نرخ یا ضعف یک ارائهدهنده، بهجای اینکه کل اجرا را با مشکل مواجه کند، بهصورت منظم به ارائهدهنده بعدی تنزل یابد.
لایه پیکربندی بارگذاری و اعتبارسنجی متغیرهای محیطی را مدیریت میکند و هر پیام خطای قابلمشاهده کاربر از طریق i18n.Translator مسیریابی میشود.
تصمیم کلیدی که باعث میشود همه اینها واقعاً قابلپذیرش باشند، این است که وابستگی بومی سنگین اختیاری است. بایندینگهای OpenCV پشت تگ ساخت -tags vision قرار دارند و نسخه پیشفرض با استابها عرضه میشود — بنابراین کل ماژول روی هر میزبان Go نسخه ۱.۲۵ به بالا بدون نیاز به زنجیره ابزار OpenCV کامپایل، تست و اجرا میشود و تنها زمانی که مصرفکننده بهصورت صریح آن را انتخاب کند، پشته بومی وارد میشود. این همان چیزی است که به VisionEngine اجازه میدهد بدون نیاز به یک ایمیج سفارشی، در یک رانر CI ساده مستقر شود. این ابزار کاملاً جداشده مطابق با قانون اساسی (CONST-051(B)) توسط مصرفکنندگان — بهویژه HelixQA — بهعنوان یک زیرماژول همکدبیس گنجانده میشود و تست رابط کاربری مبتنی بر شواهد را به یک جفت چشم واقعی مجهز میکند.
محتوا
اتوماسیون تست رابط کاربری که تنها به درختهای دسترسیپذیری یا سلکتورها متکی است، آنچه را کاربر واقعاً میبیند از دست میدهد. VisionEngine درک بصری واقعی را اضافه میکند — تشخیص عناصر، مقایسه صفحهها و استدلال LLM-محور — بهعلاوه نقشهای قابل پیمایش از صفحات اپلیکیشن، تا اتوماسیون بتواند هم رابط کاربری را درک کند و هم در آن مسیریابی نماید.
این ابزار دو رویکرد معمولاً ناسازگار — بینایی کامپیوتری کلاسیک سریع و قطعی و بینایی LLM انعطافپذیر و معنایی — را پشت یک رابط واحد با زنجیره جایگزین قرار میدهد، بهطوری که کاربر بدون نیاز به انتخاب، هم از دقت یکی و هم از استدلال دیگری بهرهمند میشود. و با اختیاری نگهداشتن OpenCV، هزینه معمول این قدرت را حذف میکند: هر پروژه Go میتواند بدون کشیدن زنجیره ابزار بینایی بومی به بیلد خود، درک واقعی رابط کاربری را بهدست آورد.
- ادراک دوگانه: بینایی کامپیوتری کلاسیک (OpenCV/GoCV) بهعلاوه بینایی LLM چندارائهدهنده با زنجیره جایگزین.
- گراف مسیریابی با جستجوی مسیر به روش BFS و قابلیت صدور به فرمتهای DOT/JSON/Mermaid.
- جداسازی OpenCV با تگهای بیلد تا ماژول بدون وابستگیهای بومی قابل ساخت و آزمایش باقی بماند.
- زیرماژول کاملاً جداشده، با درز i18n و کدبیس برابر (مورد استفاده در HelixQA).
- اصطکاک وابستگیهای بومی سنگین: با گیتینگ
-tags visionو استابهای پیشفرض حل شد تا CI/هاستهای بدون OpenCV همچنان قابل ساخت و آزمایش باشند. - ناپایداری ارائهدهندگان بینایی: با رابط
VisionProviderو کامپوزرFallbackChainحل شد. - نقشهبرداری جریانهای پیچیده اپلیکیشن: با گراف مسیریابی جهتدار بهعلاوه جستجوی مسیر BFS و صدور چندفرمت حل شد.
- وابستگی: از طریق جداسازی CONST-051(B) و درز مترجم i18n حل شد.
- Go (نسخه ۱٫۲۵ به بالا) — هسته ماژول و هر چهار لایه.
- GoCV / OpenCV — بینایی کامپیوتری کلاسیک، با گیتینگ تگهای بیلد.
- ارائهدهندگان بینایی LLM (GPT-4o, Claude, Gemini, Qwen-VL, Kimi, StepGUI, Astica, Ollama) — استدلال چندوجهی رابط کاربری از طریق آداپتورها.
- الگوریتمهای گراف (BFS) — جستجوی مسیر در مسیریابی.
- صادرکنندههای DOT / JSON / Mermaid — مصورسازی گراف مسیریابی.
- مترجم i18n — رشتههای قابل مشاهده برای کاربر بهصورت جداشده.