入门文档(docs)
快速入门(Quickstart)

快速入门 Quickstart

介绍 (Introduction)

OpenAI培训了先进的语言模型,非常擅长理解和生成文本。我们的API提供访问这些模型的方式,可用于解决涉及处理语言的任何任务。

在这个快速入门教程中,您将构建一个简单的样例应用程序。在此过程中,您将学习到使用API对于任何任务都是基础的关键概念和技术,包括:

  • 内容生成
  • 摘要
  • 分类、归类和情感分析
  • 数据提取
  • 翻译
  • 很多其他的东西!

补全(Completion) (opens in a new tab)

Completions是我们API的核心,提供了一个非常灵活和强大的简单接口。您将一些文本作为提示(Prompt)输入,API将返回一个文本补全(Completion),试图匹配您给它的任何指令或上下文。

Prompt

为一个冰淇淋店写一个标语。

Completion

我们每勺都掌握微笑!

您可以把它想象成一种非常先进的自动完成——模型处理您的文本提示并尝试预测最有可能出现的内容。

1 从指令开始

想象一下,您想创建一个宠物名字生成器。从零开始想出名字是很难的!

首先,您需要一个清晰表明您想要什么的提示。让我们从一个指令开始。提交此提示以生成您的第一个完成。

提示:为一匹马建议一个名字。
 
Amazing Grace.
 
不错!现在,试着让您的指令更加具体。
 
提示: 为一匹黑色的马建议一个名字。
Shadowfax.

正如您所看到的,向我们的提示添加一个简单的形容词会改变结果。设计您的提示本质上就是如何“编程”模型。

2 添加一些示例

制作好的指导说明对于获得良好的结果很重要,但有时候它们还不足够。让我们试着让你的说明更加复杂。

为一只超级英雄马建议三个名字。

这个完成度还不太是我们想要的。这些名称非常通用,似乎模型没有注意到我们说明中的马部分。让我们看看是否可以让它提供一些更相关的建议。

在许多情况下,向模型展示并告诉你想要什么都是有帮助的。向提示添加示例可以帮助传达模式或细微差别。尝试提交这个包含几个示例的提示。

为一只超级英雄动物建议三个名字。
 
动物:猫
名字:锐爪队长、毛球特工、无敌猫
动物:狗
名字:保护者拉夫、神奇犬、多吠犬爵士
 
 

很好!添加我们期望对于给定输入的输出的示例,帮助模型提供了我们想要的类型的名称。

3 调整您的设置

提示设计不是你所拥有的唯一工具。通过调整设置,你还可以控制补全。 最重要的设置之一叫做温度(temperature)

你可能已经注意到,如果在上面的示例中提交了相同的提示多次,模型总是返回相同或非常相似的完成度。这是因为你的温度(temperature)设置为0

尝试将温度(temperature)设置为1,再次提交相同的提示几次。

 
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
 

看看发生了什么?当温度(temperature)高于0时,提交相同的提示会产生不同的完成度。

记住,模型预测哪些文本最有可能跟随它之前的文本。温度(temperature)是一个介于0和1之间的值,它本质上能让你控制模型在做出这些预测时的信心程度。降低温度(temperature)意味着它将采取更少的风险,补全将更准确和确定性。增加温度(temperature)将产生更多样化的完成度。

对于你的宠物名生成器,你可能希望能够生成很多的名字想法。0.6的适度温度(temperature)应该效果不错。

深入理解了解tokens和概率.

4 构建您的应用程序

现在,你已经找到了一个很好的提示和设置,你准备建立你的宠物名生成器!我们编写了一些代码,帮助你入门 —— 根据以下说明下载代码并运行应用程序。

安装(Setup)

如果你还没有安装 Node.js,请从这里安装 (opens in a new tab)。然后通过克隆这个仓库 (opens in a new tab)来下载代码。

git clone https://github.com/openai/openai-quickstart-node.git

如果你不想使用 git,那么你可以通过这个压缩文件 (opens in a new tab)来下载代码。

添加你的API key (Add your API key)

为了让应用程序正常工作,你需要一个API密钥。你可以通过注册一个账户并返回到这个页面来获得一个。

启动程序 (Run the app)

在项目目录中运行以下命令来安装依赖项和运行应用程序。

npm install
npm run dev

在你的浏览器中打开http://localhost:3000 (opens in a new tab),你应该会看到宠物名生成器!

理解代码

打开 openai-quickstart-node/pages/api 文件夹中的 generate.js。在底部,您将看到生成我们上面使用的提示的函数。由于用户将输入他们宠物的类型,它动态地替换指定动物的提示部分。

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:`;
}

generate.js 的第9行,您将看到发送实际API请求的代码。如上所述,它使用completions (opens in a new tab)端点(Completion),并使用0.6的温度(temperature)值。

const completion = await openai.createCompletion({
 model: "text-davinci-003",
 prompt: generatePrompt(req.body.animal),
 temperature: 0.6,
});

这就是全部内容!现在您应该完全了解您(超级英雄)宠物名生成器如何使用OpenAI API了!

价格 (Pricing)

我们提供一系列具有不同能力的模型,并提供相应的价格 (opens in a new tab)。在本教程中,我们使用了 text-davinci-003。我们建议在实验时使用此模型或 gpt-3.5-turbo,因为它们会产生最好的结果。一旦您的工作正常运行,您可以查看其他模型是否能以更低的延迟和成本产生相同的结果。或者是否需要升级到更强大的模型,例如 gpt-4

单个请求(包括提示和完成)中处理的标记总数不能超过模型的最大上下文长度。对于大多数模型,这是4096个标记或约3000个单词。粗略的经验法则是,对于英文文本,1个标记约等于4个字符或0.75个单词。

按每1,000个标记付费,前3个月免费提供价值5美元的信用额。了解更多 (opens in a new tab)

最后 (Closing)

这些概念和技术将有助于您构建自己的应用程序。尽管如此,这个简单的例子仅演示了可能性的一小部分!

Completions足以解决几乎任何语言处理任务,包括内容生成、摘要、语义搜索、主题标记、情感分析等等。

需要注意的一点限制是,对于大多数模型,单个API请求只能在提示和完成之间处理最多4096个标记。

更高级的任务可能需要您提供更多示例或上下文,而无法同时适配一个单一提示。 微调API 是这样更高级任务的一个好选择。微调允许您提供数百甚至数千个示例来为您的特定用例定制模型。

学习更多(Next steps)

为不同任务设计提示并获得启发和学习更多: