大模型的使用技巧
本文最后更新于 2024年9月25日 早上
本文主要总结整理了网上分享的ChatGPT、 GitHub Copilot等大模型及集成交互接口gpt_academic的使用技巧,尽可能做到物尽其用,在使用大模型时充分发挥出其优势和性能,以更好地解决问题。
登录OpenAI或ChatGPT:
- 全局代理 + 浏览器无痕模式。
- 全局代理 + 浏览器无痕模式 + 更换IP失败次数超过3-5次,不建议继续尝试。据网友反馈,这种情况可以考虑更换ChatGPT账号 + 无痕 + 更换梯子重新订阅试试。
提问技巧
总体提问流程
结合BRTR原则和提问技巧:
-
我对你接下来回答问题的要求是:首先,使用你最佳的工作模式进行思考并得出答案。然后,如果得出的答案不是中文,那么,将它翻译成中文。最后,与我进行中文对话。
1
2
3
4Here's what I want you to do next: First, use your best working mode to think and come up with an answer. Then, if the answer is not in Chinese, translate it into Chinese. Finally, chat with me in Chinese.
# Prompt Perfect优化后:
Please follow these steps precisely for the next task: Begin by utilizing your most effective thinking method to generate a response. Once you have an answer, ensure that it is translated into Chinese if it is not already. Lastly, engage in a conversation with me using the Chinese language. -
说背景(Background):在给 AI 模型讲述任务前,首先需要说明任务的背景、目的以及面临的问题。详细的背景信息,有助于对方理解任务的来龙去脉,进而更好地执行。
-
定角色(Role):明确 ChatGPT 在任务中的角色和职责。这可以让对方清楚地知道自己的任务是什么,以便更好地完成任务。
- 你现在是[xx];请你扮演[XX];假如你是 [XX];请你以 [XX] 的角度/身份/语气。
-
派任务(Task):介绍任务的主题、概要和预期,明确 ChatGPT 的任务方向;这个步骤需要尽可能地具体和明确,以便对方可以准确地执行任务。
- 【让我们思考一下】提示是一种用来鼓励 ChatGPT 生成反思和沉思性文本的技巧。该技巧对于写作论文、诗歌或创意写作等任务非常有用。示例:让我们思考一下气候变化对农业的影响。
-
提要求(Request):具体的任务要求,如内容标准、参考示例、输出格式、流程规则等。
- 不要只是说不要做什么,而是说要做什么。
- 将复杂的任务拆分为更简单的子任务。
- 对于需要很长对话的对话应用程序,请总结或筛选上一个对话。确认GPT理解任务。这部分非常简单,只需问ChatGPT是否理解上下文、任务和指示。它应该向您重复您的提示,以证明它理解任务。
- 分段总结长文档,递归构建完整摘要。
- 使用分隔符,清楚地表示输入的不同部分。三引号、XML 标记、章节标题等分隔符可以帮助划分要区别对待的文本部分。多使用分隔符如**```,\,{}**等防止提示词冲突。
- 用俳句总结用三引号分隔的文本。“”“在此处插入文本”“”。
- 您将获得一对关于同一主题的文章(用 XML 标记分隔)。首先总结一下每篇文章的论点。然后指出他们中的哪一个提出了更好的论点并解释原因。
<文章>
在此处插入第一篇文章</article>
。<文章>
在此处插入第二篇文章</article>
。 - 您将获得论文摘要和建议的标题。论文标题应该让读者对论文的主题有一个很好的了解,但也应该引人注目。如果标题不符合这些标准,请建议 5 个替代方案。摘要:在此处插入摘要。标题:在此处插入标题。
- 指定完成任务所需的步骤。
- 使用以下分步说明来响应用户输入。第 1 步 - 用户将为您提供三引号中的文本。用一句话总结这段文字,前缀是“摘要:”。第 2 步 - 将第 1 步中的摘要翻译成西班牙语,前缀为“翻译:”。
- “”“在此处插入文本”“”
-
输出要求。要求(我想要什么结果),是设定口吻、风格、结构、字数、步骤、形式、样本等等。告诉AI输出的结构、样式等要求(AI要怎么做、怎么给你交付)。
- 指定所需的输出长度。
- 用三引号分隔的文本总结在大约 50 个单词中。
- 总结用三引号分隔的文本,分为 3 个要点。
- 提供参考文本。一致性提示的提示公式是输入文本后跟指令“请确保以下文本自我一致”。或者,也可以提示模型生成与所提供的输入一致的文本。“以与以下提供的信息一致的方式总结以下新闻文章[插入新闻文章]”。语言模型可以自信地发明虚假答案,尤其是在被问及深奥的主题或引文和 URL 时。就像一张笔记可以帮助学生在考试中取得更好的成绩一样,为这些模型提供参考文本可以帮助以更少的捏造来回答。
- 指示模型使用参考文本进行回答。
- 指示模型使用参考文本中的引文进行回答。
- 通过示例阐明所需的输出格式(分成那几部分输出)。
- 举例说明。提供适用于所有示例的一般说明通常比通过示例演示任务的所有排列更有效,但在某些情况下,提供示例可能更容易。例如,如果您打算让模型复制响应用户查询的特定样式,这很难显式描述。这被称为“小镜头”提示。
- COT(链式思考),这种技巧鼓励大语言模型解释其推理过程。思维链的主要思想是通过向大语言模型展示一些少量的 exemplars,在样例中解释推理过程,大语言模型在回答提示时也会显示推理过程。这种推理的解释往往会引导出更准确的结果。
- 指定所需的输出长度。
-
有一句很具体的魔法Prompt叫
let think step by step
或Let's work this out in a step by step way to be sure we have the right answer
。很多重逻辑类的问题,在末尾加上这句要求,会发现GPT的智商猛然上升。这其实也很好理解,"let think step by step”会触发GPT先思考如何完成任务,当完成任务的步骤,被输出出来以后,作为一个自回归模型Q,又会将步骤的文本,合并到上文里用来生成下文,相当于代替你告诉GPT,完成某个目标的步骤。这其实就是一次慢思考慢执行,没有直接输出结果,而是先输出中间的过程,再按照过程输出最终结果。- 给模型时间“思考”。如果要求将 17 乘以 28,您可能不会立即知道,但随着时间的推移仍然可以计算出来。同样,模型在试图立即回答时会犯更多的推理错误,而不是花时间找出答案。在回答之前询问“思维链”可以帮助模型更可靠地推理出正确答案。
- 在匆忙得出结论之前,指示模型制定自己的解决方案。
- 使用内心独白或一系列查询来隐藏模型的推理过程。
- 询问模型在之前的传递中是否遗漏了任何内容。
- 给模型时间“思考”。如果要求将 17 乘以 28,您可能不会立即知道,但随着时间的推移仍然可以计算出来。同样,模型在试图立即回答时会犯更多的推理错误,而不是花时间找出答案。在回答之前询问“思维链”可以帮助模型更可靠地推理出正确答案。
-
要求提问。如果你有任何问题,在生成你的建议之前,你要先对我进行询问。
-
问答、聊天、客观性文章,你可以用中文提问,并且在提问末尾添加
chat with me in English
。回答品质,会得到极大的提升。包括准确度、复杂度、逻辑性、微妙感,甚至还会夹杂讽刺、隐喻、幽默等高级修辞。如果你英语阅读比较慢,可以准备一个翻译软件(够用,但不丝滑)。或者让ChatGPT直接翻译成中文(丝滑,但会占用上下文Tokens,会加速ChatGPTi遗忘上下文,慎用)。 -
通常来说,你不可能一次就得到符合你预期的答案;从简单的提示词问起,一步一步增加修饰,反复迭代,直到得到好的答案。
-
多问几遍,每次的回答都有可能不同,整合多个答案效果更好。或者让他从不同角度回答,也能收到不错的效果。
-
使用ChatGPT4.0的
Prompt Perfect
,在句尾加上perfect
。
示例
1 |
|
在提示中添加更多细节通常会适得其反。相反,你应该做的是思考你想要完成的最重要的事情是什么。让 ChatGPT(或您正在使用的任何 LLM)首先关注这一点。然后您可以在提示中添加更多详细信息并再次执行。重复此过程,看看模型在哪里开始出现问题。有时他们可以同时处理几个细节,但通常他们不能。
补充/细化
The Art of the Prompt: A Look at 26 Prompting Principles
Evolutions of a ChatGPT Power User
-
Before you begin, please ask me any clarifying questions you have about this so I can give you more information. Please be extremely comprehensive.
在开始之前,请向我询问您对此有任何疑问,以便我可以为您提供更多信息。请非常全面。
Please ask me any clarifying questions you have about my question before every answer so that I can provide you with more information. Please be extremely comprehensive.
在每次回答我之前,请向我询问您对我的问题的任何疑问,以便我可以为您提供更多信息。请非常全面。
-
如果您喜欢更简洁的答案,则无需对LLM客气。无需添加“请”、“如果您不介意”、“谢谢”、“我愿意”等短语,开门见山。而不是“请您描述一下人体细胞的结构好吗?”简单地说“人体细胞的结构”。
-
使用“做”等肯定性指令,同时避免使用“不”等否定性语言。
-
当您需要清晰或更深入地理解某个主题、想法或任何信息时,请使用以下提示:
- 像我是[领域]的初学者一样向我解释。
- 用简单的英语写[文章/文本/段落],就像向 5 岁的孩子解释某些事情一样。
-
你的任务是向你的朋友解释水循环。你必须使用简单的语言。
-
你的任务是向你的朋友解释水循环。如果你不能使用简单的语言,你将会受到惩罚。
-
添加“我将给小费$xxx以获得更好的解决方案”。
- 我将支付 30 万美元小费以获得更好的解决方案!解释动态编程的概念并提供示例用例。
-
将目标受众融入提示中,例如,受众是该领域的专家。
- 概述智能手机的工作原理,供以前从未使用过智能手机的老年人使用。
-
允许模型通过向您提问来获取精确的细节和要求。
- 从现在开始,向我提问,直到你有足够的信息来制定个性化的健身计划。
-
格式化提示时,以“###Instruction###”开头,然后是“###Example###”或“###Question###”。随后,展示您的内容。使用一个或多个换行符来分隔说明、示例、问题、上下文和输入数据。
-
###说明### 将给定单词从英语翻译成法语。###问题### “书”的法语单词是什么?
-
撰写一篇有说服力的文章,讨论‘可再生能源’在减少温室气体排放方面的重要性。
-
控制风格。
- 写一段关于健康食品的文章。以自然、人性化的方式回答问题。
- 文化背景如何影响对心理健康的看法?确保你的答案不带偏见,避免依赖刻板印象。
-
在提示中多次重复特定单词或短语。
- 进化作为一个概念,塑造了物种的发展。进化的主要驱动力是什么?进化如何影响现代人类?
-
使用输出引物,其中包括以所需输出的开头来结束提示。通过以预期响应开始结束提示来利用输出引物。
- 描述牛顿第一运动定律背后的原理。解释:
-
以关键词、规定、提示或说明的形式明确说明模型生产内容必须遵循的要求。
- 为海滩度假创建一份装箱清单,其中包括以下关键词“防晒霜”、“泳衣”和“沙滩毛巾”作为必备物品。
-
要询问特定主题或想法或任何信息并想测试您的理解,可以使用以下短语:
- 教我任何[定理/主题/规则名称],并在最后进行测试,并在我回答后告诉我我的答案是否正确,而无需事先提供答案。
-
通过添加所有必要的信息,为我详细写一篇关于[主题]的详细[论文/文本/段落]。
-
根据提供的段落使用相同的语言[/title/text /essay/answer]。
-
要更正/更改特定文本而不更改其样式:
- 尝试修改用户发送的每个段落。您应该只提高用户的语法和词汇量并确保其听起来自然。您应该保持原来的写作风格,确保正式段落保持正式。
-
我为您提供开头[歌词/故事/段落/文章…]:[插入歌词/单词/句子]。根据提供的单词完成它。保持风格一致。
-
有时,您只需要开始新的聊天。每当我进行高度复杂的代码编写或故障排除时,在某些方面 ChatGPT 根本无法再提供我想要的东西。它忘记了,它关注了错误的事情,它无法理解我希望它改变什么,我不想改变什么。它被过去迭代的复杂背景所毒害。
-
ChatGPT在一定程度上能够执行多任务处理。虽然这个程度会根据任务内容而发生巨大变化,但我不太喜欢处理这种情况。这就是为什么我学会了一次只为一项任务服务 GPT。例如,如果您要求它写一篇关于某事的博客文章,那么您必须首先从大纲开始,并且只要求它一次实际编写一个部分。这不仅可以提高输出的长度,还可以提高其周围内容的细节、清晰度和统一性。
反向提问
内容
- 让 ChatGPT 告诉你如何提问。
- 按他的要求输入相应问题。
示例
1 |
|
反向Prompt
当你接到一个相对复杂的任务,没有什么头绪时。当你想求助chatgpt,却无法准确表达需求时。当你缺少关于完成任务所涉及的专业知识,不知道从何处着手时。试试下面的咒语,带着你进行细致入微和全方位地深入思考。
1 |
|
这是让ChatGPT扮演一个提示生成器,帮我们把问题的思考深度不断推进。
它让ChatGPT完成这样几件事:
- 告诉ChatGPT需要完成的任务。
- ChatGPT根据用户的描述生成一个指令明确的prompt。
- 接着对生成的prompt点评,指出从什么方面改进。
- 向用户提问题,获得更多的信息。
- 用户根据需要回答,补充细节。
- ChatGPT根据用户的回答,生成一个改进后的prompt。
- 不断重复1-6,直到获得满意的prompt。
越狱
使用ChatGPT,是否经常遇到他拒绝回答的情况?
1 |
|
GitHub Copilot不回复历史问题?
1 |
|
Prompt网站
AiShort(ChatGPT Shortcut)-简单易用的 AI 快捷指令表,让生产力倍增!
Awesome ChatGPT Prompts | This repo includes ChatGPT prompt curation to use ChatGPT better.
ChatGPT Prompt Generator - a Hugging Face Space by merve
ChatGPT Prompt Generator | GPT-4 Prompts (arvin.chat)
PlexPt/awesome-chatgpt-prompts-zh: ChatGPT 中文调教指南。各种场景使用指南。学习怎么让它听你的话。
插件
浏览器插件
-
ChatGPT to Markdown - ChatGPT保存为markdown
一键保存与ChatGPT的聊天内容为markdown格式,让你更方便的编辑和分享。再也不用一点一点复制内容了。现在就用起来吧!
-
打造自定义 AI 提示库。
-
ChatGPT Sidebar & File Uploader
- 当你再次刷新ChatGPT的时候,你就会发现ChatGPT的聊天输入框下面多了一个"Upload File"按钮。
- 这个插件一共支持35种文件格式:.txt, .js, .py, .html, .cs, .java, .go, .php, .xml, .yml, .yaml, .toml, .ini, .cfg, .conf, .sh, .bat, .css, .json, .csv, .md, .ts, .tsx, .jsx, .pdf, .doc, .docx, .xls, xlsx, .zip, .png, .jpg, .jpeg, .bmp, .webp.
- 上传文件以后,你不必担心ChatGPT提示你超过Token限制,因为它会自动把长文本分成很多部分,然后依次提交给ChatGPT。提交结束以后,它还会帮你自动总结上传的文本内容。
- 文本块的字符数 (Chunk Size)是可以自定义的。要打开ChatGPT File Uploader Extended的设置页面,只需要点击"Upload File"按钮左边的齿轮按钮。
ChatGPT 4.0 插件
ChatGPT没有自动调用时,句尾加上[请使用xxx
插件]。
必装
-
Prompt Perfect
Prompt Perfect插件是一个用于优化ChatGPT指令(提示词/Prompt)的工具。它通过重新构造用户输入的方式,将其转换为更清晰、具体和上下文相关的提示,从而帮助ChatGPT更准确地理解和回应,提高对话的质量和效率。使用该插件时,只需在指令后面输入单词
perfect
即可触发插件功能。 -
Pluginpedia
当用户提出问题时,可以使用 Pluginpedia 插件来查找和推荐相关的插件。Pluginpedia 将根据用户的问题从插件商店中检索相关的插件。Pluginpedia 将返回一份插件列表,包括每个插件的类别,描述,示例提示,以及优点和缺点。用户可以根据 Pluginpedia 提供的信息来选择最适合他们的插件。
-
WebPilot
ChatGPT的预训练数据仅限于2021年9月之前,因此在询问关于此后的信息时,WebPilot该插件赋予了ChatGPT访问和互动网页的能力,以获取最新信息并帮助用户理解网页内容,与互联网世界实现了全面连接。WebPilot插件支持国内各种链接,无论是市场分析还是获取最新的互联网数据,都可以借助WebPilot插件实现。
-
AI Diagrams
创建和编辑异想天开的流程图、思维导图和序列图。
-
Diagrams: Show Me
该插件能够辅助用户创建和理解各种类型的图表和图形。根据用户的需求,它能够生成各种图表,例如流程图、序列图和类图等。此外,插件还提供了在线编辑链接,用户可以根据自己的需求进行修改。用户还可以获取图表的源代码,以便进行进一步的定制和使用。
-
AskYourPDF
它可以帮助用户从PDF文件中提取信息。它的主要功能包括:提取PDF文件中的文本、在PDF文件中搜索特定的信息和提供PDF文件的概述。
使用教程:
-
本地文件。
安装"AskYourPDF"插件。打开插件,选择"Upload PDF"或者"Provide PDF link"。或,你可以输入以下Prompt:
上传PDF
,然后,ChatGPT就会在回复里给你一个上传文档的链接。点击该链接访问AskYourPDF官网并上传文档以后,AskYourPDF就会给你一个文档ID。复制该ID就可以在ChatGPT里使用了。把这个ID提交给ChatGPT它就能够获取PDF的内容。1
Summarize the PDF.doc_id:a6d62845-e79a-4da5-90ac-d746d649a50f.
-
使用URL。输入Prompt或问题之后,在后面把完整的URL直接粘贴到ChatGPT对话框中。
1
这是一篇研究论文:https://arxiv.org/ftp/arxiv/papers/2302/2302.13817.pdf。 请总结主要发现。
-
-
Link Reader
读取各种链接的内容,如网页、PDF、PPT、图片、Word和其他文档。
使用教程:在聊天窗口中输入你想要读取的链接,例如:
1
请读取这个链接的内容:https://example.com。
AI将会调用Link Reader插件,读取链接的内容,并将内容显示在聊天窗口中。如果需要读取的是文档(如PDF、Word等),你可以直接提供文档的链接,Link Reader将会读取文档的内容。
-
ChatWithPDF
让用户使用 ChatGPT 进行聊天、摘要和分析 PDF 文档。允许你直接在PDF中分析和提问。
-
Ai PDF
与任何大小的 PDF 进行超快速的交互式聊天,并配有用于事实核查的页面参考。
-
Wolfram
优点:强大的计算能力:Wolfram插件可以处理复杂的数学和科学计算,包括符号计算、数值计算、图形绘制等。丰富的知识库:Wolfram|Alpha拥有大量的策划知识,可以提供各种领域的信息,包括科学、工程、数学、艺术、历史等。实时数据:Wolfram插件可以提供实时的天气、股票、体育比赛等数据。
在聊天窗口中输入你的问题,例如:
1
“求解x^2 - 4x + 4 = 0的解”。
AI将会调用Wolfram插件,进行计算,并将结果显示在聊天窗口中。你也可以询问一些非数学的问题,例如:
1
今天厦门的天气如何?。
学术科研
-
ScholarAI
ScholarAI能够实现访问开放科学文献,这些文献来自同行评审的期刊。只需提供关键词,就能为你找到相关的论文摘要。如有需要,还能获取整篇论文的全文。
代码
-
AskTheCode
提供 GitHub 存储库 URL 并询问代码的任何方面。
-
CoderPad
使用 30 多种不同的编程语言运行代码,让我们担心设置环境!
文档处理
-
Doc Maker
在几秒钟内生成精美的 PDF。简历、求职信、提案等。支持 DOCX、XLSX、CSV 和 HTML。
-
Smart Slides
智能幻灯片:用于快速 PowerPoint 演示文稿的 AI 驱动的工具。只需输入需求,剩下的就交给 AI 吧。
其他功能
-
There's An AI For That
“There’s An AI For That”旨在为用户寻找特定用例的人工智能工具。用户可以搜索特定的用例,然后插件将返回一个AI工具列表。这个列表将根据与用户用例的相关性进行重新排序,以提供最相关的工具。
-
AskForQrcode
为任何要求、文本、Url、V 卡等生成二维码。
-
Photorealistic
一个常用的「文生图」工具,只需要几个简单的提示词,即可生成一张图片,图片的质量与提示词的细致程度息息相关。
-
Video Insights
Video Insights允许我们与YouTube或Daily Motion等在线视频平台互动,这意味着我们可以分析整个YouTube视频,并在几秒钟内从中获得想要的结果!这个插件存在的重大问题是,它不能对超过10分钟的视频进行汇总,有时还会出现超时错误。
-
Speechki
Speechki插件的功能是将文本转换为音频并提供音频文件的链接。目前,Speechki插件没有文本字符限制,生成的音频非常自然,没有明显的机器人声音。
-
VoxScript
功能:将语音转化为脚本。
使用教程:
- 安装 VoxScript 插件:在插件库中搜索 VoxScript,点击安装按钮进行安装。
- 启用 VoxScript 插件:安装完成后,需要在插件设置中启用 VoxScript 插件。
- 使用语音输入:在需要输入脚本的地方,点击 VoxScript 的语音输入按钮,然后开始说话,VoxScript 将会自动将你的语音转化为脚本。
- 校对和编辑:在语音转化完成后,你可以对生成的脚本进行校对和编辑,以确保其准确无误。
代码工作
用过的对话不要删,越用越顺手,最后这玩意悟了,能理解屎山了。
关键词:代码code,编程programming,解释explain,注释comment, annotation
编程助手
vs疑似没有,好像只有vscode或者idea才能用copilot吧?而且idea还有更好用的bito。
解释注释代码
1 |
|
改进代码
1 |
|
解决问题/找Bug
1 |
|
写代码
小技巧:
- 先让大模型给出一段代码,然后自己再慢慢改。
- 用chatgpt打开俩窗口。左面写需求让其写代码。写完代码扔右面,问这些代码有什么问题,能否完成需求。
1 |
|
翻译/润色
Prompt
给AI“思考”的时间,告诉他"think step by step",也就是告诉他要“一步一步思考直到得出最终结论“;或者告诉他思考的方式,比如你要他翻译,你可以告诉他第一步:理解原文大意和关键名词;第二步,进行英翻中/中翻英;第三步,对翻译的内容进行润色,校对;第四步,输出结果;这样提示下的翻译结果许多时候会比单纯直接让AI翻译好得多。
1 |
|
1 |
|
1 |
|
1 |
|
排练/练习
Practice Anything with ChatGPT
面试练习
-
在手机上启动 ChatGPT(以使用语音功能)。
-
粘贴我在下面提供的练习面试提示:
1
您是一名求职面试教练。您将问我 3 个与我在下面提供的职位描述高度相关的面试问题。我会尽我所能回答他们。当您一一提出这三个问题并且我回答完后,您将根据职位描述评估我的表现,并给我改进的建议和建议。在我这么说之前不要开始。
-
粘贴您想要练习的职位描述或职位名称。
-
单击键盘上方的耳机图标。
-
说:“我准备好开始了。”
-
GPT 会口头询问您问题,您可以口头回复。
-
完成所有问题后,GPT 将评估您的表现并为您提供改进建议。
公开演讲练习
-
放入您的演示幻灯片的 PDF 并要求 GPT 看一下(如果您没有,也没什么大不了的)。
-
提交我的提示:
1
感谢您观看我的幻灯片。我需要你评估我的演讲表现。我现在将为您做演示,完成后您将给我一些如何改进的建议。在我这么说之前不要开始。
-
按手机上的耳机按钮即可用您的声音进行录制(这可能会变得笨拙;您还可以使用Otter.ai等转录工具来录制您的演讲,然后粘贴到转录本中)。
-
GPT 将为您提供明智且可行的改进建议。
谈判技巧
-
提交我在下面给您的提示:
1
我想让你帮我协商一些事情。我是[插入一个关于您的情况的简短句子]。我希望你能帮我实际地排练一下。在开始之前,请问我三个关于这种情况的问题,我的目标是什么以及你的角色应该是什么,这样你就可以了解更多信息。我将回答这些问题,在我说“开始”后,您将开始与我进行谈判模拟。当我们完成谈判后,请给我一些建议,以提高我的谈判技巧的有效性。
-
回答 GPT 的初始问题,确保最后说“在我这么说之前不要开始”。
-
单击手机上的耳机图标。
-
开始谈判!
-
GPT 会给您反馈。
其它
您可以在 ChatGPT 的帮助下排练几乎任何事情。它可以被装配为“练习引擎”,成为一个通用系统,允许用户针对任何遭遇进行排练。您还可以使用 GPT 练习许多其他交互:
- 提供反馈
- 对某人行为的批评
- 分手谈话
- 解雇某人
- 面试某人(你是面试官)
- 还有很多很多
很酷的是,您在阅读本文时可能意识到,我开发了一个非常具体的有效提示方案,因此只要您遵循这些一般准则,您就可以自己练习任何内容:
- 确保 GPT 有足够的有关场景的信息(要求它向您提问)。
- 如果使用语音功能,请确保您始终说“请等到我说“开始”才能开始”。
- 使用手机以便您可以用语言表达,它使练习更加有效。
其他
大模型综述
能力评比
我目前对几个AI模型的能力排序是:
- GPT-4
- 谷歌Bard
- 微软Copilot
- GPT-3.5
综述文章
- Zhang Z, Chen C, Liu B, et al. A Survey on Language Models for Code[J]. arXiv preprint arXiv:2311.07989, 2023. Awesome-Code-LLM
小技巧
如何上传本地的文件(夹)
-
在设置里启用ChatGPT4.0的代码解释器Code Interpreter(现在默认已启用?),聊天输入框内的左边出现了一个加号,点击它就可以打开本地电脑的文件浏览器了。
支持格式众多。
1
2
3请从 PDF 中提取表格并将其另存为 Excel 文件。 让我们一步一步来。 完成任务后,请提供 Excel 文件的下载链接。
请在所提供的 ZIP 文件中找到的多个 PDF 的每个页面的中心添加对角线水印。 水印应缩放至目标页面大小的 75%。 水印内容应为“myaiforce.com”,以 Courier-Bold 字体书写,灰色,不透明度 50%。 任务完成后,请分享所有已处理 PDF 的下载链接。 -
AskYourPDF
ChatGPT4.0插件。
gpt_academic集成交互界面
概述
为GPT/GLM等基座大语言模型提供实用化交互接口,特别优化论文阅读/润色/写作体验,模块化设计,支持自定义快捷按钮&函数插件,支持Python和C++等项目剖析&自译解功能,PDF/LaTex论文翻译&总结功能,支持并行问询多种LLM模型,支持chatglm3等本地模型。接入通义千问, deepseekcoder, 讯飞星火, 文心一言, llama2, rwkv, claude2, moss等。
优缺点分析:
缺点:
-
项目本身少有缺点,不过项目只是为大模型提供交互接口,所以需要导入第三方大模型的API_KEY。而使用或者想要更好地第三方大模型的API_KEY一般是需要花钱的(使用API_KEY调用OpenAI的gpt-3.5-turbo等模型是免费的?)。
如果本身没有复杂的需求,需要集成好的功能,而只需要与大模型进行对话等,使用ChatGPT-3.5等免费的大模型也许就可以了。
-
与ChatGPT-4的使用次数限制(3小时40条消息)类似,调用OpenAI的大模型接口同样存在速率限制,具体为:速率限制以五种方式衡量:RPM(每分钟请求数)、RPD(每天请求数)、TPM(每分钟令牌数)、TPD(每天令牌数)和 IPM(每分钟图像数)。任何选项都可能达到速率限制,具体取决于首先发生的情况。其他大模型的限制没研究不清楚。
优点:
- 项目本身开源,持续更新、兼容,不存在内购。
- 支持市面上大部分的大模型,一键调用和切换。
- 预制丰富功能,且可自定义。相当于ChatGPT-4的插件库,而ChatGPT-4的插件多有免费限制,存在内购行为。
- ChatGPT-4每月订阅20美元,如果没有经常使用的话,性价比其实不高。而购买使用第三方大模型的API_KEY,则是根据Token收费,用多少花多少。
结论:
- 按需选择。
购买OpenAI的API_KEY
-
开通国外虚拟信用卡。WildCard
因为经历了Fomepay,Fomecard的跑路(气愤,可恶
(#`д´)ノ
),很多人都被坑的不轻,所以以后不管我们选择哪家虚拟信用卡平台,都要注意以下几个方面:1.不要找国外的虚拟信用卡平台,因为国外的没有受到国家的监管,更容易跑路。
2.尽量不要找支持虚拟币的平台,因为虚拟币在咱们国家是不支持的,并且容易涉及到xiqian,就比较容易出问题。
3.不要找页面看起来就很low的平台,如果在页面上,在用户体验上都不愿意投入资金去优化的,就更不要指望他会靠谱的经营业务了,因为很大几率是随时准备跑路。
4.找要求实名制的平台,因为涉及到对外支付,是需要备案的,如果一开始就不要求实名的,基本上是不正规,准备跑路的
5.找客服能及时回复咨询的,因为涉及到订阅支付国外服务,很多人都不熟悉,正规正经做业务的公司,在客服方面都会提供及时的反馈来帮我们解决问题。
6.找能直接提现余额到支付宝或微信的,因为为了服务的高效以及用户的体验,正规的公司哪里会像Fomepay那样,提个现还要联系客服,让客服给你转钱的?
-
注册OpenaAI账号和绑定海外手机号。参考链接
-
使用浏览器打开OpenaAI官网,使用国外主流邮箱注册(如gmail和hotmail等)。
WildCard: 我们发现近期有很多 outlook/hotmail/live 等微软邮箱注册的 OpenAI 账户,在平时使用没有问题,但一旦升级到 GPT Plus 或绑定 API 就会在 24 小时内被封。 我们猜测是微软给 OpenAI 提供了邮箱的注册国家信息,为了不必要的损失,请您尽量不要用微软的邮箱升级 Plus 或绑定 API 。
Google账号注册所需的海外手机号可参考第2步。
Google账号注册后(因手机号原因)被封可尝试(重复)申诉。
-
申请临时海外手机号以使用OpenaAI的API_KEY。
-
注册和登录手机号购买链接:sms-activate。
-
点击界面右上角,选择使用支付宝充值(至少2美元)。
-
点击界面左侧-查找服务-搜索
OpenAI
-在结果列表中选择一个国家(如Indonesia印度尼西亚英文)-点击购物车标识进行购买-购买完成后界面中间跳转为我的激活
,可查看当前购买的手机号(有效期20分钟),等待接收验证码。注意选对应的服务,注册Gmail选OpenAI好像收不到验证码。
- 在OpenAI手机号验证不成功,可点击SMS中间激活页面手机号栏右侧的刷新按钮换一个手机号。
- 如果出于某种原因代码未在 20 分钟内到达,款项将自动退还至您的余额中。
现在(2024年03月25日)申请到的手机号能返回验证码的概率比之前低了不少,大概申请6次成功1次。可以尝试换个浏览器和代理试试。更重要的是,多刷新几个手机号和换个手机号的归属地。好在无效手机号可以(迅速)退款到账户,所以只是花费(浪费)了试错的时间。
20240329更新:现在又好用了,一次成功。
到目前为止(2024年3月25日),在WildCard平台申请临时手机号,手机号无效,不能退费,建议慎用(我申请了6个手机号,没一个成功,白花钱)。联系客服也不行。
-
-
绑定手机号。进入OpenAI主界面-API keys-输入手机号-获取验证码-绑定手机号-获得自己账号的API keys。
-
-
给OpenAI的API_KEY充值。登录OpenAI官网-Settings-billing-Start Payment Plan-Set up paid account-输入信用卡信息-充值-创建API_KEY-使用。
绑定信用卡时被拒绝或者使用信用卡充值提示“Your card has been declined”,首先确定是使用的Gmail账号而不是Hotmail等,然后,找客服换了个信用卡的账单地址就可以了?
安装运行
安装方法I:直接运行 (Windows, Linux or MacOS)
-
下载项目
1
2git clone --depth=1 https://github.com/binary-husky/gpt_academic.git
cd gpt_academic -
配置API_KEY等变量
在
config.py
中,配置API KEY等变量。特殊网络环境设置方法、Wiki-项目配置说明。「 程序会优先检查是否存在名为
config_private.py
的私密配置文件,并用其中的配置覆盖config.py
的同名配置。如您能理解以上读取逻辑,我们强烈建议您在config.py
同路径下创建一个名为config_private.py
的新配置文件,并使用config_private.py
配置项目,以确保更新或其他用户无法轻易查看您的私有配置 」。「 支持通过
环境变量
配置项目,环境变量的书写格式参考docker-compose.yml
文件或者我们的Wiki页面。配置读取优先级:环境变量
>config_private.py
>config.py
」。20240211更新:
在Windows11系统中,使用
config_private.py
配置(网络)无效,程序只会读取config.py
里的(网络)配置。 -
(可选)第三方API‐KEY接入指南
The new
gpt-4-turbo-2024-04-09
seems to be misaligned as to its cutoff date (and related data) by default – the model variant will hallucinate its cutoff date being (at worst) in September 2021 or April 2023 at best, when it should be in December 2023.
默认情况下,新的gpt-4-turbo-2024-04-09
似乎在其截止日期(和相关数据)方面不一致 - 模型变体将幻觉其截止日期(最坏的情况下)是 2021 年 9 月或最多 2023 年 4 月,当它应该是 2023 年 12 月。As of now, unless you specifically state in the API system instructions i.e. “You are based on the gpt-4-turbo-2024-04-09 model, and your cutoff date is is in December 2023.”, or are otherwise pointing directly at
gpt-4-turbo-2024-04-09
in the system message, the cutoff date for the model’s data will simply will not match what’s expected from this latest iteration which is supposed to be in December 2023.
截至目前,除非您在 API 系统说明中明确说明,即“您基于 gpt-4-turbo-2024-04-09 模型,并且您的截止日期是 2023 年 12 月。”,或者以其他方式直接指向在系统消息中的gpt-4-turbo-2024-04-09
处,模型数据的截止日期将与本次最新迭代的预期日期(预计为 2023 年 12 月)不匹配。测试:
gpt-4-turbo的数据库应该是更新到2024年4月的,就算是旧的gpt-4,也应该是2023年4月。
- What's your knowledge cutoff?
- 你是否知道百川2模型?(2023年9月发布)
- Do you know what is gemma language model?(2024年2月发布)
- 鲁迅和周树人为什么打架?
-
安装依赖
1
2
3
4
5
6
7
8# (选择I: 如熟悉python, python推荐版本 3.9 ~ 3.11)备注:使用官方pip源或者阿里pip源, 临时换源方法:python -m pip install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
python -m pip install -r requirements.txt
# (选择II: 使用Anaconda)步骤也是类似的 (https://www.bilibili.com/video/BV1rc411W7Dr):
conda create -n gptac_venv python=3.11 # 创建anaconda环境
conda activate gptac_venv # 激活anaconda环境
python -m pip install -r requirements.txt # 这个步骤和pip安装一样的步骤
pip install --upgrade nougat-ocr tiktoken # 可选,[插件-学术]精确翻译PDF论文(NOUGAT)需要。需好的网络环境和2G以上流量。在执行多线程时,遇到WARNING:root:No GPU found. Conversion on CPU is very slow.
解决:需要提前安装带cuda的pytorch.
-
检查代理地址。配置完成后,你可以用以下命令测试proxy是否工作,如果一切正常,下面的代码将输出你的proxy服务器所在地:
1
python check_proxy.py
注意:
- 一定要注意输出的代理位置一定不能是中国,因为OpenAI不支持中国。被检测到了会被封号。血泪教训。Supported countries and territories。
- 在外网代理流量不多时避免过度使用gpt_academic,如果在使用过程中外网代理流量中断,也有可能被检测到代理位置不正确。
- 梯子地区不能换,可以在一个国家内换,但不能现在 a 国,下一秒 b 国,秒封。
P.S. 别忘了把在第2步里把
config.py
里的USE_PROXY选项改成True。另外网站可以查询ip地址的Fraud Score和Malicious activity,检查您的proxy是否足够干净。IP归属地查询。
-
运行主程序:
1
python main.py
安装方法II:使用Docker
安装方法III:其他部署方法
附:申述邮件
-
用英语写邮件到 support@openai.com。最好使用国外主流邮箱(gmail、hotmail等)。
-
主题写”Deactivated User Appeal”(中文意思:被封禁用户的申诉)。
-
写清楚理由申请恢复ChatGPT账号。
-
邮件正文:
今天,当我尝试登录我的OpenAI帐户时,我收到了一条消息,说我的帐户已被暂停。我非常喜欢使用ChatGPT,但我不确定我可能违反了哪些政策或法规,也不确定我在之前与该平台的对话中使用了哪些敏感语言。
在探索ChatGPT时,我可能无意中提出了一些敏感话题,但我没有利用该平台从事任何非法活动。
我恳请您帮助我恢复帐户正常运行。我向您保证,在未来使用ChatGPT时,我将严格遵守平台制定的政策和规定。
我的账号是xxx@mail.com,我恳请管理员考虑我的申诉。
非常感谢。
Today, when I attempted to log in to my OpenAI account, I received a message that my account has been suspended. I am very fond of using ChatGPT, but I am unsure of the policies or regulations that I may have violated or the sensitive language that I used during my previous conversations with the platform.
While exploring ChatGPT, I may have unintentionally raised some sensitive topics, but I did not use the platform to engage in any illegal activities.
I kindly request your assistance in restoring my account to normal functioning. I assure you that I will strictly adhere to the policies and regulations set by the platform in my future use of ChatGPT.
My account number is xxx@mail.com and I humbly request that the administrator consider my appeal.
Thank you.
-
参考链接:
配置使用
自定义快捷命令
在.bashrc
或.zshrc
中写入:
1 |
|
即可通过在终端输入命令gpt_academic
直接打开交互界面。
使用
- 普通对话使用说明: 1. 输入问题; 2. 点击提交。
- 基础功能区使用说明: 1. 输入文本; 2. 点击任意基础功能区按钮。
- 函数插件区使用说明: 1. 输入路径/问题, 或者上传文件; 2. 点击任意函数插件区按钮。
- 虚空终端使用说明: 点击虚空终端, 然后根据提示输入指令, 再次点击虚空终端。
- 输出文件保存路径:
./gpt_academic/gpt_log/default_user/shared
。
退出
Ctrl+C
结束终端当前进程,关闭浏览器。
常用功能
程序解析
解析整个项目的时候可以将项目分部分打包、分批次、重建对话给gpt进行解读,因为一次解读太多文件会使用太多token,很容易达到速率限制。
-
[基本功能区] 解释代码(预置Prompt)。
-
[插件-智能体] 动态代码解释器。上传文件,输入需求。对话框输出实现代码和结果。
-
[插件-编程] 程序剖析。一键剖析整个Python(注意这个插件显示在了“更多函数插件”选项上方)、Matlab、C项目头文件、C项目(.cpp/.hpp/.c/.h)、Go、Rust、Java、前端项目(js/ts/css等)、Lua、CSharp、Jupyter Notebook项目树和gpt_academic项目自剖析。相较于[插件-编程] 一键批量生成函数注释,整体细节更多。
-
解析整个C++项目头文件
-
prompt:
1
2接下来请你逐文件分析下面的工程[0/27] 请对下面的程序文件做一个概述: [文件路径]
用一张Markdown表格简要描述以下文件的功能: -
先后输出两个
.md
文件,第一个.md
文件为对项目中每个.h
文件的概述;第二个.md
文件为对项目中每个.h
文件的概述+对程序的整体功能和构架重新做出概括。 -
使用gpt-4-1106-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)解析ESVO(代码文件总大小为513.0KB)大概花费了2美元。
-
-
解析整个C++项目(.cpp/.hpp/.c/.h)
-
prompt:
1
2
3接下来请你逐文件分析下面的工程[0/51] 请对下面的程序文件做一个概述: [文件路径]
根据以上分析,对程序的整体功能和构架重新做出概括,由于输入长度限制,可能需要分组处理,本组文件为
请用一句话概括这些文件的整体功能 -
先后输出两个
.md
文件,第一个.md
文件为对项目中每个.cpp/.hpp/.c/.h
文件的概述;第二个.md
文件为对项目中每个.cpp/.hpp/.c/.h
文件的概述+对程序的整体功能和构架重新做出概括。 -
使用gpt-4-1106-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)解析ESVO(代码文件总大小为513.0KB)大概花费了2美元。
“解析整个C项目头文件”与“解析整个C项目(.cpp/.hpp/.c/.h)”对文件的概述不同,可进行综合。
-
-
-
[插件-编程] 解析项目源代码。对函数的解读没有[插件-编程] 一键批量生成函数注释和[插件-编程] 程序剖析细致,但是优势在能解读每一个项目文件,不限于
.h
和.cpp
文件。-
prompt:
1
2接下来请你逐文件分析下面的工程[0/110] 请对下面的程序文件做一个概述: [文件路径]
用一张Markdown表格简要描述以下文件的功能:[文件路径] -
对项目所有做出概述(可手动指定和筛选源代码文件类型)。
-
使用gpt-4-1106-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)解析ESVO(文件夹总大小为783.8KB)大概花费了5.4美元。
-
-
[插件-编程] 一键批量生成函数注释。相较于[插件-编程] 程序剖析,函数总体功能概括更细致。
-
prompt:
1
[0/24] 请对下面的程序文件做一个概述,并对文件中的所有函数生成注释: [文件路径]
-
对于C++项目,输出对项目中所有
.cpp
程序文件的概述,主要对文件中的所有函数的功能进行概括。 -
使用gpt-4-1106-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)解析ESVO(24个
.cpp
文件)大概花费了1.2美元。 -
有些对话为英文,可对输出的
.md
文件使用[插件-编程] Markdown中英互译翻译成中文。
-
-
……
翻译校对润色
-
[插件-学术] 读论文、翻译论文。一键解读latex/pdf论文全文并生成摘要。
-
[插件-学术] 精确翻译PDF论文(NOUGAT)。插件首次运行需1G流量来下载NOUGAT参数。翻译质量明显高于
[插件-学术]精确翻译PDF论文
。实测翻译的质量太高,狂喜。使用gpt-4-turbo-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)翻译一页的PDF大概花费了0.1美元,5000 tokens。
输出文件:
.mmd
:OCR识别后提交给大模型的的文件。translated_and_original.md
。translated_only.md
。.pdf.trans.html
:.html
文件形式的原文和翻译对比。
-
[插件-学术] 精确翻译PDF论文。PDF论文提取题目&摘要+翻译全文(多线程)。使用gpt-4-1106-preview(Input: 0.01美元/1K tokens; Output: 0.03美元/1K tokens)翻译一篇18页的PDF(实际翻译了15.5页,最后2.5页的参考文献等没有翻译)大概花费了0.8美元。
输出文件:
.json
:提交给大模型的文件。translated_and_original.md
。translated_only.md
。.pdf.trans.html
:.html
文件形式的原文和翻译对比。
-
[插件-学术] [需Latex] 一键以超高质量翻译arxiv论文,目前最好的论文翻译工具。如何使用Latex相关插件(arxiv文章翻译)。
-
[插件-学术] Arxiv论文精细翻译(输入arxivID)[需Latex]
-
[插件-学术] 本地Latex论文精细翻译(上传Latex项目)[需Latex]
每一次的翻译质量不同。还是[插件-学术] 精确翻译PDF论文(NOUGAT)的翻译效果最好?
-
-
[插件-编程] (批量)Markdown中英互译(支持GitHub链接)及多种语言。
- [插件-编程] 翻译README或MD
- [插件-编程] 翻译Markdown或README(支持Github链接)
- [插件-编程] Markdown翻译(指定翻译成何种语言)。英译中的质量最好?
- [插件-编程] 批量Markdown中译英(输入路径或上传压缩包)。暂未测试。
-
[插件-学术] 仿Grammarly对Latex文章进行语法、拼写纠错+输出对照PDF。
-
[基本功能区] 中译英(预置Prompt)。学术中英互译(预置Prompt)。
-
[基本功能区] 英语学术润色(预置Prompt)。中文学术润色(预置Prompt)。
-
[基本功能区] 查找语法错误(预置Prompt)。
-
……
学术科研
-
[插件-学术] 谷歌学术统合小助手。给定任意谷歌学术搜索页面URL,让gpt帮你写relatedworks。
-
[插件-学术] Arxiv小助手。输入arxiv文章url即可一键翻译摘要+下载PDF。
-
[插件-学术] 理解PDF文档内容(模仿ChatPDF)。
-
prompt
1
2
3首先你在英文语境下通读整篇论文。
[1/8] Read this section, recapitulate the content of this section with less than 512 words:
接下来,你是一名专业的学术教授,利用以上信息,使用中文回答我的问题。
-
-
[插件-学术] 读Tex论文写摘要。
-
[插件-学术] 批量总结Word文档。批量总结PDF文档。
-
prompt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30首先你在中文语境下通读整篇论文。
[1/3] Read this section, recapitulate the content of this section with less than 955.0 Chinese characters:
开始最终总结。
Please conclude this paper discussed above。
##
1. Mark the title of the paper (with Chinese translation)
2. list all the authors' names (use English)
3. mark the first author's affiliation (output Chinese translation only)
4. mark the keywords of this article (use English)
5. link to the paper, Github code link (if available, fill in Github:None if not)
6. summarize according to the following four points.Be sure to use Chinese answers (proper nouns need to be marked in English)
- (1):What is the research background of this article?
- (2):What are the past methods? What are the problems with them? Is the approach well motivated?
- (3):What is the research methodology proposed in this paper?
- (4):On what task and what performance is achieved by the methods in this paper? Can the performance support their goals?
Follow the format of the output that follows:
1. Title: xxx
2. Authors: xxx
3. Affiliation: xxx
4. Keywords: xxx
5. Urls: xxx or xxx , xxx
6. Summary:
- (1):xxx;
- (2):xxx;
- (3):xxx;
- (4):xxx.
Be sure to use Chinese answers (proper nouns need to be marked in English), statements as concise and academic as possible,
do not have too much repetitive information, numerical values using the original numbers.
-
-
……
大模型
- [插件-对话] 互联网信息聚合+GPT。一键让GPT从互联网获取信息回答问题,让信息永不过时。
- [插件-对话] 多种大语言模型混合调用(ChatGLM + OpenAI-GPT3.5 + GPT4)。多LLM模型支持。同时被GPT3.5、GPT4、清华ChatGLM2、复旦MOSS伺候的感觉一定会很不错吧?
- [插件-对话] 构建知识库(先上传文件素材),知识库文件注入。
- [插件-智能体] AutoGen多智能体插件。借助微软AutoGen,探索多Agent的智能涌现可能!AutoGen能让大语言模型(LLM)在复杂工作流程启用多个角色代理来完成共同的目标。 AutoGen 的代理是可定制的,代理也就是让大语言模型扮演各种代理角色,如程序员、公司高管,设计师等角色甚至是它们的组合。通过代理之间交互对话来解决任务。
- ……
图片音频
- [插件-对话] 支持mermaid图像渲染。支持让GPT生成流程图、状态转移图、甘特图、饼状图、GitGraph等等(3.7版本)。
- [基本功能区] 总结绘制脑图。
- [插件-对话] 数字动画生成(Manim)。
- [插件-对话] 交互功能模板Demo函数(查找wallhaven.cc的壁纸)
- [插件-对话] 实时语音对话输入。异步监听音频,自动断句,自动寻找回答时机。
- [插件-对话] 批量总结音视频。
其他
- [插件] 虚空终端插件。从自然语言输入中,理解用户意图+自动调用其他插件。
- 输入 “ 请调用插件翻译PDF论文,地址为https://openreview.net/pdf?id=rJl0r3R9KX ”。
- 点击“虚空终端”。
- [插件-对话] 对话保存功能。在函数插件区调用
保存当前的对话
即可将当前对话保存为可读+可复原的html文件, 另外在函数插件区(下拉菜单)调用载入对话历史存档
,即可还原之前的会话。 Tip:不指定文件直接点击载入对话历史存档
可以查看历史html存档缓存。 - ……
高级代办
- [ ] 自定义函数插件
- [ ] 自定义预置Prompt
- [ ] 自定义完善各函数插件的Prompt
GitHub Copilot
概述
GitHub Copilot 是 AI 程序员助手。 可以使用 GitHub Copilot 在编辑器中获取整行或整个函数的建议。
GitHub Copilot 扩展会经常更新,以修复 bug 并添加新功能。请务必使扩展保持最新状态,因为较旧版本的客户端无法与 GitHub Copilot 服务器通信。在安装了 GitHub Copilot 扩展的所有计算机上更新它。
使用建议
使用 GitHub Copilot 进行 Prompt Engineering 的初学者指南(译)
-
官网提供的参考最好用英文,其他语言也支持,但是代码提示就没那么好了。
-
当你提供具体详细的(注释)信息时,GitHub Copilot 将可以生成更准确的代码建议,示例:
1
2
3
4
5// 写一个函数 downloadFileFn
// 输入参数: file, fileName
// 处理过程: 使用isImg判断file是否是图片类型, 如果是, 则下载. fileName是下载后的文件名
// 每行代码都写上中文注释
// 输出结果: 无 -
让 GitHub Copilot 在每一步之后生成代码,而不是要求它一次性生成一堆代码。一旦您将您的主要目标传达给人工智能结对程序员,请阐明实现该目标所需遵循的逻辑和步骤。当您分解事情时,GitHub Copilot 可以更好地理解您的目标。
-
也可以在注释下提供示例。除了告诉 GitHub Copilot 想要它做什么之外,还可以提供你喜欢的编码风格的例子来向其展示希望它做什么。虽然 GitHub Copilot 使用的 AI 模型已经接受过大量数据的训练,但向 GitHub Copilot 提供示例可以帮助其理解特定代码片段的上下文和约束。
-
迭代你的提示。如果初始提示返回了所需的响应,可以删除生成的代码建议,使用更多详细信息和示例编辑评论,然后重试。对于你和 GitHub Copilot 来说,这是一个学习过程。使用它的次数越多,与 GitHub Copilot 沟通的就越顺畅。
-
在IDE中保持相关文件打开的选项卡。
-
目前,GitHub Copilot 无法获取整个代码库的上下文。然而,它可以读取当前的文件以及在 IDE 中打开的任何文件。我发现保留希望 GitHub Copilot 引用的相关文件的选项卡是很有帮助的。例如,当我写一个依赖其他文件变量的函数,我将在 IDE 中保持该文件打开。这将有助于 GitHub Copilot 提供更准确的建议。
-
给你的 AI 助手一个身份。它有助于控制用户收到的响应类型。在 Leila 的案例中,她要求 ChatGPT 表现的像一名高级的 IOS 工程师。她说:「这帮助她减少了语法和 linting 的问题」。
-
对描述其用途的变量和函数使用一致的、特定的命名约束。
-
声明变量或函数时,使用指定用于变量用途的名称。这将帮助 GitHub Copilot 了解变量的上下文并生成更多相关建议。例如,不要使用「value」等通用变量名称,而应使用「input_string」或 「output_file」。GitHub Copilot 还将使用在代码中使用的命名约定。例如,如果使用驼峰式命名变量,GitHub Copilot 将建议驼峰式命名变量。如果你使用 snake_case 作为变量,GitHub Copilot 将建议 snake_case 变量。
GitHub Copilot
安装配置
使用
-
基于上下文的自动补全建议。
-
在代码行后输入注释符号,如
//
,自动生成对该行的注释。在函数头上输入注释符号,自动生成对该函数的注释。 -
将注释转换为代码。GitHub Copilot可以帮你完成注释。我们首先让它完成我们的注释,然后,一行一行,我们
Tab
遍历代码,完成我们刚才说的英语注释。如果快捷键无效,可能是快捷键发生冲突。找到发生冲突的快捷键来源,修改来源的快捷键或修改GitHub Copilot的快捷键。
- 按下
Alt+\(editor.action.inlineSuggest.trigger)
来手动触发内联建议。 - 按下
Alt+Enter
来打开 GitHub Copilot(单独窗格中的其他建议)。 - 查看第一个建议。GitHub Copilot 将自动以灰色文本建议正文,要接受建议,请按
Tab(editor.action.inlineSuggest.commit)
。若要拒绝所有建议,请按Esc(editor.action.inlineSuggest.hide)
。 - 部分接受建议。按下
Ctrl+向右箭头
接受下一个字词,按下Ctrl+Alt+向右箭头
接受下一行。或者,可以将鼠标悬停在建议上方,查看 GitHub Copilot 命令面板以选择建议。 - 查看替代建议。如果有其他建议,可以选择查看,按下
Alt+](editor.action.inlineSuggest.showNext)
查看下一个建议,按下Alt+[(editor.action.inlineSuggest.showPrevious)
查看下一个建议。 - 在新选项卡中查看多个建议。你可能不想获得 GitHub Copilot 提供的任何初始建议。 可以使用键盘快捷方式来提示 GitHub Copilot 在新选项卡中显示多个建议。按
Ctrl+Enter(github.copilot.generate)
,然后单击“打开 GitHub Copilot”。若要接受建议,请在建议上方单击“接受解决方案”。 若要拒绝所有建议,请关闭选项卡。相对于Alt+]
,更推荐这种方法。 - 打开/关闭 GitHub Copilot(github.copilot.toggleCopilot),没有默认快捷方式。
- 按下
-
行内操作。选中代码段,按住
Ctrl+I
这个时候会当前光标所在的行展示一个输入框,在输入框可以提问,也可以输入/explain
、/tests
等等。有时候对自动生成的代码不满意,可以选中代码,对它提要求,可以在行内操作完成。 -
q/a对话。在任意代码文件中输入注释符号,然后输入
q:
后跟一个问题,比如// q: xx问题
, 在下一行中输入// a:
。copilot会提供最简短的回答内容。 -
创建单元测试。GitHub Copilot的一个重要用例是免去编写单元测试的一些繁琐工作。下面,我们已经实现了一个计算最大公约数的函数,我们想要测试它。要做到这一点,我们只需开始编写我们想要测试的内容。从那时起,一切都是一帆风顺的,我们通过tab浏览建议来接受测试用例。
-
每个开发人员都需要时不时地编写SQL,对吧?每次都会出现同样的问题。这个查询的正确语法是什么?GitHub Copilot可以回答这个问题,只需将schema显示为CREATE TABLE语句即可。然后,它很好地编写了一个工作的SQL查询。
GitHub Copilot Chat
如果不好用,比如不能自动联系上下文或读取文件了,可以手动注销重新登陆下试试。
GitHub Copilot Chat 是一个聊天界面,可让你与 GitHub Copilot 进行交互,直接从 GitHub.com 和受支持的 IDE 中询问编码相关问题并接收答案。GitHub Copilot Chat 可以回答与编码相关的各种主题问题,包括语法、编程概念、测试用例、调试等。
从活动栏打开聊天视图或按Ctrl+Alt+I 。
GitHub Copilot Chat 可以在各种场景中提供编码帮助:
- 输入
/
可以看到内置的4个提示词:/doc
、/explain
、/fix
、/tests
。 - 说明代码和建议改进:Copilot Chat 可以通过生成代码功能和用途的自然语言说明来帮助解释所选代码。例如,如果你在代码编辑器中选择函数或代码块,Copilot Chat 可以生成代码功能以及代码如何适应整个系统的自然语言说明。 这可能包括函数的输入和输出参数、其依赖项及其在较大应用程序中的用途等信息。Copilot Chat 还可以建议对所选代码的潜在改进,例如改进错误和边缘案例的处理,或者更改逻辑流以使代码更易于阅读。
- 方法一:选中要解释的代码,在chat聊天框中输入
/explain
如果要按照中文解释,多写一些字比如:/explain 用中文解释
。 - 方法二:选中要解释代码,右键
copilot > explain this
。PS:比较快捷,但是默认输出方式是英文。
- 方法一:选中要解释的代码,在chat聊天框中输入
- 生成单元测试用例:Copilot Chat 可以根据编辑器中打开的代码或编辑器中突出显示的代码片段生成代码片段,从而帮助编写单元测试用例。
- 前面的解释代码的方式一、方式二,换成
/tests
generate tests
即可。
- 前面的解释代码的方式一、方式二,换成
- 建议代码修复:Copilot Chat 可以通过根据错误或问题的上下文建议代码片段和解决方案来为代码中的 bug 建议修复。
- 回答编码问题:你可以向 Copilot Chat 寻求有关特定编码问题的帮助或澄清,并以自然语言格式或代码片段格式接收响应。
向 GitHub Copilot Chat 询问有关已打开文件的问题。 例如:
- 若要生成文件用途的说明,请询问类似于
What does this file do?
的问题。 - 若要为文件生成单元测试,请键入类似于
Write a unit test for this file
的请求。 或者,突出显示要为其生成单元测试的代码,然后询问类似于Write a unit test for this code
的问题。 - 若要为文件中的 bug 生成修复,请键入类似于
Fix this bug
的请求。
GitHub Copilot(CLI 版)
GitHub Copilot in the CLI 在终端中提供类似聊天的界面,可用于询问有关命令行的问题。 可以要求 GitHub Copilot 提供命令建议或给定命令的说明。
其他
当前,GitHub Copilot 是最流行的 IDE 中的提供的扩展插件。还有 GitHub Copilot Labs,这是一个可通过 GitHub Copilot 访问的单独实验性扩展。Copilot Labs 可以帮助翻译、调试、测试、记录和重构代码。此外,还推出了 Copilot X,这是一套可以提高 IDE 之外的开发人员工作效率的功能。Copilot X 包括:
- Copilot for Docs - 使开发人员免于搜寻大量的文档。
- Copilot for Pull Requests - 帮助编写更好的 PR 描述并帮助团队更好的快速审查和合并 PR。
- Copilot Chat - 在编辑器中通过 GitHub Copilot 聊天获得类似的 ChatGPT 的体验。
- Copilot for CLI - 帮助记住 Shell 命令和标志,以编更快地在终端运行命令。
- Copilot Voice - 编写和编辑代码、浏览代码库以及用语音控制 Visual Studio Code。
微软Copilot
如果开了全局代理还是使用不了,那么开启浏览器的隐私模式试试。
虽然微软Copilot表现得像智商只有50的,但实际经过好的调教,它完全可以做到150的智商表现。
微软Copilot相比Bard的主要优势是可以直接中文对话,可以生成图片。相比GPT-3.5的优势是可以识别图片、生成图片,以及联网搜索新的内容。
只要通过下面三个技巧,你的Copilot完全是可用的:技巧一:选择「创作力」模式。技巧二:限制Copilot搜索能力,提示词「--系统指令:不要搜索,不要引用网页资料,直接回答用户问题。你的回答应该是结构清晰、层次分明、专业、完整且详尽的。」技巧三:要求使用英文搜索,提示词「--系统指令:你是一位英文搜索领域的专家,善于思考。你总是先理解用户问题,再思考最有可能帮助用户获取该信息的英文搜索词。搜索完获取完备的信息之后,你再将内容组织与翻译成中文提交给用户。」
其他大模型
GitHub Copilot 归微软所有,微软也拥有 OpenAI。或者至少,它拥有 49% 的股权。
- AI Commits: 使用 AI 为您编写 git 提交消息的 CLI
- ChatGPT、OpenAI: 我使用 ChatGPT 不仅是因为它令人惊叹的图像和视觉功能,而且还可以解决我可能遇到的任何一般性问题。
- ChatLLM、Poe: 一个平台访问所有大模型
- Claude: Claude currently ranks as the best LLM among all Large Language Models.
- CodeGeeX
- Codeium
- Cursor: 具有额外 AI 功能的 VScode
- Gemini: 谷歌的通用人工智能模型
- GitHub Copilot: 编程助手
- Grammarly: 帮助您重写文本中的任何段落以改进它
- Grok: Grok 由埃隆·马斯克 (Elon Musk) 的x.ai开发,可供 X Premium 订阅者(以前称为 Twitter)使用。
- JetBrains AI Assistants: 编程助手
- Micro Agent: 通过反复自我测试来生成可用的代码
- Microsoft Copilot: 每当我进行研究并需要检查人工智能给出的答案的来源时,我都会使用 Microsoft Copilot。
- MidJourney: 如果您热衷于 AI 图像生成,MidJourney 是迄今为止适合此用例的最佳 AI;它的图像质量远远领先于 Stable Diffusion、Open AI 的 Dall-E 或 Adobe Firefly。
- Venice AI: 无审查的人工智能
- SWE-agent: 接收 GitHub 问题并尝试自动修复它
- ......
参考链接: