我读了你删除的帖子,并同意那也是我认为非常有潜力的想法之一。
但我认为这还不够。我最近读的一篇论文,同样不是权威性的,但它更详细地阐述了这方面的观点,是
John Chen 和 Uri Wilensky 的《ChatLogo:一个由大型语言模型驱动的混合自然编程语言接口,用于基于代理的建模和编程》(pdf)
对我来说,一些关键的要点是:
- 支持初学者以编程语言和自然语言的混合方式“与计算机对话”。
- 为没有或很少有计算机科学背景的学习者提供一个更友好的界面,让他们通过编程来创造性地表达自己。
- ChatLogo 不会立即编写代码并给出指令,而是试图澄清学习者的需求和意图。
- 它不会直接将大块代码发送给学习者,而是尝试与学习者共同开发 NetLogo 代码。学习者可以自由编辑代码:无论是用 NetLogo,还是通过“Ask”功能用自然语言。
- 它不会过度声称代码的正确性,而是承认可能出错的可能性,并与学习者合作解决潜在问题。
我找不到任何源代码或关于 Chat 如何构建在 NetLogo 之上或如何与 NetLogo 集成的更多细节,但这些想法本身就很有价值。
这又让我想起了飞机上的自动驾驶仪以及我之前提到的那本书。(参考)当我提到自动驾驶仪时,不要只想到一个二元开关,要想到所有那些向自动驾驶仪提供信息,并告诉自动驾驶仪该做什么和不该做什么的旋钮和开关。
虽然似乎许多其他类似的工具喜欢使用“copilot”这个词,例如谷歌搜索“llm copilot source code”,但我倾向于不同意这种类比,但不得不接受它,因为这就是找到相关想法的方式。