aisingapore / TagUI

Free RPA tool by AI Singapore
Apache License 2.0
5.45k stars 573 forks source link

分享技术团队对TagUI的观点 - some initial thoughts from Ken, pending Ruth #1216

Open kangyiwen opened 2 years ago

kangyiwen commented 2 years ago

这些天,我和公司内部的技术人员,让他们学习 TagUI,并给我一些建议,我也找了几个做开发的朋友,获得他们对 TagUI 的看法。下面是一些汇总,当然这些都是和商业RPA产品的对比,对 TagUI 的是不公平的:

这个tagui基于chrome driver实现浏览器控制,开启浏览器的调试模式,很多网站会禁止这个模式,很多开源RPA都是这样。商业RPA公司是自研浏览器插件,通过websocket通信进行浏览器控制,没用websocket,基本只是一个开发用的测试自动化。

python有好几个基于chrome driver的,即便不用tagui,在爬虫领域,很早就可以自动控制浏览器了。

tagui目前支持可视化选元素么?rpa重要的编辑功能就是这个选元素。

整个rpa项目里,编写元素操作是最简单的。项目是否稳定运行不在于元素的点击输入操作。

如果tagui,能做成有类似 https://www.automa.site/ 来组件整个开发流; 我觉得距离rpa更近,当前个人理解,它只是一个开发库;而不是rpa。

tagui做实际项目,还需要手动封装更多的库。它的浏览器操作编写挺简单,但如果只是操作浏览器,如果使用tagui做超出浏览器控制的项目,那就需要手动封装不少功能库。这对于小白来说就门槛很高。由于TagUI是完全基于浏览器的,当时我尝试用tagui写一个出来,最后放弃了,要封装的功能太多了;虽然我也会,但放着免费uibot不用,自己用tagui封装感觉没必要。

以上这些,都是技术人员真实的反馈。引发了我下面这些思考:

我现在就去调查一下~

kangyiwen commented 2 years ago

翻编了来也公司的RPA商场、影刀RPA的商场,整体感受是:

1.大概有50%的流程,是浏览器和 Excel 操作。这个TagUI 可以完成。当然,那些操作各类ERP的RPA流程很少公开。

  1. 电商RPA场景,大部分都是浏览器+excel 可以完成。
  2. 这些流程里,大量用到 “对话框” ,一般是启动时,会有个对话框,让用户可视化的做配置,例如输入关键词、选择XLS文件,或者其他配置选项。
  3. 浏览器上的操作,很大概率用到抓数据功能,例如抓电商平台的商品、价格、截图、评论等等。TagUI 在抓数据方面虽然可以实现,但对于要同时抓这么多字段,通过JS编程实现,肯定就把初学者挡在外面了。

我的个人判断,一个 “以 chrome word excel 为主” 的RPA产品,是有市场前景的,同时需要对核心功能进行封装,例如:抓数据。

kensoh commented 2 years ago

Hi Yi Wen, thanks for sharing your feedback and insights! Following are my thoughts, for Ruth to add on her thoughts.

这个tagui基于chrome driver实现浏览器控制,开启浏览器的调试模式,很多网站会禁止这个模式,很多开源RPA都是这样。商业RPA公司是自研浏览器插件,通过websocket通信进行浏览器控制,没用websocket,基本只是一个开发用的测试自动化。

This is incorrect understanding, I wrote the Chrome automation myself from scratch, and communicates directly using websocket connection. There is no Selenium or Chromedriver used. You can verify this by checking tagui/src/tagui_chrome.log file, which tracks all the communication messages TagUI sends to Chrome browser using websocket. I chose to create the Chrome automation on my own, in order to fully control the capability instead of relying on some 3rd-party tool which I cannot control. And yes Chrome driver has limitations which TagUI does not have.

python有好几个基于chrome driver的,即便不用tagui,在爬虫领域,很早就可以自动控制浏览器了。

For the Python version of TagUI - https://github.com/tebelorg/RPA-Python it is actually more than Python Selenium or other packages. It offers in a single package with simple API the following Python packages combined together - Selenium + PyAutoGUI + OpenCV + Tesseract + Telegram. Thus it cannot be simply compared to a single Python package, and that's why it has over 1k new users every month. Similarly for TagUI, over 1k new users monthly. TagUI has these integrations and more (like Excel, PDF, Word integrations) and can automate desktop apps, web apps, command-line apps. Thus it offers broader capability than what web-app only options like automa.site can do.

For the other topics, may be easier to walk through on the Zoom call on Thursday, but see if Ruth has comments on above topics and the rest of the topics you have raised. I think these discussions are important, because often, many new features of TagUI are born out of such user feedback. Which will end up benefitting a lot more users with similar needs.

My hunch is the people whom you have gotten feedback, may not be the current target demographic of TagUI. If changing something or adding some new feature can broaden the userbase (without negatively affecting current userbase in terms of compatibility breaking or opportunity costs of developing other features on the roadmap), it will be worth exploring.

