业界动态
让AI给你写代码(六)- 结合语意匹配,引导AI小助手逐步完善代码,新增功能(上)
2024-12-27 14:10

本文是接着让AI给你写代码,初体验(三)- AI加上格式化对话,实现对单个文件的修改/保存

回顾一下当时实现的需求,对AI生成代码实现保存,然后再打开,修订后再保存。 那么能不能再往前进一步,真正实现输入文字需求,逐步引导AI小助手生成代码、然后执行代码,保存代码,并且在原代码基础上,根据新增输入提示需求,修改或者新增代码实现功能的逐步集成,进而构建一个较为完整的AI辅助编码的应用(仍然使用通义千问大模型)。
我们分为上下两部分分享,上半部分将应用代码的修改,下半部分,用一个例子实现用提示最后生成代码,包含应用数据获取及绘图,这里先说上半部分。

先回顾一下AI加格式化对话实现对单个文件的修改和保存的流程
主人: 要求打开本地指定代码
小助手: 打开本地指定代码,并反显
主人:要求结合这段代码和新需求,增加一个功能
小助手: 将这段代码和新需求提交给AI,并反显AI给出的建议
主人: 要求修改
小助手:将修改要求提交给AI,并反显AI给出的建议
主人:要求合并代码
小助手:将合并代码的要求提交AI,并反显
主人: 要求保存代码
小助手:将AI给的代码提取保持
主人:退出对话
小助手:结束对话

现在这个流程基本上可以改进为(斜体部分
主人: 要求打开本地指定代码
小助手: 打开本地指定代码,并反显
主人:要求结合这段代码和新需求,增加/修改一个功能
小助手: 将这段代码和新需求提交给AI,并给出新增功能后的代码
主人要求执行代码
小助手执行代码并反显结果
主人要求保存代码
小助手将AI给的代码保存到指定文件

主人:要求退出对话
小助手:结束对话
(执行功能目前仅限于python
然后用相近语意识别改进格式化正则匹配,使得小助手更加智能一些,例如输入“请打开文件XXXX”,““麻烦打开XXX文件” AI小助手都可以识别到**“打开文件”操作, 输入"请保存代码",“请保存文件”,都可识别为“保存文件”**操作… 此为其一,据此小助手要做的操作可按字典定义为

 

直接匹配到要操作的函数

这里的关键是选择相似语意匹配的工具,需要注意的必须同时满足两个要求
1) 这几个操作关键词之间要有足够的区分度
2 ) 与这几个操作关键词不想干的语句需要有足够的区分度
需要用到中文词汇预训练模型或者其他工具,我尝试了及种

  1. HuggingFace的bert-base-chinese预训模型
  2. nltk近义词函数nltk.edit_distance
  3. sentence-transformers的paraphrase-multilingual-MiniLM-L12-v2预训模型

其中,HuggingFace的bert-base-chinese预训模型下载和安装可以参考在Hugging Face上下载并使用Bert-base-Chinese
bert-base-chinese模型可以下载到本地,计算语义相似度的用法如下

 

HuggingFace的bert-base-chinese的问题主要是,操作关键词之间的区分度不够,比如"保存文件"和““打开文件”相似度就是 0.9359,过于相近

nltk近义词函数nltk.edit_distance函数用法

 

计算结果
2
0
2
4
4
与输入语意最相似的词汇是: 保存文件
基本满足要求

sentence-transformers的 paraphrase-multilingual-MiniLM-L12-v2模型,下载安装和初步应用可参考 [原创]python计算中文文本相似度神器

具体应用如下

 

