AI辅助编程6 ChatGPT和其他通用LLM

pythontesting 2024-06-21 17:13:00 阅读 90

6 ChatGPT和其他通用LLM

在本章中,我们将深入探讨一些广泛使用的通用大型语言模型,它们可以编写代码。当然,它们可能不像那些专门从事编码的模型那样拥有所有的功能,比如与集成开发环境的集成、复杂的安全性或用于训练模型的代码类型的防护措施,但它们仍然令人印象深刻。此外,它们不仅适用于编码,还非常适合规划和头脑风暴。

我们将看看 ChatGPT、Gemini 和 Claude 等大名鼎鼎的聊天机器人。我将介绍如何设置它们、它们的成本、它们有哪些很酷的功能,以及如何充分利用它们。

6.1 ChatGPT

ChatGPT 是 Chat Generative Pretrained Transformer 的缩写,于2022年11月30日正式发布。该应用的幕后推手OpenAI并没有在营销上大做文章。事实证明,他们没必要这么做。ChatGPT很快就爆红了,并凭借自己的影响力迅速走红。

短短五天内,这款应用就吸引了一百万用户,几个月内,用户数量猛增至一亿。它成为互联网史上增长最快的平台。

桑迪尼-阿加瓦尔(Sandhini Agarwal)是 OpenAI 的政策制定者,她指出:"我认为,人们开始使用它的程度之高,绝对出乎我们所有人的意料。我们在这些模型上做了太多工作,有时会忘记它们对外界来说是多么令人惊讶。

让我们快速了解一下 OpenAI 的背景故事。OpenAI 成立于 2015 年,得到了一些硅谷大佬的支持,如埃隆-马斯克(Elon Musk)、萨姆-阿尔特曼(Sam Altman)、格雷格-布罗克曼(Greg Brockman)、伊利亚-苏茨克沃(Ilya Sutskever)、约翰-舒尔曼(John Schulman)和沃伊切克-扎伦巴(Wojciech Zaremba)。他们准备投入高达10亿美元的巨资来推动公司的发展。

OpenAI 以非营利组织的形式启动,它更多地是一种学术氛围,员工大多是数据科学和人工智能方面的博士。其使命是实现人工通用智能(AGI),即在大多数重要任务中超越人类的技术。这一目标还包含利他主义的成分:利用AGI造福更多的人,避免使用任何可能伤害人类或赋予少数人过多权力的技术。

早期,OpenAI专注于研究,并与他人分享研究成果。该组织与其他机构携手合作,公开其专利和代码。但是,创建尖端生成式人工智能系统的成本非常高昂。

为了保持其伟大的梦想并引进合适的人才,OpenAI 在 2019 年创建了一家 "有上限 "的营利性公司。这意味着他们现在可以合法地从风险基金和战略投资者那里获得现金,也可以给员工分一杯羹。同年,微软投资了10亿美元。之后的几轮投资,微软总共投入了约 30亿美元。时间快进到 2023 年 4 月,这家科技巨头全线出击,投入了高达 100 亿美元的资金。

6.2 GPT-4

OpenAI 的 GPT-4 模型在代码生成方面表现出非凡的多功能性,这得益于其涵盖广泛来源的多样化训练数据。这种广泛的训练使 GPT-4 在多项专业和学术基准测试中的表现达到了人类水平,而且在大多数编程语言中,GPT-4 的表现始终优于 GPT-3 和 GPT-3.5。这主要归功于 GPT-4 在遵循自然语言表达的复杂指令和生成更有深度的技术或创意作品方面的能力得到了增强。另一个关键因素是 32K 上下文窗口。

有趣的是,在对特定代码生成基准进行评估时,与 Reflexion(基于 LLM 创建复杂代理的框架)集成的增强版 GPT-4 在 HumanEval 上的通过率高达 88%,令人印象深刻。这一成绩明显高于 GPT-4 的基础版本,后者的通过率为 67%。这表明,经过一定的改进,GPT-4 可以在代码生成任务中达到最先进的性能。

在 Codeforces 平台上与竞争性编程场景进行比较时,GPT-4 获得了 392 分的评分,比 GPT-3.5 的 260 分有所提高。不过,GPT-4 在竞技编程领域仍是一个新手,这些分数处于倒数 5%。尽管 GPT-4 已经取得了长足进步,但要在艰巨的编码挑战中与人类技能相媲美,它仍有许多工作要做。

6.3 ChatGPT概述

我将使用高级版本的 ChatGPT,即 ChatGPT Plus。每月订阅费用为20美元。

