Github Copilot学习笔记
(一)Prompt Engineering
- 利用AI工具生成prompt
- 设计好的prompt结构
- 使用MarkDown语法,按Role, Skills, Constrains, Background, Requirements和Demo这几个维度描述需求。然后收输入提示词:作为 [Role], 拥有 [Skills], 严格遵守 [Constrains],根据[Background]和[Requirements], 参考[Demo]开始工作.
1.Specific Persona 明确Copilot的身份
-
好的例子
1.你是一个Senior的Typescript Developer,非常注重代码质量、抽象度、稳定性和代码执行效率
2.Break Down 任务拆解
-
原则
1.AI最了解AI自己,与AI聊天,合作完成任务的拆解
2.不要试图在一次对话或者一个文件中让AI全部扫描,让它自己做拆分逐个学习和理解,反复提问
3.Specific Requirements with Constrain 明确需求,包括输入输出和实现标准及约束条件
目的明确
确定约束条件
用什么语言或格式输出
可以提供示例
4.Keep the context Relevant保持上下文关联
-
原则
1.让AI逐个理解你的输入,询问它的疑惑点或者询问其是否对项目有了进一步的了解,check它理解的正确性,并考察它几个重要的概念,纠正它的错误理解,并最终让它编写“学习笔记”,形成Knowledge Bases的Local MD文件
2.在具体功能细节上使用注释和函数作用声明
3.在Setttings中声明Instructions,文件内包含了对Copilot的各种规范、规则、和期望
4.由于GitHub Copilot 的Search能力,除了自带的Github Search之外,得基于第三方Participant(比如Bing),所以结合ChatGPT的Search能力帮助其进行竞品分析,这也是一个获取其他相关材料来投喂的一种方式
5.可以主动询问AI一次可以分析多少条case
6.当AI无法分析PDF或DOC等文件时,可以让它提供代码,转化成文本文件,然后作为AI的输入
(二)Reviewing and Redifining Suggestions
- 原则
1.Check and then Accept, check的过程中如果发现AI理解或者建议错误,不要盲目接受,而是直接指出错误的地方,让它重新调整后再给出建议,不断的沟通和要求其调整,直到满意后才Accept
- 好的例子
1.明确告知AI你给的是A,而我想要B,避免机械地重复给我B
2.先对其认知,询问它对需求的理解是什么,问它有什么困惑,并给予逐一回答并再三确认,先给予再要求输出
3.直接重开一个Chat
(三)Efficient Collaboration
- 原则
从Chat到Edit到Inline,是一个从Overview到Detail,从整体到细节的过程,从High Level的讨论 (用Chat),到执行(Edit), 再到微调(Inline Suggestion)。这个流程下来,自己不用动手写一行代码,全程在指挥(聊天)
- 好的例子
1.GitHub Copilot其实在代码相关的功能方面表现比较有优势,比如代码、命令行、注释、数据库查询生成;API与框架设计;代码解释、Debugging;以及IaC方面的建议生成等。 结合VSCode,可以直接进行文件编辑,比如测试用例编写。
ChatGPT 则能够在代码之外给出更多更详细的建议,有趣的是,我跟ChatGPT了解该如何用好GitHub Copilot,它倒是给出了不少有效的建议。