惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

P
Proofpoint News Feed
Microsoft Azure Blog
Microsoft Azure Blog
Jina AI
Jina AI
博客园_首页
宝玉的分享
宝玉的分享
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
T
Tailwind CSS Blog
雷峰网
雷峰网
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Hugging Face - Blog
Hugging Face - Blog
月光博客
月光博客
罗磊的独立博客
F
Fortinet All Blogs
酷 壳 – CoolShell
酷 壳 – CoolShell
Stack Overflow Blog
Stack Overflow Blog
J
Java Code Geeks
V
V2EX
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
The GitHub Blog
The GitHub Blog
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 聂微东
U
Unit 42
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
D
Docker
阮一峰的网络日志
阮一峰的网络日志
I
InfoQ
Simon Willison's Weblog
Simon Willison's Weblog
D
DataBreaches.Net
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Scott Helme
Scott Helme
B
Blog
M
MIT News - Artificial intelligence
K
Kaspersky official blog
H
Help Net Security
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
Engineering at Meta
Engineering at Meta
博客园 - 【当耐特】
L
Lohrmann on Cybersecurity
P
Privacy & Cybersecurity Law Blog
Project Zero
Project Zero
The Hacker News
The Hacker News
B
Blog RSS Feed
T
Tor Project blog

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派 万字剖析:千问App深度体验报告(2026) - 少数派 在2026年,如何真正防止别人抄袭你的作品 - 少数派 怎么用 50 块搭个 AI 语音助手?我踩了 3 天坑 - 少数派 YeeroAI:让 AI 对话真正成为知识管理的一部分 - 少数派 爬泰山 - 少数派 「旅图显影」 App 更新:这次,我们补上了一点「手感」 - 少数派 假期出门太折磨?我的 23 条经验帮你规划惬意旅行 - 少数派 工作流会变吗 - 少数派 Claude Opus 4.6 怎么用最省钱?我测了 5 种方案 - 少数派 GPT Image 2 让图文并茂不再稀罕 - 少数派 用户侧出发——什么是AI,我要不要学习? - 少数派 找片、转存、整理、播放一条龙!让你的付费网盘值回票价 - 少数派 欢迎试用!日课一问2.0插件 - 少数派 自己做的MDeditor,原本想购买 Typora 试了两次支付不成功,干脆自己做一个 - 少数派 vibe coding了一个 3MB 的小工具,让 ~/Downloads 彻底告别混乱 - 少数派 因为受不了 Mac 的风扇策略,我做了一个风扇控制工具 - 少数派 别只怪模型 - 少数派 Warp 终端的 AI 功能怎么用?我测了一周的体验 - 少数派 AI 写代码老是出 bug?这 5 个配置我后悔没早知道 - 少数派 「新玩意」苹果出相机可能就这样:Sigma BF + 45mm F2.8 DG Contemporary - 少数派 一个面向2030年的AI操作系统是什么样子的:浅谈cola这款有灵魂的Agent - 少数派 别只看写代码 - 少数派 每天解决10个问题,还是一口气攻坚解决400个? - 少数派 AI 交易机器人怎么搭?我用 Claude 跑了一周实盘 - 少数派 Maptoposter Online:把你爱的城市画成艺术海报 - 少数派 Function Calling 怎么用?我测了 3 个模型发现差距真大 - 少数派 Legend Talk:我做了个 AI 圆桌,让 160 位思想家围着你的问题转 - 少数派 如何找到自己的蓝方?在小县城寻找压力测试 - 少数派 语音输入与软件接口|2026年聊AI时,我们都聊些什么(上) - 少数派 混动已经卖爆,纯电又来补刀——钛7闪充版简直“不讲武德” - 少数派 本月玩什么|朋友收藏、识质存在、沙罗周期 - 少数派 为什么要每天坚持输出? - 少数派 Claude API 挂了好几个小时,你的项目有备用方案吗? - 少数派 Function Calling 没你想的复杂——我用它做了个有点用的工具 - 少数派 登录系统立即播放视频或者图片音乐的软件 - 少数派 我为什么创建 FlipHTML5 下载工具 - 少数派 残局没电?多品牌外设电量统一管理软件EasyBluetooth已支持RTSS游戏内显示以及AIDA64 - 少数派 前往通义路的路 - 少数派 太好看了,媲美Sun的个人导航页,NAS部署星云门户 - 少数派 乌黑嘴唇“一键检测”上线了 - 少数派 派早报:Claude AI 接入多个创意软件生态、FILCO 生产方接手品牌等 - 少数派 【更新】BearCLI、Claude 连接器与 MCP 服务器 - 少数派 记了上千条流水,还是看不懂财务?我做了一个让 AI 读懂账本的工作台 - 少数派 MINI R56 升级原厂 Sport 模式 - 少数派 新玩意 | 一棵柠檬树(仿真版) - 少数派 Momenta的“物理AI”野望,需迈过“含摩量”这道关 - 少数派 网页直接投屏控制手机!NAS一键部署PandaScrcpy,流畅丝滑可远程。 - 少数派 众测|邀你一同探索随身 AI 硬件入口 YoooClaw C·ONE - 少数派 2050大会:分享时间是真诚 参会记 - 少数派 iPad 赋能电影创作:国内首部宣纸手绘长片《燃比娃》的幕后故事 - 少数派 AI的审美:我用 8 个大模型给 100 张旅行照片打分 - 少数派 普通人如何破圈?去参加一个本地协会 - 少数派 把极空间的图标全换了,主题DIY全攻略打造你的专属NAS桌面 - 少数派 电子便签墙,帮你实现便签自由 - 少数派 我如何用三个 CLI 工具取代文档创建需求 - 少数派 原来真的有人可以玩一辈子 - 少数派 社区速递 139 | 派友热议三月买了啥、复古单反尼康 Df 体验 - 少数派 06 作品的赏析与评价 - 少数派 TDS REVIEW|索尼 WF-1000XM6 降噪真无线耳机体验 - 少数派 35.98万起售的第二代腾势D9,我看重的不是堆料,而是不凑合 - 少数派 鼠须管 Squirrel 皮肤配置指北 - 少数派 从watch ultra2换到redmi watch6 - 少数派 派早报:阿里巴巴发布视频生成模型 HappyHorse 1.0 等 - 少数派 别迷信1M - 少数派 家人们天塌了!网盘“大封杀”,多个渠道多条路,NAS部署PanHub - 少数派 AI与人勾心斗角!NAS一键部署AI狼人杀,假日休闲必备。 - 少数派 电商必备!Comfyui工作流批量生图插件,一次生成12张!支持Nano banana pro模型 - 少数派 Comfyui工作流配置Gpt-image-2模型教程,0.03/张 - 少数派 OpenClaw第三方APi怎么配置?可使用Gpt-image-2模型 - 少数派 会员社区话题精选 Ep. 103 - 少数派
如何使用 GitHub Copilot:提示、技巧和使用案例 - 少数派
2024-03-22 · via 少数派
GitHub Copilot X 公告

