
最近体验了一把AI编程,不是传统意义上的AI代码自动完成,或者写comment,让AI按照comment来实现代码,而是完全由AI自主进行设计,自主进行开发,自主进行问题的修复,实现一个完整的功能的开发工作。
我使用的是微信开发者工具开发一款小程序的一个AI助手,这个AI助手会作为一个AI心理医生,对咨询者进行初步的心理问答,并形成下一步的干预计划。
开发中我使用了一款最近很火的代码助手Codebuddy,我们需要在微信开发者工具的插件市场中按装这款插件。
安装完成以后,就可以让AI干活了。Coebuddy包括两个tag,一个是Craft模式,一个是Chat模式。Chat模式就是传统的对话式辅助编程,我这里主要体验的是Craft模式,目的让AI进行完成自主编程。
开始之前,我以及在工程的app.json中注册了一个页面,系统会自动产生对应的空代码。打开Craft界面,我输入以下提示词:
“在pages/biz-admin/medrecord-assistant/目录下按照微信小程序的结构实现AI病历助手的完整功能,需要修改index.js,index.wxml, index.wxss. 使用wx.cloud.extend.AI.createModel("deepseek")进行deepseek模型的调用,并给出一个心理治疗病历的prompt,让deepseek模仿一个心理医生和格式化要求编写病历”
https://mpvideo.qpic.cn/0b2eeucdcaael4ad32r5efufijodgesqimia.f10002.mp4?dis_k=7776cc0a5d865e4cded9d00b0ebf5739&dis_t=1749456577&play_scene=10120&auth_info=C/Gewa5NSV4zuYW+lVgnRxM3a043Hg5zahAYQXV2IFw6SVs3A2JSE0QLbGtDMipnBz0=&auth_key=1488a0807555f5ceead64d03f327576e&vid=wxv_4009367727172222991&format_id=10002&support_redirect=0&mmversion=false
时长02:30
随后,Codebuddy就开始干活了,它先检查了这个目录下的文件,确认是空文件后, 进行了工作规划。
现在我已经了解了所有文件的状态,它们都是基本的空文件。我需要实现一个完整的AI病历助手功能。我将按以下顺序实现:
1. 首先实现index.wxml,创建用户界面,包括:
后面,依次创建了index.wxml, index.wxs和index.js 文件。在这个过程中,用户需要确认让其直接修改目录文件,Codebuddy会将修改过程动态在界面中进行展现,并用+/-来标示出哪些行做了增减修改。用户可以观察其对代码的修改过程。
等这一轮完成后,我们看看代码能不能运行。界面能够成功打开,但是不出意外的话,还是出了意外,AI模型没法调用成功。于是后面就开始了代码调试的过程,让先让Codebuddy自己检查为什么调用不成功,它经过一些尝试后没法解决,我就到网上找了一段示例代码给它,它读懂了示例代码,然后重新修改了模型调用方法,模型就成功调用到了。
,时长03:25
后面又进行了性能的优化,比如只在装载的时候初始化AI模型。又要求Codebuddy对界面进行了优化,比如增加伸缩按钮可以扩大对话框显示界面,让Codebuddy增加语音输入按钮和功能,当然涉及到功能代码调用时,还是需要人工介入进行问题的解决。不过,用Codebuddy明显减少了代码工作量还有界面开发的工作量,其生成的界面要比我手动coding要来得美观。
不过这个过程出现了bug,比如问了很多轮后,后面修改index.js 就开始偷懒,不变的代码就不再输出,用// ... 其他数据保持不变 ... // ... 其他方法保持不变 ...
之类的注释来代替,如果你不注意的话(此时人已经完全放任其对代码的操控了),就丢失了之前正常的代码。
于是我就又让其恢复前面的代码,Codebuddy倒是记住前面的内容,然后在对话框中给出完整的index.js,估计它也是怕直接修改代码再引发问题吧。我只有手动检查和复制了被省区的代码。
整体上来讲,一开始的过程还是挺顺利的,尤其是界面和css的修改。不可避免还会需要程序员来介入解决一些其无法解决的逻辑问题,还有就是程序员还是需要有一定的架构认知,不能它生成什么就是什么,需要做一定的代码调优。