- 建立一个markdown文件记录prompt
- 写明程序目的
- 写明程序实现目的的方法/流程
- 注明编程风格,要求GPT4写出函数的作用描述、输入、输出,但不必列出函数的具体实现。
- 由GPT4生成函数设计
- 注明需要使用的库,列出库中的几个典型示例,复制之上所有部分交GPT4生成代码
- debug,将代码和报错一起交给GPT4,询问错误出现的原因,并修改。注意GPT4的知识过时,有可能引用不存在的库中的函数方法,可能需要以ChatPDF或者Bing Chat协助或者手动找到对应的函数,并找到说明或者示例,一同交给GPT4生成新代码。
- 记录debug要点于文件中。
在使用GPT4协作编程时,program恢复了其本来的含义:做事情的过程。
当把程序本身完成任务的方法和过程向GPT解释清楚以后,它就可以进一步细化。
这种自上而下的过程就是SICP一开始就在讲解的,现在在GPT的协助下,你更可以保持一部分黑箱暂时不必打开,专心设计大的架构即可。由于GPTx总有个输入输出的长度限制,所以自上而下逐层分解任务,能够将后续debug的过程限制在较小的范围内进行,能够适应有限长度的输入输出。
好吧,给个例子,其实跟把大象放进冰箱差不多。
- 题目:为ppt撰写演讲词
- 目的:读取一个ppt中的所有文本,依次为每一页撰写演讲词
过程设计
- 读取pptx文件
- 读取ppt中每一页的文字,包括正文中的文字和备注中的文字。
- 对于第i页,令GPT依据全部文字和第i页的文字撰写演讲词
- 将演讲词单独保存为markdown文件
函数设计
以Python撰写,以函数式编程的风格撰写结构化程序,最终以main()调用。
需要用的库
python-pptx, markdown
以上为人工设计,此处开始问GPT:“针对上述过程,请设计出相应的函数,列出每个函数的作用描述、输入、输出,但不必列出每个函数的具体实现。”
GPT会回复给你:
- read_pptx(file_path: str) -> List[str]
作用描述:读取pptx文件并返回包含每一页的文本内容的列表
输入:文件路径(字符串)
输出:包含每一页文本内容的列表(字符串列表)- extract_text_and_notes(slide: pptx.slide.Slide) -> str
……
人工看看这些描述,是否有问题。如果有问题,可以加入要求:
- generate_speech()函数应当使用query_gpt3获取gpt的回复
- prompt应当使用如下……
- 不同页面的演讲词之间应当以xx分隔
然后,打开cursor,ctrl+k,(或者ChatGPT网页) 把上面所有的东西选上贴进去。等着。
如果cursor运行着停了,你觉得还有没输出完的,记得我们要求最终以main()调用,所以还没出main()函数,说明没完。
这时候再ctrl+k,说continue,等它输出完。
这样你就有了最初的程序。
这个任务比较简单,修正个一两次就过了。
这里没什么特殊的,就是告诉GPT做事情的过程,1234,不涉及什么高深算法。
当然里面有高深算法,根据ppt页面的内容产生演讲词,这在几个月前还是非常高深的算法,现在也还是,只是你可以丢给GPT去解决。
于是剩下的就是化简ctrl+C/V的操作。你打算怎么做就告诉它就好。
至于打算怎么做一件事情,那才是程序设计的核心。
推荐