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

如何正确使用 ChatGPT 写程序? 好难啊

  •  
  •   ellermister · 2023-06-14 15:54:20 +08:00 · 2277 次点击
    这是一个创建于 563 天前的主题,其中的信息可能已经有所发展或是发生改变。

    编写一个 PHP 函数, 实现把输入的文本中的英文、数字和中文混合连在一起文字部分的字符拆开增加间距(空格)并返回。

    比如:

    • "dns2socks 启用" 要处理成为 "dns2socks 启用"
    • "写一个 helloworld 的程序" 要处理成为 "写一个 helloworld 的程序"
    • "包括数字的字符, 比如 14:30 要去做某件事" 要处理成为 "包括数字的字符, 比如 14:30 要去做某件事"

    最终使得长篇文字看起来增加阅读体验,不会把中英文挤在一起。

    以上是我对 chatgpt 提供的基础需求, 无论我怎么纠正修改,它反复修改就是没有理解我的意思,甚至写的代码都有报错的。 写的都是些啥- -.

    我用的免费 3.5 ,方法不对吗? 还是我表达的不能够达到机器理解的程度。

    test

    test2

    15 条回复    2023-06-16 15:35:01 +08:00
    crissx
        1
    crissx  
       2023-06-14 17:11:20 +08:00   ❤️ 1
    可能你的表达是有问题,这处理前和处理后的字符串不都一模一样的吗
    k0305916q
        2
    k0305916q  
       2023-06-14 17:19:02 +08:00
    额,3.5 ,4 都试过~发现 4 ,不仅能给出更好的代码,还能告诉我题目所隐藏的条件。。。顺便纠正我的错误描述。并最终给出,若你坚持这么做的话,可以加个 if 来判断的最终代码。
    所以我的结论是,若不想专精 prompt ,用 4 会更好。
    usedTo404
        3
    usedTo404  
       2023-06-14 17:34:08 +08:00
    @crissx V2EX 好像自动实现了 op 的需求
    LeegoYih
        4
    LeegoYih  
       2023-06-14 17:38:10 +08:00
    我目前用 chatGPT 帮我生成大致思路,它写代码大概率运行不了或者瞎编的。
    让他优化一个 BFS 代码,分析的头头是道,结果返回的代码狗屁不通。
    ellermister
        5
    ellermister  
    OP
       2023-06-14 18:28:34 +08:00
    @crissx 是的刚发现,可能是 v2 自动格式化了。我原本是没空格的,中英文连接在一起的。
    Puteulanus
        6
    Puteulanus  
       2023-06-14 18:31:46 +08:00
    https://chat.openai.com/share/e34ab9f8-cd66-43be-8ef8-4f8206c0fcc8
    拿你例子里的几个跑了下好像还行,它那个正则就不想仔细 review 了。。
    用的也是 3.5 ,它最后给出的运行结果是错的,实际运行输出“我爱 OpenAI2023”,符合描述的英文和数字不要隔开
    zxfgds
        7
    zxfgds  
       2023-06-14 18:39:11 +08:00
    3.5 不行的, 3.5 能做下面这种工作: 比如 你要定义 某种状态 ,包括: 部分状态的中文名....
    然后, 我们告诉 gpt: 我需要给 *** 定义状态, 其中包括 *** ,*** , 你帮我完善所有`状态`, 并且生成对应的 `英文状态名`, `状态中文名` 和 `状态英文名` 由你来决定 ,要符合命名规范, 最后,帮我生成 映射 map 等等...

    它做这个飞快.


    假如想直接写代码, 还是要 4 的 , 并且 有时候他的思路并不行 , 你要引导它.
    ellermister
        8
    ellermister  
    OP
       2023-06-14 18:44:33 +08:00
    @Puteulanus 你的这个答案确实可以用,看来还是需求描述不同导致的。
    ellermister
        9
    ellermister  
    OP
       2023-06-14 18:47:27 +08:00
    @zxfgds 引导没用,很多时候很烦,每次纠正他,他都道歉,然后并没有修正错误。就像一个小孩,你要想从各个角度没有考虑到的东西,收集出来输出给他、教他。

    就差把解题思路分解成一步步的,让他翻译成代码。

    反复多了就很累,不如自己整理思路去做。
    Puteulanus
        10
    Puteulanus  
       2023-06-14 19:10:13 +08:00   ❤️ 1
    @ellermister 我的经验是 3.5 必须把需求、步骤描述清楚,类似于对结对编程里的新手一样,比如我上次让它写跨俩表遍历查找的,最开始说“根据 A 表的信息从 B 表查询”,它居然写了个遍历 B 表的。我后来改成详细的告诉它过程,“遍历 A 表所有条目,以学号为唯一标识,查找 B 表中学生信息,如果 XX 信息为 XX 则。。”,生成出来的就对了

    还有一旦它写错了,千万别让它改,除非真的只有一丁点很明显的错误,不然改起来绝对是无底洞。如果它写出的状况你描述的没想到,就直接改描述重新提交生成;如果它写的根本对不上描述,或者不能运行,就直接点按钮重新生成。AI 生成一份的效率很高,你让它多生成几份挑一份只有小错误的自己再改改,要比把它写得不能跑的改到能跑快得多
    cloud2000
        11
    cloud2000  
       2023-06-14 19:18:57 +08:00
    必须, 必须, 用 4.

    和 3.5 较劲有时也能成功, 但是费那个功夫其实不如自己写了.
    Alias4ck
        12
    Alias4ck  
       2023-06-14 19:55:31 +08:00
    xdygxh
        13
    xdygxh  
       2023-06-14 21:01:47 +08:00
    说白了,3.5 只适用于,你自己有思路了,但是懒得动手,让他帮你写,而且你还要把详细的思路给他,这样不会出错。
    eastphoton
        14
    eastphoton  
       2023-06-14 21:22:33 +08:00
    跑去尝试了三次,
    两次会话是只让他修复了一次就给出了正确代码,
    一次会话是越改越歪。
    chengyiqun
        15
    chengyiqun  
       2023-06-16 15:35:01 +08:00
    还不如用 bing 生成的代码
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   933 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 21:10 · PVG 05:10 · LAX 13:10 · JFK 16:10
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.