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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/65834.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

android分区和root

线刷包内容: 线刷包是一个完整的android镜像,不但包括android、linux和用户数据,还包括recovery等。当然此图中没有recovery,但是我们可以自己刷入一个。 主要分区 system.img 系统分区,包括linux下主要的二进制程序。 boot.img…

RabbitMQ基础(简单易懂)

RabbitMQ高级篇请看: RabbitMQ高级篇-CSDN博客 目录 什么是RabbitMQ? MQ 的核心概念 1. RabbitMQ 的核心组件 2. Exchange 的类型 3. 数据流向说明 如何安装RabbitQueue? WorkQueue(工作队列): Fa…

大数据环境搭建进度

1.使用虚拟机的系统:centos7.xLinux 2.资源不足,使用云服务器: 1. 3.使用远程登录进行操作 用xshell 4.任务 1.虚拟机装好 2.设置IP地址 3.可以联网 4.设置远程登录访问 5.创建module和software目录,修改两…

线程安全问题介绍

文章目录 **什么是线程安全?****为什么会出现线程安全问题?****线程安全问题的常见场景****如何解决线程安全问题?**1. **使用锁**2. **使用线程安全的数据结构**3. **原子操作**4. **使用volatile关键字**5. **线程本地存储**6. **避免死锁*…

pytorch小记(七):pytorch中的保存/加载模型操作

pytorch小记(七):pytorch中的保存/加载模型操作 1. 加载模型参数 (state_dict)1.1 保存模型参数1.2 加载模型参数1.3 常见变种1.3.1 指定加载设备1.3.2 非严格加载(跳过部分层)1.3.3 打印加载的参数 2. 加载整个模型2.…

Mysql--运维篇--主从复制和集群(主从复制I/O线程,SQL线程,二进制日志,中继日志,集群NDB)

一、主从复制 MySQL的主从复制(Master-Slave Replication)是一种数据冗余和高可用性的解决方案,它通过将一个或多个从服务器(Slave)与主服务器(Master)同步来实现。主从复制的基本原理是&#…

【EI会议征稿通知】第十一届机械工程、材料和自动化技术国际会议(MMEAT 2025)

本次大会旨在汇聚全球机械工程、材料科学及自动化技术的创新学者和行业专家,为他们提供一个卓越的交流与合作平台。随着全球对可持续技术和智能制造需求的不断增加,MMEAT 2025将重点关注这些领域的最新发展趋势和未来前景。此次大会的主要目标是推动机械…

OpenCV基础:视频的采集、读取与录制

从摄像头采集视频 相关接口 - VideoCapture VideoCapture 用于从视频文件、摄像头或其他视频流设备中读取视频帧。它可以捕捉来自多种源的视频。 主要参数: cv2.VideoCapture(source): source: 这是一个整数或字符串,表示视频的来源。 如果是整数&a…

解读Linux Bridge中的东西流向与南北流向

解读Linux Bridge中的东西流向与南北流向 在现代云计算和虚拟化环境中,网络流量的管理和优化变得越来越重要。Linux Bridge作为Linux内核提供的一个强大的二层交换机工具,在虚拟化和容器化应用中扮演着至关重要的角色。本文将深入探讨Linux Bridge中的两…

在线实用工具 json格式化,base64转码,正则表达式测试工具

1、在线json格式化工具: https://json.openai2025.com/ 2、在线base64转码工具 https://base64.openai2025.com/ 3、在线正则表达式测试工具 https://reg.openai2025.com/ 4、在线去水印工具 https://watermark.openai2025.com

java 中 main 方法使用 KafkaConsumer 拉取 kafka 消息如何禁止输出 debug 日志

pom 依赖&#xff1a; <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.14.RELEASE</version> </dependency> 或者 <dependency><groupId>org.ap…

车联网安全--TLS握手过程详解

目录 1. TLS协议概述 2. 为什么要握手 2.1 Hello 2.2 协商 2.3 同意 3.总共握了几次手&#xff1f; 1. TLS协议概述 车内各ECU间基于CAN的安全通讯--SecOC&#xff0c;想必现目前多数通信工程师们都已经搞的差不多了&#xff08;不要再问FvM了&#xff09;&#xff1b;…

RuoYi Cloud项目解读【四、项目配置与启动】

四、项目配置与启动 当上面环境全部准备好之后&#xff0c;接下来就是项目配置。需要将项目相关配置修改成当前相关环境。 1 后端配置 1.1 数据库 创建数据库ry-cloud并导入数据脚本ry_2024xxxx.sql&#xff08;必须&#xff09;&#xff0c;quartz.sql&#xff08;可选&…

C#对象池

一、资源管理的困境与破局 在软件开发的征程中&#xff0c;我们时常陷入资源管理的泥沼。以一个繁忙餐厅为例&#xff0c;每个顾客都急需一个盘子盛美食&#xff0c;可盘子数量有限&#xff0c;如果每次顾客用完盘子后&#xff0c;都不假思索地去清洗一个全新的盘子来供下一位…

Vue.js组件开发-如何使用moment.js

在Vue.js组件开发中&#xff0c;需要处理日期和时间&#xff0c;moment.js 是一个非常有用的库。moment.js 提供了丰富的API来解析、验证、操作和显示日期和时间。 步骤&#xff1a; 1. 安装moment.js 首先&#xff0c;需要通过npm或yarn安装moment.js。在项目根目录下运行以…

微信小程序mp3音频播放组件,仅需传入url即可

// index.js // packageChat/components/audio-player/index.js Component({/*** 组件的属性列表*/properties: {/*** MP3 文件的 URL*/src: {type: String,value: ,observer(newVal, oldVal) {if (newVal ! oldVal && newVal) {// 如果 InnerAudioContext 已存在&…

要避免除数绝对值远远小于被除数绝对值的除法

要避免除数绝对值远远小于被除数绝对值的除法 用绝对值小的数作除数&#xff0c;舍人误差会增大&#xff0c;如计算 x y \frac xy yx​,若 0 < ∣ y ∣ < ∣ x ∣ 0<|y|<|x| 0<∣y∣<∣x∣&#xff0c;则可能对计算结果带来严重影响&#xff0c;应尽量避免…

深入了解OpenStack中的隧道网络

在OpenStack环境中&#xff0c;隧道网络是一项关键技术&#xff0c;它确保了虚拟机之间以及虚拟机与外部网络之间的安全通信。通过隧道机制&#xff0c;我们可以有效地隔离不同租户的流量&#xff0c;并支持多租户环境下的复杂网络需求。之前我们介绍了隧道网络&#xff0c;下面…

4. scala高阶之隐式转换与泛型

背景 上一节&#xff0c;我介绍了scala中的面向对象相关概念&#xff0c;还有一个特色功能&#xff1a;模式匹配。本文&#xff0c;我会介绍另外一个特别强大的功能隐式转换&#xff0c;并在最后介绍scala中泛型的使用 1. 隐式转换 Scala提供的隐式转换和隐式参数功能&#…

pandas与sql对应关系【帮助sql使用者快速上手pandas】

本页旨在提供一些如何使用pandas执行各种SQL操作的示例&#xff0c;来帮助SQL使用者快速上手使用pandas。 目录 SQL语法一、选择SELECT1、选择2、添加计算列 二、连接JOIN ON1、内连接2、左外连接3、右外连接4、全外连接 三、过滤WHERE1、AND2、OR3、IS NULL4、IS NOT NULL5、B…