上一篇中,AI生成web应用初步解决了简单web应用生成,但是存在两方面的问题
1) 无法向AI提供增量需求,特别是一个对话结束之后,只能把全部需求(包括新需求)再描述一遍
2) 无法用AI对存量代码进行修改,代码存在一定的不稳定性
当然解决的思路很简单,只要能让ai能读入单个文件,然后就可以通过对话驱动AI修改代码了,问题在于千问(Qwen)大模型不能读取本地文件… 怎么办,换个思路,读取本地文件根本不需要AI,只需要程序读取后喂给AI即可, 所以对单个文件的修改和保存可以归纳为:
主人: 要求打开本地指定代码
小助手: 打开本地指定代码,并反显
主人:要求结合这段代码和新需求,增加一个功能
小助手: 将这段代码和新需求提交给AI,并反显AI给出的建议
主人: 要求修改
小助手:将修改要求提交给AI,并反显AI给出的建议
主人:要求合并代码
小助手:将合并代码的要求提交AI,并反显
主人: 要求保存代码
小助手:将AI给的代码提取保持
主人:退出对话
实际上我们只要设计一个代理小助手,他要做的事情分为两类,一类是基本确定的事情,可以用格式化对话,正则表达式提取关键信息,形成操作方法,一类是需要转交给AI进行处理的方法,于是做了个小助手程序assist.py(省略 import和 API Key,请自行补充)
Assistant小助手程序主要实现,打开文件、保存文件、提交AI并处理AI回复等功能,注意小助手会hold住前一次的输入内容,以实现打开文件获取内容并向AI提交,并会hold住AI回复的内容以备主人要求保存文件
主程序如下:
主程序就是实现了和小助手的格式化对话,即需要
1) 输入:打开XXXX文件,小助手就会打开XXXX文件
2) 输入: 保存文件,小助手就会按预设文件名和路径的提取内容,保存文件
3)输入: 结束对话,小助手就会结束对话
我们看一下效果,执行主程序
我觉得可以综合应用,小助手agent方式和通义灵码进行编码,可能更好一些