生成式AI编程工具正在改变开发者处理日常编码任务的方式。从文档化我们的代码库到生成单元测试,这些工具帮助加速了我们的工作流程。然而,就像任何新兴技术一样,总有一个学习曲线。因此,开发者——无论是初学者还是有经验的人——有时会感到沮丧,因为AI驱动的编程助手没有生成他们想要的输出。(听起来熟悉吗?)

例如,当我们请求GitHub Copilot使用p5.js(一个用于创意编程的JavaScript库)绘制一个冰淇淋甜筒🍦时,我们一直收到不相关的建议——有时甚至根本没有任何建议。但当我们了解更多关于GitHub Copilot处理信息的方式后,我们意识到我们需要调整与它交流的方式。

这是GitHub Copilot生成不相关解决方案的一个例子:

当我们向GitHub Copilot写这个提示时,

当我们调整我们的提示后,我们能够生成更准确的结果:

当我们向GitHub Copilot写这个提示时,

我们自己既是开发者也是AI爱好者。我,Rizel,使用GitHub Copilot构建了一个浏览器扩展石头、剪刀、布游戏,以及发送一条推文。而我,Michelle,在2016年启动了一家AI公司。我们都是GitHub的开发者倡导者,热爱分享我们使用GitHub Copilot的顶尖技巧。