以下是你将获得的酷炫功能:

  • 优先访问权。

  • 快速回复

  • 抢先体验新产品

  • 支持最新模式

在左上方,您可以将鼠标悬停在下拉菜单上,选择您想要的模式或访问插件商店。在屏幕左侧,您可以单击按钮创建新的聊天会话。在底部,您会看到您的用户配置文件,在这里您可以了解您的 ChatGPT 计划、更改设置和添加自定义说明。您还可以更改用户界面的主题:选项包括系统、深色和浅色。然后在底部的输入框中可以输入提示

  • 提示:Write a Python code snippet that calculates the factorial of a number.

假设您想了解是否有其他方法来创建代码。您可以询问

  • 提示: What is another way to create this code?

ChatGPT 提供了另一种代码建议,称为迭代法。但假设您不知道这是什么?同样,您可以继续聊天。

每个会话都是独立的。因此,如果你在以后的会话中向ChatGPT询问它为阶乘计算创建的代码,它将不知道你指的是什么。

还需要考虑的是聊天会话的上下文窗口。这一点很重要,因为它决定了模型能 "记住 "多少之前的对话或文本,并用于生成连贯且与上下文相关的回复。对于 GPT-3.5,上下文窗口为 16K,但对于 GPT-4,则为 32K。

如果您关闭了聊天记录,您的新聊天记录将不会用于训练人工智能,也不会显示在侧边面板的历史记录中。但是OpenAI仍会保留所有聊天记录30天,然后将其永久删除,这主要是出于法律目的。

您可以将其转化为链接并与他人分享。

下载聊天数据:您将收到一封包含所有 ChatGPT 聊天记录的电子邮件。

ChatGPT 可能会在生成文本的过程中停止。这种情况下,通常会弹出一个 "继续 "按钮。点击该按钮,继续生成文本。如果没有按钮,只需在提示符下输入 "继续输出 "即可。如果没有达到你的要求,只需点击 "停止生成 "按钮即可暂停。

6.3.1 移动应用程序

ChatGPT 可以支持 iOS 和 Android 设备。这些应用程序与网页版相当类似,但至少目前还没有插件等功能。

您可以在手机上与 ChatGPT 进行语音聊天。如果您不喜欢在狭小的屏幕上打字,这将非常方便。只需前往设置中的 "新功能 "部分,选择加入即可开始使用。打开此功能后,点击主屏幕右上角的耳机图标即可开始与 ChatGPT 对话。你可以从五种不同的声音中进行选择,让 ChatGPT 与你聊天。这个语音系统的工作原理是一个名为 "耳语 "的人工智能文本到语音生成模型。

移动版 ChatGPT 可以让你与助手分享照片,从而使聊天更加有趣。你可以拍下任何东西的照片,比如一个物体、一个地标,甚至一些代码,然后与 ChatGPT 进行聊天。应用中还有一个有趣的绘图工具,让你在聊天时可以突出显示图片的特定部分。

6.3.2 自定义说明

有了ChatGPT中的自定义说明,您可以根据自己的需要调整回复方式。这项功能可以让您节省时间,因为您不必每次与机器人聊天时都要不断微调回复或想出新的提示。您可以在个人档案中打开自定义指令。

设置自定义指令时,您需要回答以下两个问题:

  • ChatGPT: 为了提供更好的回复,您希望 ChatGPT 了解您哪些方面的信息?

  • ChatGPT: 您希望 ChatGPT 如何回复?

让我们举个例子:

  • ChatGPT: 您希望ChatGPT了解您的哪些情况以提供更好的回复?

  • 开发人员: 我是一名程序员,我所在的团队遵循Python代码PEP 8风格指南。我们重视代码的简洁、可读性,并坚持最佳实践。我通常从事数据处理和分析工作,在编写高效、结构良好的代码方面经常需要帮助。

  • ChatGPT: 您希望ChatGPT 如何回应?

  • 开发者: 我希望 ChatGPT 提供符合 PEP 8 风格指南的 Python 代码片段。它应该优先考虑编码的可读性和最佳实践。在提出解决方案时,我希望能解释为什么推荐某种特定的方法,以及它是如何与 PEP 8 标准保持一致的。如果 ChatGPT 能指出与当前任务相关的任何常见陷阱或错误,并提供避免这些陷阱或错误的提示,我将不胜感激。

6.4 使用必应浏览

ChatGPT的训练截止日期是2023年4月。这对开发人员来说可能是个问题。由于库、框架和工具的变化如此之快,在此之后可能会有许多新特性或功能出现,而 ChatGPT无法及时更新。

不过ChatGPT有一个小窍门:用 Bing 浏览。它可以让你进行实时网络搜索,从而找到答案。

比方说,你正在查看一个新的框架,比如 LangChain。它自 2022 年末面世以来,已经发展了很多。它的设计也是为了让使用 LLM 的应用开发更顺畅,所以你可能会喜欢使用它。

要激活Browse with Bing并增强ChatGPT对LangChain目前状况的了解,请在提示中添加类似 "使用互联网进行此响应 "的内容。下面是一些旨在获取 LangChain 一般信息的提示示例:

  • 提示: 告诉我 LangChain 框架及其主要功能。使用互联网进行回答。

  • 提示: 在互联网上查看有关开始使用 LangChain 的介绍性资源或文档。

  • 提示: 在互联网上浏览使用 LangChain 框架构建的应用程序示例。

  • 提示: 查找与 LangChain 框架相关的最新更新或发布。使用互联网进行回答。

在回答这些提示时,ChatGPT 确实提供了相当有用的答案。例如,对于第一条提示,ChatGPT 提出了 LangChain 的五个主要功能:

您还可以更改这些内容的格式。试试这个提示

  • 提示: 将此内容变成表格。

当你使用必应浏览功能时,ChatGPT 可能需要几秒钟甚至一分钟以上的时间来响应。有时,ChatGPT 甚至会卡住并吐出一个错误。你可能需要多试几次才能得到答案。ChatGPT 有时也会闹情绪。

使用必应浏览时,输出结果通常会有一个指向信息来源的网络链接。点击链接以验证内容是个好主意。毕竟,你必须谨慎对待 ChatGPT 生成的所有内容。例如,有时回复可能来自社交媒体帖子,而这并不总是最可靠的来源。

幸运的是,您可以指示 ChatGPT 关注某些类型的来源。

  • 域名限制

使用站点操作员将搜索限制在 .edu 或 .gov 等知名域名或特定的知名组织。

  • 使用学术关键词

例如同行评审、期刊、研究和调查。

  • 使用出版日期过滤器

根据最近的出版日期过滤搜索,以获得最新的相关信息。

  • 专业或学术协会

指定专业或学术协会,以查找权威出版物或报告。

那么 ChatGPT 在为 LangChain 创建代码方面表现如何呢?让我们来看看。下面是一个简单程序的提示

  • 提示

我想编写一个使用 LangChain 框架的 Python 程序。它将具有以下功能:

  1. 从用户那里获取关于某个主题的输入。

  2. 选择要创建的内容类型:博客或社交媒体文章。

  3. 使用 LangChain 访问 OpenAI API,根据主题创建博客或社交媒体文章。

当我在 ChatGPT 中进行尝试时,结果是,嗯,不怎么样。当然,由于 ChatGPT 采用了 Python,所以它能为用户输入提供基本的 Python 代码结构,这并不令人震惊。但是 LangChain 代码呢?太离谱了。它弄错了 LangChain 库的导入,还漏掉了其他一些东西。此外,它还不知道如何调用 OpenAI API。

一句话: 至少现在,使用必应浏览功能可以轻松解决你的日常一般问题。

6.5 繁琐的任务

软件开发很容易变得复杂,步骤繁多。其中包括规划、编码和测试。其中最令人头疼的就是重复编码。这既枯燥又耗费大量时间。开发人员往往最终只能编写相同的例行代码、解决错误和查看代码。诚然,这些都很重要,但这并不是制作软件的乐趣和创造性所在。此外,试图跟上新的编程语言、框架和工具也会让人不知所措。

像 ChatGPT 这样的人工智能工具可以帮助我们摆脱软件开发中的枯燥乏味。在接下来的几节中,我们将深入探讨其中的一些领域。

6.5.1 正则表达式

正则表达式(或 regex)是一种处理文本的巧妙工具。把它们想象成一种强大的查找和替换功能,可以发现字符串中的模式。但问题是:regex 就像是在学习一种全新的符号和命令语言。这可能会让人伤透脑筋!要记住所有这些奇怪的反斜线、点、括号和其他不知道是什么的组合,足以让你头晕目眩。有时,你会觉得自己需要一个解码戒指,才能弄懂这一切。

例如,以这样的 regex 模式为例:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*[@$!%*?&])[A-Za-z\d@$!%*?&]{8,}$

这将用于验证一个强密码,确保它至少有八个字符,包括一个大写字母、一个小写字母、一个数字和一个特殊字符。