计算各操作项的自相似结果矩阵如下
tensor([[1.0000, 0.5882, 0.4500, 0.3998],
[0.5882, 1.0000, 0.3156, 0.2404],
[0.4500, 0.3156, 1.0000, 0.3043],
[0.3998, 0.2404, 0.3043, 1.0000]])
拉的是比较开的,相对效果比较好 ,当然也不是没有问题,比如"麻烦保存代码",会识别成"执行代码" (nltk.edit_distance函数也会是这个结果,解决办法在操作集中增加1个操作项,“保存代码”和“保存文件”指向的操作一致

operation_set = {
“打开文件”: assistant.openFile,
“保存文件”: assistant.saveFile,
“保存代码”: assistant.saveFile,
“执行代码”: assistant.executeCode,
“结束对话”: assistant.endTalk
}
解决了语意相似性的问题,我们看看主要的代码修改,这里只标注修改部分,原先代码还是请移步让AI给你写代码,初体验(三
主程序

 

需要注意的是
1 因为语意匹配对两个待比较的短语长度非常敏感,需要预处理,我们这里简化,去掉英文符号(主要是文件名,路径等,保留中文主干,函数remove_non_chinese如下

 

2 匹配函数就是找一个最接近的操作,为预防误操作因此要控制匹配相似度(similarity,这里选0.7 大致上可以匹配 {‘运行代码’ : ‘执行代码’ } {‘麻烦执行上述代码’ : ‘执行代码’}等等… 如果全部操作匹配不上,就向外网 AI大模型提交

3 匹配函数的归一化处理 op_reply = operation_setoperation #匹配执行 取消参数,参数输入在之前有方法执行 assistant.setMessage(message) # 向小助手提交主人的消息

然后我们看一下 AI助手程序

 

这里需要说明的是 filepathMatch函数用了正则表达式匹配文件去掉路径后的文件名
为满足匹配需要,至少需要输入 /file.xxx 而不是 file.xxx

    以上就是本篇文章【让AI给你写代码(六)- 结合语意匹配,引导AI小助手逐步完善代码,新增功能(上)】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/11420.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
为什么现在人们都在做自媒体,真的能挣到钱吗?还是别的原因呢?
只有极少一部分人能挣到钱,连百分之一也不到。一个月你能挣到100块钱,你已经算是出类拔翠的了。许多人忙了整整一年,也很有可
TikTok闯关,小红书躺赢?
这年头,谁人不为流量发愁。两家不同风格的社交平台,正因此陷入各自的应战状态。1月14日,来自TikTok难民的泼天的流量,正在疯
盐城城南新区热搜小区榜:万科悦达·翡翠云台为何成用户心头好?
在当前房地产市场风起云涌的背景下,每一个小区的热搜情况都将映射出购房者的心理和市场趋势。上周(1月13日-1月19日),盐城城
AI智能体:天工AI,解放双手,高效写作
#### 二、解放双手,高效创作的秘密武器在快节奏的工作和生活中,时间是最宝贵的资源。天工AI通过自动化处理大量重复性劳动,如
2024年度榜单TOP20|聚焦三大领域两大人群
2024年,发现报告平台累计更新了817,467篇报告,3,934,125条数据,156个报告专题;大家在发现报告共搜索了17,764,708次,其中AIG
致欧科技进驻小红书:如何借助年轻消费趋势重塑品牌形象
在当今消费市场,年轻人正在引领潮流,尤其是在社交媒体平台如小红书上,他们的影响力不容小觑。金融界在1月20日的报道中提到,
抖音移动营销推广-抖音推广营销广告
在当今数字化时代,移动营销推广已成为企业拓展市场、提升品牌知名度和增加销售额的重要手段,而抖音,作为全球(黑帽seo)的短视
经验总结“微信链接拼三张开挂技巧辅助器工具”分享装挂详细步骤
尊敬的微信链接拼三张游戏爱好者们,你是否曾经在游戏中遇到过难以逾越的关卡、强大的对手,或是一直无法获得胜利而感到沮丧?现
小红书用户画像深度解析:90后女性主导,Z世代与都市潮人引领潮流
小红书增长迅速,月活跃用户数高达2亿,创作者数量超过4300万。用户群体画像鲜明,对于想要在小红书上开展运营的新手来说,这具
2025年第3周:食品饮料行业周度市场观察
食品丨市场观察 本周看点: -食品饮料2024 “健康”成为胜负手; -六大类目,谁是2024市场份额增长TOP5? -2025年食饮营销有哪些