在这份GitHub Copilot指南中,我们将涵盖:

  • 什么是提示以及什么是提示工程(暗示:这取决于你是在与开发者还是机器学习研究者交谈)。
  • 使用GitHub Copilot进行提示构建的三个最佳实践和另外三个额外技巧。
  • 一个你可以尝试使用GitHub Copilot帮助你构建浏览器扩展的例子。
img

进步胜于完美

即使有了使用AI的经验,我们也认识到每个人都处于与生成式AI技术试错的阶段。我们也知道提供通用的提示构建技巧的挑战,因为模型各不相同,开发者正在处理的个别问题也各不相同。这不是一个一劳永逸的指南。相反,我们在分享我们关于提示构建所学到的知识,以加速在这个软件开发新时代的集体学习。

什么是提示以及什么是提示工程?

这取决于你与谁交谈。

在生成式AI编程工具的上下文中,提示可以根据你是在询问正在构建和微调这些工具的机器学习(ML)研究者,还是在他们的IDE中使用它们的开发者,意味着不同的事情

对于这份指南,我们将从在IDE中使用生成式AI编程工具的开发者的视角定义这些术语。但为了给你一个完整的画面,我们还在下面的图表中添加了ML研究者的定义。

1. 用一个高层次的目标设定舞台。🖼️

如果你有一个空白文件或空的代码库,这是最有帮助的。换句话说,如果GitHub Copilot对你想要构建或完成的事情没有任何上下文,为AI搭档程序员设定舞台可以非常有用。它有助于用你希望它生成的大局描述来启动GitHub Copilot——在你深入细节之前。

在提示GitHub Copilot时,想象这个过程就像与某人对话:我应该如何分解问题以便我们可以一起解决它?我会如何与这个人进行对编程?

例如,当在Next.js中构建一个markdown编辑器时,我们可以这样写评论

/*
在Next.js中创建一个基本的markdown编辑器,具有以下功能:
- 使用react hooks
- 为markdown创建状态,带有默认文本“在此处输入markdown”
- 一个用户可以编写markdown的文本区域
- 实时显示我输入的markdown文本的预览
- 支持基本的markdown语法,如标题、粗体、斜体
- 使用React markdown npm包
- 将markdown文本和生成的HTML保存在组件的状态中,并实时更新
*/

这将提示GitHub Copilot生成以下代码,并在不到30秒内生成一个非常简单、未加样式但功能完整的markdown编辑器。我们可以用剩余的时间来设计组件:

我们使用这个提示在Next.js中使用GitHub Copilot构建了一个markdown编辑器:- 使用react hooks - 为markdown创建状态,带有默认文本

注意:这种详细程度有助于你创建更理想的输出,但结果可能仍然是非确定性的。例如,在评论中,我们提示GitHub Copilot创建一个说“在此处输入markdown”的默认文本,但它却生成了“markdown预览”作为默认词语。

2. 让你的请求简单且具体。目标是从GitHub Copilot那里得到一个简短的输出。🗨️

一旦你向AI搭档程序员传达了你的主要目标,阐述它为实现该目标需要遵循的逻辑和步骤。当你将事情细分时,GitHub Copilot更好地理解你的目标。(想象你在写一个食谱。你会将烹饪过程分解成离散的步骤——而不是写一段描述你想做的菜肴的文字。)

让GitHub Copilot在每个步骤之后生成代码,而不是要求它一次性生成一堆代码。

这是我们向GitHub Copilot提供逐步指示以反转函数的一个例子:

我们通过一次写下六个提示让GitHub Copilot反转了一个句子。这允许GitHub Copilot在移动到下一个文本之前为一个提示生成一个建议。这也给了我们在移动到下一个步骤之前调整建议代码的机会。我们使用的六个提示是:首先,如果句子的第一个字母不是“I”,让我们把句子的第一个字母变成小写。接下来,让我们把句子分割成一个单词数组。然后,让我们从句子中取出标点符号。现在,让我们从句子中移除标点符号。让我们反转句子并将其重新连接起来。最后,让我们把句子的第一个字母大写并添加标点符号。

3. 给GitHub Copilot一个或两个例子。✍️

对于人类和你的AI搭档程序员来说,从例子中学习都是有用的。例如,我们想要从下面的数据数组中提取名字,并将其存储在一个新的数组中:

const data = [
[
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 }
],
[
{ name: 'Bob', age: 40 }
]
];

当我们没有向GitHub Copilot展示一个例子时……