你可能不会喜欢写这个,但 ChatGPT 可以创建一个 regex。下面是一些常见的示例:

  • 提示: 创建一个 regex 模式来验证标准电子邮件地址。电子邮件应以字母数字字符开头,然后是可选的点、连字符或下划线。然后是"@"符号,接着是更多字母数字字符、点,最后是 2 到 6 个字符的域名。

  • Regex 模式: [1]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,6}$

  • 提示: 向我提供验证 URL 的 regex 模式。URL 可以以 "http "或 "https "开头,接着是"😕/",然后是域名,域名可以包括字母数字字符和点。域名之后是一个可选路径,以"/"开头,可包含字母数字字符、斜线、点或连字符。URL 可以以可选的"/"结尾。

  • Regex 模式: ^(https?😕/)?([\da-z.-]+).([a-z.]{2,6})([/\w .-])/?$

  • 提示: 创建一个 regex 模式来验证 MM/DD/YYYY 格式的日期。月应在 01 到 12 之间,日应在 01 到 31 之间,年应在 1900 年代或 2000 年代。

  • Regex 模式: ^(0[1-9]|1[0-2])/(0[1-9]|[12][0-9]|3[01])/(19|20)\d\d$

  • 提示: 我正在寻找一个 regex 模式来验证 IPv4 地址。每个八位位组应为 0 到 255 之间的数字,八位位组之间用点分隔。请为此创建一个 regex 模式。

regex 模式: ^(25[0-5]|2[0-4]\d|[0-1]?\d\d?).((25[0-5]|2[0-4]\d|[0-1]?\d\d?).){2}(25[0-5]|2[0-4]\d|[0-1]?\d\d?)$

ChatGPT 还能帮你破解 regex 模式。下面是一个示例提示:

  • 提示: 这是什么 regex?^((\d{3})\s?|\d{3}[-.])\d{3}[-.]\d{4}$

答复是,这是为了与北美电话号码格式相匹配而设计的。

6.5.2 启动代码

启动代码是最初的代码片段或模板,为您提供了一个良好的开端。毫无疑问,它可以节省大量时间。但启动代码也可以是一种学习工具。如果你是编码新手,探索一些启动代码可以帮助你弄清工作原理。更重要的是,启动代码有助于保持一致性,尤其是在需要每个人都保持一致的大团队中。

下面是一个例子:

const express = require('express');

const app = express();

const port = 3000;

app.get('/', (req, res) => {

res.send('Hello, World!');

});

app.listen(port, () => {

console.log(`Server running at http://localhost:${port}`);

});

这是一个使用 Express.js 创建基本网络服务器的简洁明了的示例,Express.js 是 Node.js 的一个流行网络框架。由于其简单性和对核心元素的使用,它是很好的入门代码。

  • Node.js/Express.js: "提供一个基本的 Express.js 服务器示例"。
  • React (JavaScript) "如何创建一个简单的 React 组件?
  • JavaScript "能告诉我如何在 JavaScript 中定义一个简单函数吗?
  • Android(Java): Java 中基本 Android 活动的启动代码是什么?
  • Python/Flask "能否举例说明一个基本的 Flask 应用程序?
  • Vue.js(JavaScript)"告诉我如何建立一个基本的 Vue 实例。
  • Django(Python)"如何用一个简单的视图启动一个新的 Django 项目?
  • Swift (iOS) "在 Swift 中,简单 UIViewController 的启动代码是什么?

6.5.3 GitHub README

GitHub 的 README 文件本质上就是版本库的欢迎辞。在这里,你可以了解项目的全部内容--目的、作用和使用方法。它通常被称为 README.md,用 Markdown 写成,用于让文件看起来更美观、更易读。你会在 repo 的主页上看到 README。

写得好的 README 非常重要,因为它能让查看项目的人更顺利地了解一切。无论用户是想使用该项目,还是想为其做出贡献,README 都会为项目定下基调,使其更加清晰明了。README 还将规定规则和预期内容。

编写 README 并不总是轻而易举的事。你必须在提供所有重要细节和保持简洁之间找到平衡点。专注于编码的开发人员可能会跳过重要部分,因为他们没有意识到,对他们来说显而易见的东西并不是对每个人都显而易见。

要写好 README,确实需要一些写作技巧。但这并不一定是开发人员的强项。此外,随着项目的成长和变化,保持 README 的更新本身就是一件大事。是的,这可能是一种杂耍行为。

但有了 ChatGPT 的帮助,编写 README 就会变得轻而易举,而且内容也会相当可靠。让我们举个例子。想象一下,你刚刚创建了一个用于挖掘食谱的超棒应用。下面是一个启动提示:

  • 提示: 为我名为 "Recipe Finder "的项目编写一份 GitHub 自述。该项目使用 Vue.js 开发,可帮助用户根据所拥有的食材查找食谱。用户只需输入他们拥有的食材,应用程序就会返回他们可以用这些食材烹饪的食谱列表。要启动应用程序,只需克隆软件源,运行 npm install,在 .env 文件中插入 API 密钥,然后执行 npm start 即可。

ChatGPT 会创建项目介绍,然后包括功能、入门、使用、贡献、许可和致谢等部分。

对于 README 的某些部分,ChatGPT 做了一些假设。例如,它指定项目使用 MIT 许可。但你可以继续提示 ChatGPT 提供项目的更多细节。

如果你不知道该使用哪种开源许可证,请查看选择许可证 (https://choosealicense.com),它可以帮助你解决这个问题。

6.6 跨浏览器兼容性

跨浏览器兼容性是指确保您的网站或网络应用程序能在不同的浏览器上正常运行。这一点很重要,因为您的用户可能会使用 Chrome、Firefox、Safari 和 Edge 等多种浏览器访问您的网站或应用程序,而所有这些浏览器都有不同的版本。

  • HTML5 和 CSS3 功能: "我想在输入字段中使用占位符属性,但它在旧版本的 Internet Explorer 中不起作用。我怎样才能创建一个备用选项?
  • CSS 前缀: "我想在 CSS 中使用过渡属性,但我想确保它与所有浏览器兼容。我该如何编写?
  • JavaScript 功能: "我正在使用 JavaScript 中的 fetch 函数进行 HTTP 请求,但 Internet Explorer 不支持该函数。我该怎么办?

6.7 Bash命令

在终端中输入的与计算机系统交互的指令称为 Bash 命令。它们能让你完成各种任务,如在文件中移动、查看计算机正在做什么以及操作文件。

掌握 bash 命令的窍门可能很难,尤其是当你刚进入 Unix/Linux 世界时。有些命令的编写方式可能很隐晦,一开始很难掌握。要真正熟练掌握它,需要相当长的时间和练习。此外,命令种类繁多,每种命令都有自己的一系列选项和变化。当然,互联网上有一些资源可以提供帮助。然而,即使是专业人士也很难记住他们不常用或最近才学会的命令。

不过,你可以使用 ChatGPT 作为你使用 bash 命令的虚拟助手。下面是一些提示示例:

  • 提示: 如何使用 bash 命令按修改时间排序列出目录中的所有文件?

  • 提示 计算文件行数的 bash 命令是什么?

  • 提示 如何使用一条命令创建一个目录并导航到其中?

  • 提示 如何将命令的输出重定向到文件?

  • 提示:如何将命令的输出重定向到文件?搜索系统中运行的特定进程的命令是什么?

  • 提示: 如何使用 bash 将目录压缩成 ZIP 文件?

  • 提示 我应该用什么命令在 bash 中更改文件的权限?

6.8 GitHub Actions

GitHub Actions 是 GitHub 内置的持续集成和持续部署(CI/CD)工具。它允许开发者直接在自己的仓库中设置、定制和运行软件开发工作流。基本上,GitHub Actions 工作流是你在工作流文件中定义的一组自动化流程。这些流程由多个作业组成,每个作业做不同的事情,比如运行命令、设置流程或运行操作。它们以 YAML 语法编写,并在发生特定操作(如推送代码、创建新问题或安排时间)时启动。有了 GitHub Actions,开发人员可以直接从 GitHub 上构建、测试和部署代码,使软件开发过程更加顺畅和自动化。您可以共享、重用甚至调整其他开发者的操作,这对于团队合作和共享自动化软件开发世界中的技术诀窍非常有利。

ChatGPT 可以帮助你创建 GitHub 操作。以下是一些提示:

  • 提示: 创建一个 GitHub Actions 工作流模板,使用 Hugo 构建和部署一个静态网站,并将其部署到 GitHub Pages。

  • 提示: 使用 Maven 为 Java 项目生成一个 GitHub Actions 工作流模板,包括编译代码、运行测试和打包应用程序的步骤。

  • 提示: 为 Docker 化应用程序创建 GitHub Actions 工作流模板,包括构建 Docker 镜像、将其推送到 Docker Hub 和部署到 Kubernetes 集群的步骤。

  • 提示: 为 React Native 移动应用程序生成 GitHub Actions 工作流模板,包括安装依赖项、构建应用程序和将 APK 上传到指定 Google Drive 文件夹的步骤。

6.9 插件

ChatGPT 插件是使用 OpenAI LLM 功能的迷你应用程序。它们打开了使用外部数据库和应用程序的大门。这就像在 iOS 或 Google Play 上拥有自己的小应用程序商店一样。

要使用插件,首先需要确保您已激活该功能。进入个人档案,选择 "设置",然后选择 "测试版功能"。

将鼠标悬停在屏幕顶部的 GPT-4 图标上,然后选择 "插件",即可找到插件。

在顶部,您可以浏览插件。您可以筛选流行、新、所有和已安装的应用程序。还有一个搜索框。

6.9.1 Codecademy 插件

让我们试试 Codecademy 的插件。首先,按下安装按钮。要激活它,请转到屏幕顶部并点击向下箭头。然后点击 Codecademy 图标。

该插件有两个主要功能。一个是允许用户根据自己的目标和经验水平查找特定的课程或路径。例如,对人工智能和 ChatGPT 感兴趣的用户可以向插件询问课程推荐,插件会提供相关课程列表,包括课程描述以及课程是免费还是付费的信息。

其次,该插件还可以作为技术文档的快速参考工具,提供指向文档和文章的链接,并提供更详细的信息。

我们将测试这部分内容:

  • 提示: 解释 JavaScript 中数组的最佳文档或文章是什么?

顶部的图标显示系统正在访问 Codecademy 插件。下面的文本显示有许多关于此主题的可用资源。不过,插件随后通过提供三个文档的链接缩小了范围。

6.9.2 AskYourDatabase 插件

Sheldon Niu 提出这个插件的想法是因为他经常使用 ChatGPT 来编写 SQL 语句,但这很麻烦。每次他都要解释整个数据库的模式,然后还要复制和粘贴输出结果才能在终端上运行。他想,"嘿,如果 ChatGPT 可以直接与数据库聊天,那会怎么样呢?就这样,他开始创建 AskYourDatabase。

有了这个工具,你就可以用 ChatGPT 轻而易举地完成数据库模式的原型设计。然后,查询数据就变得易如反掌了。更妙的是,你可以跳过那些通常需要大量设置的传统商业智能(BI)工具。

6.9.3 Recombinant AI插件

马克-扎姆(Mark Zahm)是一名开发人员,他创办了自己的人工智能咨询公司。他创建了 Recombinant AI 插件,让开发人员在使用 GitHub 和 Gitlab 仓库时更轻松。该工具可让 ChatGPT 获取整个程序的要点,并筛选出琐碎的细节。这样,用户就能牢牢掌握自己的代码,有助于调整、分析或将自己的想法融入软件。马克称它为 "会话式集成开发环境",这种说法非常巧妙。

以下是它的一些应用:

  • 执行存储代码片段或提示等传统任务

  • 使用项目和文件系统创建复杂的任务列表和思维链提示

  • 保存有关最新编程库的重要信息

6.10 GPTs

你可以创建自己的自定义 ChatGPT。这就是所谓的 GPT,它非常容易组装,通常只需几分钟即可完成。

让我们来看一个例子。我们将为软件开发风格指南创建一个 GPT。这里面包含了一些基本的指导原则,比如如何命名变量才能让每个人都能理解,缩进代码的正确方法,以及团队遵循的特定编程模式或实践。这是代码的着装规范。

这样做的目的是使所有代码统一、整洁。这样,每个人都能更容易地阅读和理解代码库,这在大型项目中可能是救命稻草。

但问题是:如果你是新手,可能会有点不知所措。你可能已经习惯了某种编码方式,突然间你必须适应新的标准。

这时,GPT 就能帮上忙。让我们来创建一个。首先,在 ChatGPT 的主屏幕左上角选择 "探索",然后选择 "创建 GPT"。如图 6-8 所示,你会看到一个有两个面板的屏幕。

左侧面板是创建 GPT 的地方,右侧面板是预览区域。若要使其与开发样式指南配合使用,提示将如下所示:

  • 提示: 创建一个执行软件开发风格指南的系统。

ChatGPT 将开始创建 GPT 的说明。这个提示有点模糊,但 ChatGPT 会问一些问题来获取更多信息。它首先会为 GPT 建议一个名称--建议使用 "代码造型师"。

然后,它将使用 DALL-E 3 为 GPT 创建个人形象。

然后,它会询问语言、实践、指南、规则、应避免的事项等详细信息。比方说,你告诉它语言是 Python,并给它一些其他要求。

接下来,在面板顶部选择 "配置 "选项卡。然后你就可以上传你的风格指南了。

然后,你就可以在右侧面板上使用 GPT 进行实验了。如果您要求它编写代码,它会自动使用 Python 并遵守您的规则。

您可以点击右上角的图标保存 GPT。然后它就会显示在主屏幕上。要使用它,只需点击 GPT 图标即可。

OpenAI 还为 GPT 创建了一个应用程序商店。在 ChatGPT 屏幕左上方选择 "探索 GPT",即可进入应用商店。

其中一个类别是编程。下面是一些可用 GPT 的示例:

  • GPTavern 是一个创新平台,旨在通过一种称为 "提示编程 "的独特方法教授编码。它提供 20 多个热键来简化编码过程,并提供 75 个学习代码的入门项目。该平台具有互动性,用户可以提问、上传照片、访问命令菜单和 README 以获得指导。

  • DesignerGPT 由 Pietro Schirano 创建,专门创建和托管美观的网站。

  • Screenshot To Code GPT由: godofprompt.ai 提供,用户可以上传网站截图,然后将其转换为简洁的 HTML、Tailwind 和 JavaScript 代码。

  • pyxl.ai 提供的 Mindmap/Diagram/Chart-PRO BUILDER 有助于代码和数据库的可视化。它能让用户使用方便的拖放编辑器创建流程图、图表和序列,帮助理解和组织复杂的数据结构。

  • Code Guru 由 Ryan J. Topps 开发,提供一系列服务,包括审查代码、编写拉取请求、生成和优化函数、编写测试和评论现有代码。

参考资料

  • 软件测试精品书籍文档下载持续更新 https://github.com/china-testing/python-testing-examples 请点赞,谢谢!
  • 本文涉及的python测试开发库 谢谢点赞! https://github.com/china-testing/python_cn_resouce
  • python精品书籍下载 https://github.com/china-testing/python_cn_resouce/blob/main/python_good_books.md
  • Linux精品书籍下载 https://www.cnblogs.com/testing-/p/17438558.html

6.11 Gemini

ChatGPT 的出现让 Google 猝不及防。尽管谷歌在人工智能领域早有布局并投入巨资,但它还没有准备好迎接生成式人工智能的浪潮。谷歌对涉足这项新技术持谨慎态度,担心其准确性及其对公司利润丰厚的广告业务的影响。但在 2023年初,谷歌的股价出现了下跌,这让事情发生了变化。公司决定采取行动,推出了自己的生成式人工智能 Bard,算是对 ChatGPT 的回击。Bard一开始遇到了一些挫折,但后来渐入佳境,进入了不同的谷歌应用,并帮助公司股价反弹。

2024年2月,谷歌将Bard平台更名为 Gemini。除了免费版本外,现在还推出了高级版本,即 Gemini Advanced,初始免费两个月后,每月收费 19.99 美元。它使用的是谷歌最先进的LLM,名为 Ultra 1.0。据谷歌称 "它可以帮助你处理更高级的编码场景,为你的想法提供传声筒,并帮助你评估不同的编码方法。

谷歌还为Android和iOS推出了移动版 Gemini。通过该应用,你可以打字、交谈或使用图片与 LLM 互动。

就像 ChatGPT 一样,在屏幕左侧有聊天会话列表。如果想隐藏列表,只需点击上方的汉堡包图标。对于任何聊天,你都可以点击右侧的小图标来更改名称或删除它。还有一个很酷的功能:你可以把想保留的聊天记录固定在你的手边。

如果你想清除全部或部分项目,请点击左下角的 "活动"。在这里,你还可以告诉双子座,你是想让它保留你的提示,还是让它们就这样消失。

在屏幕中间,你会看到一些关于如何使用双子座的有用提示,以及一些安全提示。底部是输入提示的位置。右侧是上传图片的位置。双子座可以提取文字、发现物体和场景、回答有关图片的问题,甚至还能生成一些有创意的文本格式。

输入框右侧还有一个麦克风图标。通过它,你可以使用语音转文字功能为双子座生成文字。

扩展目前只适用于Google应用程序,如Flights、Hotels、Maps、Workspace 和 YouTube;没有第三方扩展。

最后,Gemini可以实时访问互联网。它的回复将包含引文,以便您验证来源。

6.11.1 应用程序

Excel 和 Google Sheets 等生产力应用软件不仅适用于电子表格。它们都有自己的编程语言,可以增强它们的功能。以 Excel 为例。它有 Visual Basic for Applications (VBA),这是一个强大的编程系统,可以让你编写自己的脚本和程序。它非常适合将老式任务自动化、制作特殊函数和分析数据。Excel 还配备了许多现成的功能,如 PivotTables 和 Power Query,它还能与 Power BI 配合使用,实现一流的数据可视化和分析。

另一方面,Google Sheets 与 Google Apps Script(JavaScript 的表兄弟)一起使用。它可以让你完成与 Excel 类似的任务。此外,它还能与 Drive 和 Gmail 等 Google 应用程序顺利集成。Google Sheets 还拥有一套自己的即用功能,你还可以在 Google Workspace Marketplace 上使用不同的附加组件来增强它的功能。由于完全基于云,它非常适合与他人合作,是网络应用程序和小组项目的可靠选择。

那么,Gemini 可以帮上忙吗?当然可以。例如,你可以用它来解释一个公式。毫无疑问,公式可能相当复杂。下面就是一个例子:

提示: 解释以下 Excel 公式:=SUM(OFFSET(A1,1,0,COUNT(A:A),1))

对于 Gemini 来说,理解这个公式不成问题。

另一个用例是创建 VBA 脚本。下面是一些示例提示:

  • 提示: 如何使用 VBA 在 Excel 中创建一个自定义表单,用于输入用户登录信息?

  • 提示: 你能帮我为 Excel 编写一个 VBA 脚本,用密码保护特定数据吗?

  • 提示: 我需要 VBA 代码来验证 Excel 用户登录表中的电子邮件地址和日期格式。您能提供帮助吗?

  • 提示: 能否使用 VBA 从 Excel 自动发送电子邮件通知,以获取有关用户登录信息的更新?

虽然这一切都很好,但在使用电子表格时,了解数据、公式和脚本之间的关系非常重要。了解它们之间的关系有助于建立功能强大且不会出错的模型。毕竟,如果你调整了数据中的某些内容,这种变化就会波及你的公式,并扰乱你的脚本输出,在你意识到之前,你的最终结果就已经发生了翻天覆地的变化。

Gemini可以加载和分析 Excel 电子表格。然后,你就可以对它们提出问题,比如逐步理解,或者强调数据或逻辑的某个方面。

让我们举个例子。假设你有一个 Excel 电子表格,其中包含图书销售数据。下面是一些提示示例:

  • 提示: 你能告诉我如何在 Excel 中找到一位作者赚取的最高版税金额吗?

  • 提示: 我想在 Excel 中计算每本书的库存周转率。我应该使用什么公式?

  • 提示: 如何在 Excel 中创建库存短缺警报,指示何时根据重新订购水平订购更多的库存?

  • 提示: 如何在 Excel 中计算图书好评(评分 4 分或更高)的百分比?

6.11.2 编码

Gemini 可理解 20 多种计算机编程语言。因此,让我们用这个提示试试系统:

  • 提示: 生成一个将摄氏温度转换为华氏温度的 TypeScript 函数。

几种处理响应的方法。

6.12 Claude

早在 2021 年,达里奥和达尼埃拉-阿莫迪这对兄妹就创办了自己的初创公司 Anthropic。他们曾是 OpenAI 的大佬,但他们的想法是创建一个与众不同的生成式人工智能平台。他们的愿景是专注于让人工智能更安全,比如将偏见降到最低。这就是后来的宪法(constitutional)人工智能。

LLM拥有强大的编码技能。它在Codex HumanEval(一项针对Python的编码测试)中的得分率为71.2%。

克劳德的一大优势是它的上下文窗口,可容纳 100,000 个标记。这意味着它可以处理大型代码列表。您还可以上传 PDF 等文件。

在顶部,您可以输入提示并上传最多五个文件。下面是您之前的活动列表,按活动发生的天数分组。

假设我们这样输入

  • 提示: 你能编写一个反转字符串的 JavaScript 函数吗?

与 ChatGPT 一样,Claude 也提供免费版。但也可以每月支付 20 美元购买高级版本。升级后,您将获得五倍的使用容量、高流量期间的优先访问权以及对新功能的早期访问权。

6.13 小结

在本章中,我们介绍了一些大型 LLM,如 ChatGPT、Gemini 和 Claude。我们查看了它们很酷的功能,如代码生成、插件、实时网上冲浪和处理大块信息。当然,它们可能无法与专业的编码工具相提并论,但当你想加快软件开发速度时,它们仍能为你提供很多帮助。随着这些 LLM 的不断完善,它们将带来更多令人惊叹的人工智能编程突破。


  1. a-zA-Z0-9._- ↩︎



声明

本文内容仅代表作者观点,或转载于其他网站,本站不以此文作为商业用途
如有涉及侵权,请联系本站进行删除
转载本站原创文章,请注明来源及作者。