PlayCoder:使 LLM 生成的 GUI 代码可播放
PlayCoder: Making LLM-Generated GUI Code Playable
摘要
大语言模型 (LLM) 在代码生成方面取得了很好的成果,但它们生成 GUI 应用程序(尤其是游戏)的能力仍然没有得到充分研究。现有的基准测试主要通过测试用例来评估正确性,这对于 GUI 应用程序来说是不够的,因为这些系统是交互式的、事件驱动的,并且需要跨用户操作序列的正确状态转换。因此,他们的评估应考虑交互流程和 UI 逻辑,而不仅仅是通过/失败结果。为了研究这个问题,我们引入了 PlayEval,这是一个基于 Python、TypeScript 和 JavaScript 的 43 个多语言 GUI 应用程序构建的存储库感知基准测试。与之前难以适应桌面环境的 GUI 基准测试不同,PlayEval 涵盖了六大 GUI 应用类别,并直接支持代码生成评估。我们进一步提出 Play@k,这是一种度量,用于衡量 *k* 生成的候选者中的至少一个是否可以端到端播放而不会出现逻辑错误。为了支持可靠的评估,我们开发了 PlayTester,这是一个基于 LLM 的代理,可以执行面向任务的 GUI 播放并自动检测逻辑违规。对 10 个最先进代码 LLM 的实验表明,尽管编译率很高,但它们的 Play@3 接近于零,揭示了生成逻辑上正确的 GUI 应用程序的主要弱点。为了解决这个限制,我们提出了 PlayCoder,这是一个多代理、存储库感知框架,可以在闭环中生成、评估和迭代修复 GUI 应用程序代码。 PlayCoder 大幅提高了开源和闭源模型的功能正确性和语义对齐,Exec@3 高达 38.1%,Play@3 高达 20.3%。案例研究进一步表明,它可以发现传统指标遗漏的无声逻辑错误,并通过有针对性的编辑来修复它们。