// 遍历对象数组的数组以转换数据
const data = [
[
{ name: 'John', age: 25 },
{ name: 'Jane', age: 30 }
],
[
{ name: 'Bob', age: 40 }
]
];

const mappedData = data.map(x => [x.name](http://x.name/));

console.log(mappedData);

// 结果:[undefined, undefined]

它生成了一个错误的map使用方式:

const mappedData = data.map(x => [x.name](http://x.name/));

console.log(mappedData);

// 结果:[undefined, undefined]

相比之下,当我们提供了一个例子时……

// 遍历对象数组的数组
// 示例:从数据数组中提取名字
// 期望结果:['John', 'Jane', 'Bob']
const data = [
[{ name: 'John', age: 25 }, { name: 'Jane', age: 30 }],
[{ name: 'Bob', age: 40 }]
];

const mappedData = data.flatMap(sublist => sublist.map(person => person.name));

console.log(mappedData);

我们得到了我们想要的结果。

const mappedData = data.flatMap(sublist => sublist.map(person => person.name));

console.log(mappedData);
// 结果:['John', 'Jane', 'Bob']

阅读更多关于AI训练的常见方法,如零次学习、一次学习和少次学习

使用GitHub Copilot进行提示构建的三个额外技巧

这里有三个额外的技巧来帮助指导你与GitHub Copilot的对话。

1. 尝试你的提示。

就像对话更多是一门艺术而不是科学一样,提示构建也是如此。因此,如果你第一次尝试时没有收到你想要的内容,请按照上述最佳实践重新构建你的提示。

例如,下面的提示很模糊。它没有为GitHub Copilot提供任何上下文或边界来生成相关建议。

# 为grades.py编写一些代码

我们对提示进行了迭代,以使其更具体,但我们仍然没有得到我们正在寻找的确切结果。这提醒我们,增加你的提示的具体性比听起来更难。从一开始就很难知道你应该包括关于你的目标的哪些细节,以从GitHub Copilot那里生成最有用的建议。这就是我们鼓励实验的原因。

下面这个提示的版本比上面的更具体,但它没有清晰地定义输入和输出要求。

# 在grades.py中实现一个计算平均成绩的函数

我们再次尝试了提示,这次通过设置边界并概述我们希望函数执行的操作。我们还重新表述了评论,使函数更清晰(给GitHub Copilot一个清晰的意图来验证)。

这一次,我们得到了我们想要的结果。

# 在grades.py中实现函数calculate_average_grade,它接受成绩列表作为输入并返回平均成绩作为一个浮点数

2. 保持几个相关标签页开启。

我们没有确切的标签页数量,你应该保持开启以帮助GitHub Copilot对你的代码进行上下文化,但根据我们的经验,我们发现保持一到两个是有帮助的。

GitHub Copilot使用了一种称为邻近标签页的技术,这允许AI搭档程序员通过处理你的IDE中打开的所有文件而不仅仅是你正在工作的单个文件来对你的代码进行上下文化。然而,并不保证GitHub Copilot会认为所有打开的文件都是对你的代码必要的上下文。

3. 使用良好的编码实践。

这包括提供描述性变量名和函数,以及遵循一致的编码风格和模式。我们发现,与GitHub Copilot合作鼓励我们遵循我们在职业生涯中学到的良好编码实践。

例如,这里我们使用了一个描述性的函数名称,并遵循了代码库利用蛇形大小写的模式。

def authenticate_user(username, password):

结果,GitHub Copilot生成了一个相关的代码建议:

def authenticate_user(username, password):
# 用于验证用户的代码
if is_valid_user(username, password):
    generate_session_token(username)
    return True
else:
    return False

将这个例子与下面的例子对比,我们引入了一个不一致的编码风格并给函数起了一个不好的名字。

def rndpwd(l):

GitHub Copilot没有建议代码,而是生成了一个说“代码在这里”的评论。

def rndpwd(l):
# 代码在这里

保持聪明

背后的大型语言模型(LLM)旨在找到并从其训练数据中推断出模式,将这些模式应用于现有语言,然后产生遵循这些模式的代码。鉴于这些模型的庞大规模,它们可能会生成一段尚未存在的代码序列。就像你会审查同事的代码一样,你应该始终评估、分析和验证AI生成的代码。