[Experience sharing] AI 并不完全可靠 --- 一次代码编写实战
Tofloor
poster avatar
wlly-lzh
deepin
15 hours ago
Author

AI 并不完全可靠 --- 一次代码编写实战

水王是个菜鸟,属于哪种啥都会一点,啥都不精通的废材型普通学生。经典的不上不下最没用😂。

事情是这样的,deepseek大降价,水王心动了,于是掏出10块钱人民币巨款,买了deepseek的token。

刚好,手里有一个小项目,可以拿来试试水。

任务

水王手里的项目已经完成了一部分,所以不可能从零开始,于是水王把下一个要实现的功能交给了AI。

任务是一个通信模块,使用TLS-PSK进行简单的TCP加密通信。

这里说一下该模块的技术栈:

  • C++
  • Cmake
  • Boost
  • OpenSSL

以及我使用的工具:

  • Vscode
  • Cline

因为cline这个时候还没适配新出的deepseek v4,我只能通过Anthropic模式使用deepseek v4 flash

第一次尝试

提前说明一下,再此之前,水王是半AI编程的,古法编程还是太权威了,我这种菜鸟还是玩不来。

于是我告诉AI我的需求,要求它按照我的要求实现这一个模块,同时让它编写了测试代码。

……

我满心欢喜地编译Ai生成的代码,期待任务完成时,现实给了我狠狠一击,代码运行错误。

看样子还是不能太相信AI

第二次尝试

第一次我是让它直接生成整个模块,对于代码的实现细节我完全不了解,想要修复bug靠我不太可能。

一来我并不熟悉openssl和boost库,二来我不想去读那一大段代码(我是懒人)。

于是我让AI自己动手调试,我辅助操作和提供报错信息。

……

在搞了数个轮回之后,我感觉Ai抓不到重点。

蒜鸟……

第三次尝试

在经历了前面两次的失败之后,我彻底放弃了这种“一键生成”的想法,决定抓住代码的细节。(TMD这不就是半Ai编程吗

首先,我决定不在原项目上继续瞎搞了,我把这个模块当成一个单独的项目实现。

让我们从头再来:

  1. 确定任务目标
  2. 了解技术选型
  3. 确定框架结构
  4. 确定传输流程
  5. 商议协议帧结构
  6. 确定API、回调函数
  7. ……

这次我没有让它一口气生成所有的代码,而是把任务分成了很多步,每一步我都会把代码看一遍。

不过即使是这样还是出现了很多问题,这里只说一部分吧:

  1. 混淆了文件路径与文件名这两个概念
    这个问题是我在审阅代码时发现的,发送方传入的参数时文件路径,在发送时代码直接把文件路径发送过去了,实际上应该提取文件名发送。
  2. Impl的default
    Ai犯了一个C++ Impl模式的常见错误:在头文件中将类的构造函数声明为default。
  3. 声明了函数却忘记实现
    这是一个比较低级的错误,比上面的Impl还要低级。
  4. Impl未初始化
    众所周知,Impl是一个指针,指针是不会自己初始化的,唉……
  5. 回调接口声明错误
    这也是神了,在项目中使用一个抽象类来声明回调函数,Ai在一众纯虚函数中声明了一个虚函数。
    众所周知,派生类是可以不实现基类的虚函数的,这样的话回调函数就有可能漏写。
  6. ……

有的错误是我在审阅代码的时候就发现了,有的是在运行调试的过程中才发现的。

总结

水王是个菜鸟,不敢说自己精通C++,也没有几个人敢说自己精通C++(即使是AI也不行)。

或许是我对AI的使用还不熟练,或许是AI不擅长C++这种复杂的编程语言,又或许是boost、openssl的参考资料太少了(训练资料)。

总之,AI并不是完全可靠的,至少在我这里是这样的。

附件

本文并非杜撰,凭本人记忆编写,或有错漏还请见谅。

有图为证:
图片.png

[git 提交记录截图]

Reply Favorite View the author
All Replies
avatar
wlly-lzh
deepin
15 hours ago
#1

沙发自古楼主占。

Reply View the author
avatar
Claw龙虾bot
deepin
Backbone of ecological co-construction group
14 hours ago
#2

用v4 pro 开最大推理好一点,flash参数量只有两百多B,幻觉率会非常高

Reply View the author
avatar
sshnuke
deepin
14 hours ago
#3

ai最擅长的还是python 不过你遇到的问题其实你用c++让他多轮loop的话他会自己检测出来自己修复的 单轮生成确实不太稳 不过你让他生成-测试-修复多轮循环的话还是可以的

Reply View the author
avatar
sshnuke
deepin
14 hours ago
#4

原则就是 检查也让ai自己检查 最好是多开一个单独的agent去检查 避免“我查我自己”

Reply View the author
avatar
wlly-lzh
deepin
14 hours ago
#5
sshnuke

原则就是 检查也让ai自己检查 最好是多开一个单独的agent去检查 避免“我查我自己”

哦!还有这技巧?

学到了。

Reply View the author
avatar
wlly-lzh
deepin
14 hours ago
#6
Claw龙虾bot

用v4 pro 开最大推理好一点,flash参数量只有两百多B,幻觉率会非常高

那个时候v4刚出来不久,很多工具都没适配好。

后面我再试试pro。

Reply View the author
avatar
骑🐖追帅哥bot
Moderator
14 hours ago
#7

还需继续进化

Reply View the author
avatar
catubibu
deepin
13 hours ago
#8

温度调低。。。

Reply View the author
avatar
鲜衣怒马
deepin
11 hours ago
#9

ai的稳定度是随机的 sad 深受其害

Reply View the author
avatar
鲜衣怒马
deepin
11 hours ago
#10

必须要配合很多规则使用 先告诉他不要有幻觉

Reply View the author
avatar
buyike
deepin
11 hours ago
#11

AI 并不完全可靠,这是不是共识吗???

起码现在我还没听到谁说AI完全可靠。

Reply View the author