快速入门
OpenAI已经训练了非常擅长理解和生成文本的尖端语言模型。我们的API提供对这些模型的访问,可用于解决几乎任何涉及处理语言的任务。
在本快速入门教程中,你将生成一个简单的示例应用程序。在此过程中,您将学习将 API 用于任何任务的基础关键概念和技术,包括:
- 内容生成
- 综述
- 分类、分类和情绪分析
- 数据提取
- 译本
- 更多!
介绍
完成端点是我们 API 的核心,它提供了一个非常灵活和强大的简单接口。您输入一些文本作为
提示,API 将返回一个文本
补全,尝试匹配您为其提供的任何指令或上下文。
提示
为冰淇淋店写一个标语。
完成
我们用每一勺提供微笑!
你可以把它看作是一个非常高级的自动完成——模型处理你的文本提示,并尝试预测接下来最有可能发生的事情。
1从指令开始
想象一下,您要创建一个宠物名称生成器。从头开始想出名字很难!
首先,您需要一个提示,明确您想要什么。让我们从一个指令开始。
提交此提示以生成您的第一个完成。
不错!现在,尝试使您的说明更具体。
如您所见,在提示中添加一个简单的形容词会更改结果完成。设计提示本质上是“编程”模型的方式。
2添加一些示例
制定好的说明对于获得良好的结果很重要,但有时它们还不够。让我们尝试使您的指令更加复杂。
这个完成并不是我们想要的。这些名字非常通用,似乎模型没有接受我们指令中的马部分。让我们看看我们是否可以让它提出一些更相关的建议。
在许多情况下,显示
和告诉模型你想要什么很有帮助。在提示中添加示例有助于传达模式或细微差别。尝试提交此提示,其中包括几个示例。
好!为给定输入添加我们期望的输出示例有助于模型提供我们正在寻找的名称类型。
3调整您的设置
提示设计并不是您可以使用的唯一工具。您还可以通过调整设置来控制完成。最重要的设置之一称为
温度。
您可能已经注意到,如果在上面的示例中多次提交相同的提示,则模型将始终返回相同或非常相似的完成。这是因为您的温度设置为
0。
尝试在温度设置为
1 的情况下重新提交相同的提示几次。
看看发生了什么?当温度高于 0 时,提交相同的提示每次会导致不同的完成。
请记住,该模型预测哪些文本最有可能跟随其前面的文本。温度是介于 0 和 1 之间的值,实质上允许您控制模型在进行这些预测时的置信度。降低温度意味着风险更小,完成将更加准确和确定。温度升高将导致更多样化的完成。
对于您的宠物名字生成器,您可能希望能够生成很多名字创意。0.6的中等温度应该效果很好。
4构建您的应用程序
现在您已经找到了一个很好的提示和设置,您可以构建您的宠物名字生成器了!我们编写了一些代码来帮助你入门 - 按照以下说明下载代码并运行应用。
设置
如果您没有安装 Node.js,请
从此处安装它。然后通过克隆
此存储库下载代码。
git clone https://github.com/openai/openai-quickstart-node.git
如果您不想使用 git,也可以使用此
zip 文件下载代码。
添加您的 API 密钥
要使应用正常运行,您需要一个 API 密钥。您可以通过
注册一个帐户并返回此页面来获取一个。
运行应用
在项目目录中运行以下命令以安装依赖项并运行应用。
在浏览器中打开
http://localhost:3000,您应该会看到宠物名称生成器!
理解代码
在文件夹中打开。在底部,您将看到生成我们上面使用的提示的函数。由于用户将输入其宠物的动物类型,因此它会动态交换提示中指定动物的部分。generate.js
openai-quickstart-node/pages/api
1
2
3
4
5
6
7
8
9
10
11
function generatePrompt(animal) { const capitalizedAnimal = animal[0].toUpperCase() + animal.slice(1).toLowerCase(); return `Suggest three names for an animal that is a superhero. Animal: Cat Names: Captain Sharpclaw, Agent Fluffball, The Incredible Feline Animal: Dog Names: Ruff the Protector, Wonder Canine, Sir Barks-a-Lot Animal: ${capitalizedAnimal} Names:`; }
在 的第 9 行中,您将看到发送实际 API 请求的代码。如上所述,它使用温度为 0.6 的完成终结点。generate.js
1
2
3
4
5
const completion = await openai.createCompletion({ model: "text-davinci-003", prompt: generatePrompt(req.body.animal), temperature: 0.6, });
就是这样!您现在应该完全了解您的(超级英雄)宠物名字生成器如何使用 OpenAI API!
关闭
这些概念和技术将大大有助于您构建自己的应用程序。也就是说,这个简单的例子只展示了可能性的一小部分!完成端点足够灵活,可以解决几乎任何语言处理任务,包括内容生成、摘要、语义搜索、主题标记、情绪分析等等。
要记住的一个限制是,对于大多数
模型,单个 API 请求在提示和完成之间最多只能处理 2,048 个令牌(大约 1,500 个单词)。
我们提供一系列具有不同功能和价位的型号。在本教程中,我们使用了我们最强大的自然语言模型。我们建议在试验时使用此模型,因为它将产生最佳结果。一旦事情正常,您可以查看其他模型是否可以以更低的延迟和成本产生相同的结果。text-davinci-003
单个请求(提示和完成)中处理的令牌总数不能超过模型的最大上下文长度。对于大多数型号,这是 2,048 个代币或大约 1,500 个单词。根据粗略的经验法则,对于英文文本,1 个标记大约是 4 个字符或 0.75 个单词。
定价为每 1,000 个代币即用即付,前 18 个月内可以使用 3 美元的免费信用额度。
了解更多。
对于更高级的任务,您可能会发现自己希望能够提供比单个提示所能容纳的更多的示例或上下文。
微调 API 是此类更高级任务的绝佳选择。
微调允许您提供数百甚至数千个示例,以针对您的特定用例自定义模型。
后续步骤
要获得灵感并了解有关为不同任务设计提示的更多信息,请执行以下操作:
版权声明:除非特别标注原创,其它均来自互联网,转载时请以链接形式注明文章出处。