起因:
使用某个通讯软件的机器人转发器,发放邀请码的时候,在转发链接的同时,有不明来源的 ip 来点击,高度怀疑信息泄露可能有安全隐患
加上这几天工作不太忙,有点自己的时间,想着自己做个转发器
经过:
之前购买了 ChatGPT Plus ,闲置了比较久,英语也没怎么做对话训练,正好可以派上用场,于是就拿来写代码了。
我是一个小白,一点编程基础都没有(说一点不懂也不准确,会懂一点数据库 select * from * where * 仅此而已)
于是我将我的需求,都说给了 ChatGPT ,让它一步一步教我如何做一个信息转发和自动回复的机器人,同时带一点安全属性
另外同时也试了 claude.ai ,不得不说,在编程这个领域 claude.ai 比 gpt 要聪明,要快,代码出错的概率小,输出的结果更符合我的预期。
可惜 claude 是免费的,用了几条就不让我用。但它的体验太好了,等腰包再膨胀一些就买它!
用了高性能的 vds 来编译成 docker 版本,等版本定了,我再把完成版本推送到 docker 上去,给大家做贡献 主程序写好了,再配合一个配置文件,还有前端的 display.html
结果: 看到效果了,网页显示+自动转发给我的主号,主号通过回复信息,能让用户收到信息 自此,机器人转发功能都切换到自己的服务器上,不用通过某通讯软件内的转发机器人,增加了安全性。
不过现在没有用户发送指定语句自动回复的功能,或许后续有时间再添加,现在全是人工操作
我的机器人链接: https://t.me/Bandwagon_invitation_codes_bot
肝了一个晚上,中年人身体吃不消。
通过这次的写程序体验,我有一个很强烈的不安全感,由此引发 2 个思考:
1 、中级及以下的程序员可能会失业,只有顶端程序员还能活下去。我的角色就是动动手输出要求,作为项目经理角色,人工智能给出结果,完全替代了程序员的工作,而且结果尚可(肯定很多漏洞,所以顶级程序员还有查漏的空间);
2 、现在有人工智能颠覆程序员、画师,那未来几年肯定有新的产品出来,再一次颠覆某个行业,到底什么才是安全的?
没有什么是不变的,或许这种对新事物的不安全感,会一成不变。
1
cmdOptionKana 4 天前
你的想法有很多问题,我提一点:以你这个程序为例,“项目经理”借助 AI 要搞一个晚上,而普通初级程序员一个小时就搞定了,工作效率差别巨大。
高级程序员就像建筑师,中低级程序员就像建筑工人,多数程序员在 AI 出现之前做的就是“熟练工”的角色,拼的是熟练度。在 AI 出来之后,拼的还是熟练度,没啥变化。项目经理之类的非程序员做做业余爱好可以,真的直接去做程序员的岗位,就这个熟练度,怎么干活? |
2
asanelder 4 天前 7
"一条代码也不懂的小白" =》"中级及以下的程序员可能会失业,只有顶端程序员还能活下去"
“连方便面也不会煮的小白” =》 “买了一个做饭机器人” =》“中级及以下的厨师可能会失业,只有顶端厨师还能活下去” |
3
NoOneNoBody 4 天前
始终还是那句话:掌控工具的是最底层的,掌控人的才是上层
这是亘古不变的定律,只要活在“社会”,就离不开这个,把我的下层全都淘汰了,我就成为“最下层” |
4
COW 4 天前 via Android
两个热知识,1.程序员的学习能力通常比一般人强,对 AI 的运用也比一般人更有效率,2.程序员每天的实际编程时间可能不到 10%,更多的时间是用在了思考,调试,沟通,协作上。
个人结论是,初中级程序员不一定会失业,但失业以后更可能会抢占掉其他人的位置。 |
5
Rorysky 4 天前
不要总是大惊小怪, 普通人通过 ai 工具变成水平从 0.1 到了 0.8 , 程序员通过 ai 工具,编程效率从 1 到 2
|
6
qiaobeier 4 天前 1
为啥我组里的妹子跟猴子一样,用了 AI 还整天给项目添💩,一天天的一个 fun 都能绕个五六层,一堆业务代码放到 Global Store 里面去,我真是服了!
|
7
XTTX 4 天前 4
"一条代码也不懂的小白" 是来引流的..............
|
8
kk2syc 4 天前
现在吹 AI 替代的这群人和当初吹 web3 元宇宙的如出一辙,搞不清楚还在装 P ,反正他们开心就好了。
|
9
qiaobeier 4 天前
@XTTX 明显的,光一个环境搭建就必须要掌握基础的软件工程知识,而且他还用了 docker 。也许具体到某个业务可以使用 ai 解决,但整体项目搭建肯定要有一定经验。
|
10
choryan 4 天前 via iPhone
让 ai 写个复杂的业务需求 跟客户探讨半天的那种 烧冒烟 ai 也写不出来
|
11
giter 3 天前 via iPhone
原来是引流的帖子,搬瓦工邀请码 bot 。
|
12
iorilu 3 天前
id 说明了一切
|
13
evan9527 3 天前
只会淘汰一种人,就是不会用 ai 的人。
|
14
speedmancs 3 天前
一条代码都不懂的小白会用 docker ? 别扯了。
|
15
speedmancs 3 天前 1
真正不懂代码的小白,是连打开 terminal 都会头晕的人,更不用说 docker 了
|
16
Tink 3 天前
小白不会知道还有 gpt 这种东西
|
17
kebamt 3 天前 via Android
有请 GPT 选手闪亮登场🤓
|
18
kebamt 3 天前 via Android
不过不丢人,但是 AI 还有很多局限性
|
19
walterdarrell063 2 天前
可白嫖 cursor.
慈鿋先付了 |
21
proxytoworld 2 天前
@speedmancs
你第一次写 hellworld 出来的黑框你会头晕? |
22
GeekGao 2 天前
很讨厌 affman 的这种哗众取宠的引流手段。
|
23
BestVPS OP @GeekGao 发个历程就能被定义为哗众取宠引流?现实生活中又不是写代码的,和程序员工作不沾边,写个历程发表下写代码的感受都能被定义为引流,只能说大佬心里有什么,看什么像什么。
|
24
tonytonychopper 2 天前
太颠覆了
|
25
cnbatch 2 天前
目前的 AI 用来生成 OP 这类简单任务能应付,稍微复杂点、比较新鲜或者没那么热门的,AI 直接错给你看
例如,问 ChatGPT: std::move_only_function 是哪个 C++标准的? 它会回答是 C++20 。然而正确答案是 C++23 。 如果依赖 ChatGPT 来写 C++20 标准的代码,很容易越写越翻车。 再一个例子,问 ChatGPT: var theName = "hello"u8; 这段 C# 代码的 u8 是什么意思?在哪个 C# 版本可以用? 或者 var theName = "hello"u8; What does 'u8' mean? Which C# version supports it? 它会乱答一通,说 C# 没有这种用法。 如果进一步提问: var theName = "hello"u8; 这段 C# 代码的 u8 后缀是什么?在哪个 C# 版本可以用? 那么它才有可能给出正确答案。 (小提示:u8 后缀是 C# 11 引入的) 如果想让 ChatGPT 帮忙重构代码,同样不能无脑相信,提问时的提示词必须多次更换,要不然同样越写越翻车。 |
26
encounter2017 1 天前
@cnbatch 你说的这两个问题我用 gpt 4o 版本验证了下都答对了:
Q: std::move_only_function 是哪个 C++标准的? A: std::move_only_function 是 C++23 标准新增的功能。 它是 std::function 的一种变体,专门用于只允许移动而不允许复制的可调用对象。std::move_only_function 提供了更高效的语义,特别适合需要独占所有权的场景(例如异步任务调度、回调管理等)。 这个类型定义在头文件 <functional> 中。 Q: var theName = "hello"u8; 这段 C# 代码的 u8 是什么意思?在哪个 C# 版本可以用? A: 在 C# 中,u8 是 UTF-8 字符串文字后缀,用于表示一个字符串文字是 UTF-8 格式的字节数组。这一特性是在 C# 11 中引入的。 特性解释 csharp 复制代码 var theName = "hello"u8; "hello"u8: 表示将字符串 "hello" 编码为 UTF-8 字节数组。 结果类型为 ReadOnlySpan<byte>,它是一个不可修改的字节序列。 行为: 这段代码的作用是将字符串 "hello" 转换为 UTF-8 编码格式的字节序列。 例如,"hello"u8 会被编译为字节数组 { 0x68, 0x65, 0x6C, 0x6C, 0x6F }。 C# 版本 u8 后缀是在 C# 11 中引入的,因此你需要确保以下环境支持: 语言版本:C# 11 或更高。 .NET SDK:需要 .NET 7 或更高版本支持。 应用示例 csharp 复制代码 using System; class Program { static void Main() { var theName = "hello"u8; Console.WriteLine($"Type: {theName.GetType()}"); Console.WriteLine($"Bytes: {string.Join(", ", theName.ToArray())}"); } } 输出: vbnet 复制代码 Type: System.ReadOnlySpan`1[System.Byte] Bytes: 104, 101, 108, 108, 111 适用场景 高效处理 UTF-8 数据: 避免字符串在内存中多次编码转换。 与低级字节处理结合: 更容易与 Span<byte> 或 Memory<byte> 结合使用。 序列化和网络通信: 适合在序列化或处理网络协议时直接操作字节。 注意事项 只读: u8 后缀生成的是 ReadOnlySpan<byte>,不能直接修改。 如果需要可修改的字节数组,可以使用 .ToArray() 方法转换为 byte[]。 C# 版本要求: 如果代码未在支持 C# 11 的环境中运行,会导致编译错误。确保项目文件启用了 C# 11: xml 复制代码 <LangVersion>11</LangVersion> 通过 u8 后缀,可以简化对 UTF-8 编码数据的处理,同时利用 ReadOnlySpan<byte> 的性能优势。 |
27
Fastmail 1 天前
错误的,ai 不能背锅,程序员可以
|
28
cnbatch 1 天前
std::move_only_function 这段,我昨天无意中告诉过它是 C++23 标准,似乎它记住了。
不过第二条提问倒是依然乱答,摘抄开头一段: “在 C# 中,u8 并不是一个标准的数据类型,因此这段代码中的 u8 看起来是一个语法错误,或者是误用了其他语言中的数据类型符号。” 不清楚是不是地区或椅子的原因,以至于我访问时 OpenAI 给出降智版 |
29
cnbatch 1 天前
对于没那么热门的,ChatGPT 直接答错,例如:
在 FreeBSD14 的/boot/loader.conf 设置了 net.fibs=3 ,如何把 FIB 0 (主路由表)的条目全部复制到其他 FIB 当中? 它会给出一段脚本,像是这样的: for route in $(netstat -rn -f inet | awk 'NR>2 {print $1}'); do route -F 1 add $route done 然而这段脚本是错的,FreeBSD 的 route 命令并不存在“-F”这种参数。 |
30
GiggleSmile 1 天前
没必要焦虑,有生之年是见不到 ai 替代人类。
|