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,它倒是给出了不少有效的建议。

(四)Improvement

相关推荐
果粒橙_LGC14 分钟前
论文阅读系列(一)Qwen-Image Technical Report
论文阅读·人工智能·学习
yiqiqukanhaiba2 小时前
STM32学习笔记13-通信协议I2C&MPU6050&I2C软件控制
笔记·stm32·学习
code bean2 小时前
【halcon】Halcon 开发笔记: gray_histo_abs 报错陷阱
笔记
Warren983 小时前
软件测试-Selenium学习笔记
java·javascript·笔记·学习·selenium·测试工具·安全
在路上`4 小时前
前端学习之后端小白java的一些理论知识(框架)
java·学习
练习时长两年半的Java练习生(升级中)5 小时前
从0开始学习Java+AI知识点总结-18.web基础知识(Java操作数据库)
java·学习·web
Jayyih5 小时前
嵌入式系统学习Day19(数据结构)
数据结构·学习
xy_recording6 小时前
Day08 Go语言学习
开发语言·学习·golang
山烛6 小时前
矿物分类系统开发笔记(二):模型训练[删除空缺行]
人工智能·笔记·python·机器学习·分类·数据挖掘
黑客影儿6 小时前
黑客哲学之学习笔记系列(三)
笔记·学习·程序人生·安全·职场和发展·网络攻击模型·学习方法