V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
bmpidev2019
V2EX  ›  程序员

完全用 GPT4 分析业务、做架构设计与编码实现复杂系统的一些经验

  •  1
     
  •   bmpidev2019 ·
    madawei2699 · 2024-03-01 14:26:03 +08:00 · 8886 次点击
    这是一个创建于 377 天前的主题,其中的信息可能已经有所发展或是发生改变。

    耗时几个月开发完一个复杂服务,完全用 ChatGPT4 持续在一个会话里开发完成的,累计耗费 Token 达百万级别,我尽可能不自己去写代码与修改代码,以此来探索模型的极限。

    目前我的投资助手策略服务是我开发过最复杂的一个服务之一,如果没有 GPT 的帮助,我个人能力难以实现这些功能。

    目前的一些收获如下:

    • 用 GPT 写复杂代码的门槛降低了,直观的感受就是写一个上千行代码的项目,所需的编码能力变低,你甚至不需要写代码,只需要让 ChatGPT 帮你写帮你修改。
    • 不需要写代码并不意味着不需要编码能力,要驾驭好大模型写复杂代码还需要你对代码有一定的理解,因为模型一旦被引导到错误的方向,就会越来越离谱,此刻需要你有识别与纠错的能力。
    • 模型的窗口已经非常大了,这意味着它可以记忆很长的上下文,但在细节上会有一些小错误,这和人脑的表现很类似,所以在持续沟通中需要一些快照(一种高度浓缩技术或业务上下文的 DSL )的方式来加强模型的记忆,细节处需要你来纠错。
    • 大模型未来自己写业务代码是完全可能的,普通码农被替代是必然的,时间可能也很快,从现在起,去尽早思考未来的出路。最起码要有驾驭模型的能力。
    • 驾驭模型的能力,并不简单的是提问题的能力,更是分析解决问题的能力,编码能力的重要性极大的降低了。现在需要你提高解决问题的能力。我们与模型是合作关系,因为模型的能力并不比你低,它只需要正确的引导,把它看作你结对编程的高级开发者吧。
    • 另外一个令我震惊的事是:ChatGPT 不仅技术上可以编码,在架构上可以帮助设计,还能从业务的角度上做合理性的分析设计,尤其是通用的知识领域,比如投资交易,它的理解程度并不低,所以这套系统在设计之初是我弄的初稿,但后面的重新设计是与 ChatGPT 一块完成的,它的表现非常出色,并不只是一个编码工具。

    50 条回复    2024-03-07 17:27:55 +08:00
    jones2000
        1
    jones2000  
       2024-03-01 14:47:38 +08:00
    直接录一个简单的软件功能操作视频, 可以直接生成代码吗?
    Scarb
        2
    Scarb  
       2024-03-01 14:54:29 +08:00
    之前用 gpt4 的时候感觉他的记忆能力不太行,几次对话之前的内容它已经记不清了,需要再次提醒。所以比较好奇 op 是怎么做到的
    bthulu
        3
    bthulu  
       2024-03-01 14:56:15 +08:00
    能不能把线上工单丢给 GPT, 让它自己去处理 bug
    tomatocici2333
        4
    tomatocici2333  
       2024-03-01 14:56:59 +08:00
    @Scarb 加太长的话 有时候就脑雾了
    Haku
        5
    Haku  
       2024-03-01 14:57:50 +08:00
    @Scarb 写代码不一样,正在写的部分会一直被回复出来,远一些的对话要么是现在的迭代前版本,要么已经不是正在写的模块了。很少出现你写到现在突然回到原本的地方重写的问题。
    bmpidev2019
        6
    bmpidev2019  
    OP
       2024-03-01 15:04:38 +08:00 via iPhone
    @Scarb 在持续沟通中需要一些快照(一种高度浓缩技术或业务上下文的 DSL )的方式来加强模型的记忆。
    bmpidev2019
        7
    bmpidev2019  
    OP
       2024-03-01 15:04:57 +08:00 via iPhone
    @bthulu 未来应该可以的,现在能看得到。
    Scarb
        8
    Scarb  
       2024-03-01 15:41:27 +08:00
    @bmpidev2019 这个具体是咋做呢,有没有一些示例或者教程
    pandaPapa
        9
    pandaPapa  
       2024-03-01 15:47:16 +08:00
    @bmpidev2019 #6 怎么弄快照? 有教程吗? 我发现问三次以上 错误率就太高了
    cskeleton
        10
    cskeleton  
       2024-03-01 15:48:54 +08:00
    @Scarb #2 我之前用免费版的 ChatGPT 也遇到这个问题
    bmpidev2019
        11
    bmpidev2019  
    OP
       2024-03-01 16:12:11 +08:00 via iPhone
    @pandaPapa 没有教程,个人经验
    lyyQAQ
        12
    lyyQAQ  
       2024-03-01 16:45:43 +08:00
    一个对话页面的长度没有限制是吗
    flyv2x
        13
    flyv2x  
       2024-03-01 16:56:20 +08:00
    不错的尝试,如果能模块化各个步骤给人使用是个好的实践
    xmoiduts
        14
    xmoiduts  
       2024-03-01 17:00:44 +08:00 via Android
    一个月 20 的硬性门槛很难受,但尝试绕过这个门槛更难受。
    我在使用 API 套壳网页( slickgpt )+自备 token 来做翻译和编程两类任务。虽然前期成本低了,但上下文稍微一多( 1w+ token ),每句话就变得很贵。
    Yucxxxxxx
        15
    Yucxxxxxx  
       2024-03-01 17:13:57 +08:00
    请问有对比过 GPT3.5 的差距吗?谢谢!
    bmpidev2019
        16
    bmpidev2019  
    OP
       2024-03-01 17:22:11 +08:00 via iPhone
    @Yucxxxxxx 差距巨大
    @lyyQAQ 页面没有长度限制,但实际上会遗忘之前到记录,有个内置窗口大小的限制
    rioshikelong121
        17
    rioshikelong121  
       2024-03-01 17:22:42 +08:00
    你好 dawei, 除了用快照,你有用到什么特殊的技巧来指导 LLM 吗?除了 OpenAI 官方推荐的哪些最佳实践之外的技巧?
    https://platform.openai.com/docs/guides/prompt-engineering

    我感觉写 Prompt 也是一件很麻烦的事情,你有用到什么 Prompt 管理工具么?或者就是用一般的 Snippets 来进行管理的?
    bmpidev2019
        18
    bmpidev2019  
    OP
       2024-03-01 17:42:01 +08:00 via iPhone   ❤️ 1
    @rioshikelong121 无非是 few shot 之类的技巧,因为 4 的理解能力已经很好了,3.5 的一些 prompt 其实没必要。用 GPT 用的好并不是 prompt 技巧好导致的,提合适的问题,去发现 gpt 回答存在的问题,寻找合适的方向解决问题,这些才是最重要的,也是用好它的关键。
    bmpidev2019
        19
    bmpidev2019  
    OP
       2024-03-01 17:44:12 +08:00 via iPhone   ❤️ 1
    @rioshikelong121 管理 prompt ,我一般直接用一个 markdown 文件存储整个工程开发的记录。目前这个服务已经有一万五千行的与 gpt 对话的记录了。
    cutchop
        20
    cutchop  
       2024-03-01 21:45:06 +08:00
    等 gemini 1.5 吧,可以把整个项目丢进去问
    LeeReamond
        21
    LeeReamond  
       2024-03-02 04:57:15 +08:00   ❤️ 3
    写一个上千行代码的项目(习作水平)所需的代码能力变低,也许。毕竟说实话习作水平的代码能力都需要降低的市场需求原先可能被叫做低码平台还是啥的,我不是很清楚。但是这和标题的架构设计有啥关系,看了半天没看懂。另外你这图里,你的分析业务基于 sqlite 提供支持?想必是个大规模业务。
    bmpidev2019
        22
    bmpidev2019  
    OP
       2024-03-02 07:55:32 +08:00 via iPhone
    @LeeReamond 上千行代码有没有可能是写了几千行然后重构又删了几千行,最终保留下上千行的规模?这个规模对个人产品来说并不小。架构设计是因为一开始我设计了一个架构图上传给 chatgpt vison 来告诉它上下文,然后基于初始的架构开始设计系统,之后经过一系列的分析改进,这个架构和之前的已经完全不同,因为我并没有把初始草稿展示出来。所以架构设计在这里 chatgpt 是全程参与并改进的。
    业务的复杂度无法在这里简单展示出来。整个系统涉及到了十几个服务,目前这个上千行代码的规模只是其中一个较复杂的服务之一。整体的架构图我也没有在这里展示。具体的产品功能可以看这两个网站自行理解吧:

    - https://www.myinvestpilot.com/portfolios
    - https://www.chat2invest.com/

    最后再次说明,这些产品代码 90%(粗估)都是用 chatgpt 写出来的,我个人只是负责提供设计、验证与测试它的代码。
    daoqiongsi1101
        23
    daoqiongsi1101  
       2024-03-02 19:11:59 +08:00
    为什么不直接用 github copilot
    bmpidev2019
        24
    bmpidev2019  
    OP
       2024-03-03 05:13:41 +08:00 via iPhone
    @daoqiongsi1101 对比了下,copilot 效果就是差,不如 gpt4 ,也没有 vision 功能
    LeeReamond
        25
    LeeReamond  
       2024-03-03 05:37:10 +08:00
    @bmpidev2019 就你写代码是需要反复改的,别人写代码都是一遍成的是吧。至于规模,你开心你就好
    bmpidev2019
        26
    bmpidev2019  
    OP
       2024-03-03 17:25:10 +08:00 via iPhone
    @LeeReamond 用过 gpt 的话你不会有这种结论。
    vcbal
        27
    vcbal  
       2024-03-04 11:45:57 +08:00
    @LeeReamond 哈哈哈,最后那句 可以,这个我给满分
    sunzhuo
        28
    sunzhuo  
       2024-03-04 12:07:34 +08:00
    开发智能 Agent 是大势所趋啊。
    killpanda
        29
    killpanda  
       2024-03-04 12:18:12 +08:00
    @bmpidev2019 这个能开放部分内容学习一下么
    daliusu
        30
    daliusu  
       2024-03-04 12:27:44 +08:00
    我之前用 gpt 写代码,发现在一些描述比较困难,边界条件很多的地方,他会给埋下一些坑,比较熟悉的能发现,不熟悉的可能跑一遍没问题就过了,然后真正碰到生产环境就 gg ,不过我用的是 3.5 ,不知道 4 改善了没,现在主要还是用它处理一些边界少,但是比较麻烦自己写起来头疼的东西,以及让他给个思路我参考一下然后自己写自己处理各种边界
    prenwang
        31
    prenwang  
       2024-03-05 13:09:35 +08:00
    越快把自己从 coding 上干下岗最好, 我一天至少 300-1000w Token , 从不节省, 和每天使用低于 10 万 token 的玩家, 我觉得很难交流。

    我现在热衷于使用类似 AutoGen 来 24 小时不间断实验,不断调优。 压缩 toekn 这个活太浪费时间, 当然我也不是无脑消耗。

    用的越多越狠, 你就会不断触摸到 GPT 的延伸能力空间, 大量的实验耗费巨量 Token 后就可能获得一个相对不错的操作逻辑。

    “你开心就好” 这种精神胜利法还是不要了吧, 保持开放心态,AI 时代,想象力没有上限。

    对一些 “现实底层逻辑” 的笃定不过是思维懒惰的借口。
    bmpidev2019
        32
    bmpidev2019  
    OP
       2024-03-06 10:17:21 +08:00
    @prenwang coding 工作的重要性不断降低直到绝大部分的 coding 都是被生成的,当然不止 coding ,任何内容创作类的都可以被生成,人类最终从创作为主变成消费为主,消费 AI 创作的内容,这是不可避免的。既然大方向如此,作为从业者,越早接受这个事实越好。
    LinYa
        33
    LinYa  
       2024-03-06 10:46:54 +08:00
    @bmpidev2019 #19 你好,请问你是如何保存起来的,每次都把提问和回答复制到 md 文件吗?还是有其他工具可以辅助?
    thinkm
        34
    thinkm  
       2024-03-06 10:51:33 +08:00
    不知道 gpt4 能不能解决 github 上面的 issue ,有个项目已经累计 100 来个 issue 了。如果能用 gpt 解决就好了
    dford
        35
    dford  
       2024-03-06 10:56:28 +08:00
    现在很多人对 AI 的态度是这样的:
    人:帮我写个淘宝 app 。
    AI:blabla...
    人:什么辣鸡…
    BRX3
        36
    BRX3  
       2024-03-06 11:35:34 +08:00
    应该基于 langchain 构建一个 agent 历史数据应该向量化落地到向量数据库,在 agent 通过 RAG 实现上下文检索增强。只用 chatGPT4 要实现你的需求,至少从效率上来说是非常低效的
    prenwang
        37
    prenwang  
       2024-03-06 11:44:26 +08:00
    @bmpidev2019 人还是有价值的, 情绪,想象力,同理心, 创造真正伟大的内容这些是必不可少的。
    prenwang
        38
    prenwang  
       2024-03-06 11:49:28 +08:00
    @dford 总结的很到位, 包括身边很亲近的人都可能是这样, 我身边就有几个用过我免费提供的 ai 后, 还要跟我发起脾气,或者吐槽智障显示优越感, 我老婆因为一段时间看我不顺眼打死也不用 AI 。
    wyman222
        39
    wyman222  
       2024-03-06 11:53:23 +08:00
    感谢 op 的经验分享,如果能把您创作两个网站和具体怎么使用 AI 来编程的经验分享一下就好了,看到你现在的分享就很感兴趣了。
    maolon
        40
    maolon  
       2024-03-06 12:43:31 +08:00 via Android   ❤️ 1
    以我的经验来看的话最好不要在一个对话里完成整个流程,一旦开始错误/偏离方向就重开对话然后把“快照”搬过去, 他的准确度是在 gpt4 的最大 token 窗口内最准确,然后超出窗口的内容也是 rag 的形式实现,只不过 openai 的实现比较高级,召回率比较高
    R4rvZ6agNVWr56V0
        41
    R4rvZ6agNVWr56V0  
       2024-03-06 13:17:25 +08:00
    我觉得,AI 还是个优秀实习生的级别,是个绝对能提升效率的工具,但是完全替代是不行的,也不必特别恐慌。
    cheneydog
        42
    cheneydog  
       2024-03-06 14:51:12 +08:00
    楼主用的官方 gpt4 服务?
    总共算一个项目 gpt 花费了多少成本呢?
    blankmiss
        43
    blankmiss  
       2024-03-06 15:47:37 +08:00
    gpt 在写样式上很垃圾
    clifftts
        44
    clifftts  
       2024-03-06 16:04:40 +08:00
    如何保证 gpt 在语义指令理解上不会出错,保证他在理解正确的基础上回答的答案一定是对的
    elonlo
        45
    elonlo  
       2024-03-06 19:08:00 +08:00
    我最近也在想,如何将某个 github 代码库全部喂给 chatgpt ,然后围绕这个库回复我的问题,有谁做过的吗?
    Pending
        46
    Pending  
       2024-03-06 22:57:55 +08:00
    @elonlo 同问,就是懒得看源码,想让它读完源码直接回答我的问题。
    youthfire
        47
    youthfire  
       2024-03-07 00:42:33 +08:00 via iPhone
    用到现在,不考虑视觉,函数和模型专业化,我感觉还是第一代最强,所以我都是用 api 指定 0314 版本,当然成本也最高。看 reddit 上的说法,还是因为处理逻辑改变了,为了提速和降低成本,有些复杂逻辑的,其实对比下现在的 turbo 和 0314 初代,很明显。 因为订阅的网页版不能像 api 一样选择老模型,最近索性取消订阅,纯走 api 了。
    bmpidev2019
        48
    bmpidev2019  
    OP
       2024-03-07 17:09:59 +08:00 via iPhone
    @maolon 我几个月在一个会话测试下来,感觉不影响,一个会话完全是可以的。
    @cheneydog plus 会员一个月固定 20 刀。
    @blankmiss 用 tailswind 写样式效果还不错。
    @clifftts 就算是人来写代码都很难保证正确性,你需要给它合适的反馈才行。
    @youthfire 4 的 api 根本用不起。
    sampeng
        49
    sampeng  
       2024-03-07 17:26:07 +08:00   ❤️ 1
    podel
        50
    podel  
       2024-03-07 17:27:55 +08:00
    plus 会员的对话数量完全不够呀。 现在都是直接买第三方便宜的 token 。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1634 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 16:51 · PVG 00:51 · LAX 09:51 · JFK 12:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.