kensoh commented 2 years ago

Oh, I forgot to add a very important point. I don't think its good to grow too fast. The current growth of total > 2k users (Python version + human language version) seems manageable. I prioritise a lot on supporting users. Other than building good tool and documentation with limited resources, I view supporting users as the most important thing to do well.

Ruth now still supports TagUI users in Telegram, GitHub, Zoom and various channels, with very fast turnaround time. One side effect of adding new features or changes that suddenly attract a lot of new users, means that her limited time gets distributed to a larger number of new user questions. That is a bad thing in my opinion, because the user experience is most likely to be lower when trying to raise question for help.

But growing steadily, can hopefully outlast other competitors in open-source RPA space (Robocorp, OpenBots, OpenRPA) despite having very limited headcount compared to competitors like them with large engineering teams and deep pockets.

kangyiwen commented 2 years ago

@kensoh 非常非常感谢,感谢 Ken 这样热爱 RPA并且有能力做出自己独特产品的人。我现在学 TagUI,基本操作都会了,并且已经完成了几个简单的流程,准备想更复杂流程迈进。

在学习过程中,初期是学 TagUI 的命令,现在感觉就是在学 JS,感觉要学2个语言,让我(或者类似我的用户)感觉很困惑,因为大量时间是在查询 JS 语法。如果可以,请告诉我,如何可以帮助 TagUI 改善这个情况;我能想到的是 完善文档,把JS里的很多语句描述出来,例如 字符串处理、时间函数等等,最好可以简单封装一下,让用户更容易使用。

下面是我整理的商业RPA功能菜单,有底色的是我常用的功能,其实也不多,我在想,把这些命令在 TagUI 里实现,并且写入文档,那用户就感觉只是在学 TagUI,而不是 JS 了。 111

kensoh commented 2 years ago

Created a new issue for consideration, @ruthtxh and @kangyiwen - https://github.com/kelaberetiv/TagUI/issues/1219

In my view, having user-contributed JavaScript helper functions could be the secret sauce to accelerate adoption of TagUI to a much broader userbase. However, will still want to add that from people I heard from, even using commercial RPA tools like UiPath, they realise eventually that they have to learn programming like VBScript. This is because pre-defined functions, even if there are a lot, are never sufficient to meet the needs of all users. I would think most of these functions are related to dealing with data, and some are related to interacting with UI, eg collecting data by specifying starting XPath and ending XPath (for eg specifying the top left cell and bottom right cell of data to collect).

kensoh commented 2 years ago

Created the separate issue #1219 above, because my hunch is that is an idea with outsized impact to users, if executed well.

I would rank this idea on similar level as having AI recorder, desktop app. It would dramatically improve user experience.

kensoh commented 2 years ago

Adding on, look at this release https://github.com/kelaberetiv/TagUI/releases/tag/v4.0.0

So many improvements have been made to improve user experience. And this is only possible because @ck81 / https://www.iss.nus.edu.sg/about-us/staff/detail/461/YU%20Chen%20Kuang got to know about TagUI and gave a lot of feedback and feature requests. I believe when a passionate new user meets an open-source maintainer with open ears and wisdom to discern good ideas from not good ideas, a project can improve quickly in a short period of time.

I believe @kangyiwen is such a user. Of course, not all ideas can be feasible or good in the longterm, but the ideas certainly require review and consideration. You would be representing a new user demographic of TagUI future userbase.

kangyiwen commented 2 years ago

@kensoh 谢谢你的肯定,我自认为是个优秀的互联网产品经理,虽然我编程能力很弱,但我对 “简单,好用” 的追求是非常有信心的。我的第一份工作是CAD绘制,我不仅改了自定义菜单,甚至把所有快捷键全部改到了键盘左边,只是为了我的左手不用移动到键盘右侧,因为我感觉这样我就慢了一点点。

iPhone的流行就是因为不需要说明书,我认为未来在全球流行的RPA产品,一定是一款非常简单的RPA产品,30个基础功能用户一看就懂,能解决80%的日常RPA需求,学习成本降到最低,同时也提供高级版本给专业人士使用。

学 TagUI 感觉知识非常分散,都是各种开源工具的集合,潜在功能很多,但我不知道,也不会用,也没文档,因为目前TagUI的文档都是默认给程序员看的,而我不是程序员,甚至我英语都不好,还好有你们可以沟通,否则我肯定放弃了。

用户和水一样往“低”处留,学习门槛低、价格低、迭代快,如果学习氛围再好点,这就必定会流行起来。

kensoh commented 2 years ago

This thread has interesting feedback, maybe in future Zoom calls, Yi Wen can join again and highlight some ideas to Ruth.

I am very sure there will be a number of suggestions which can make it into TagUI newer versions.

This will certainly open up a new larger market segment. Only do it, @ruthtxh, if you are ready to support more users 🤣!