OpenAI API快速入门

2024-08-14 126

OpenAI提供了先进的语言模型,擅长理解和生成文本,其API提供访问这些模型的方式,可用于解决涉及处理语言的任何任务。本教程主要构建一个简单的样例应用程序,将介绍使用API对于任何任务都是基础的关键概念和技术,包括:

  • 内容生成
  • 摘要
  • 分类、归类和情感分析
  • 数据提取
  • 翻译
  • 等等

一、补全

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

Prompt

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

Completion

OpenAI每勺都掌握微笑!

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

二、从指令开始

例如想创建一个宠物名字生成器。首先,需要一个清晰表明想要什么的提示。让OpenAI从一个指令开始。提交此提示以生成第一个完成。

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

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

三、添加示例

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

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

这个完成度还不太是OpenAI想要的。这些名称非常通用,似乎模型没有注意到OpenAI说明中的马部分。让OpenAI看看是否可以让它提供一些更相关的建议。在许多情况下,向模型展示并告诉你想要什么都是有帮助的。向提示添加示例可以帮助传达模式或细微差别。尝试提交这个包含几个示例的提示。

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

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

四、调整设置

提示设计不是你所拥有的唯一工具。通过调整设置,你还可以控制补全。最重要的设置之一叫做温度。大家可能已经注意到,如果在上面的示例中提交了相同的提示多次,模型总是返回相同或非常相似的完成度。这是因为你的温度设置为0。

尝试将温度设置为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

当温度高于0时,提交相同的提示会产生不同的完成度。

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

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

五、构建应用程序

OpenAI编写了一些代码,帮助你入门——根据以下说明下载代码并运行应用程序。

1、安装

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

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

2、添加APIkey

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

3、启动程序

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

npm install
npm run dev

在你的浏览器中打开http://localhost:3000,你应该会看到宠物名生成器!

4、理解代码

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

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端点(Completion),并使用0.6的温度值。

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

六、价格

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

单个请求(包括提示和完成)中处理的标记总数不能超过模型的最大上下文长度。对于大多数模型,这是4096个标记或约3000个单词。粗略的经验法则是,对于英文文本,1个标记约等于4个字符或0.75个单词。按每1,000个标记付费,前3个月免费提供价值5美元的信用额。

  • 广告合作

  • QQ群号:707632017

温馨提示:
1、本网站发布的内容(图片、视频和文字)以原创、转载和分享网络内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。邮箱:2942802716#qq.com(#改为@)。 2、本站原创内容未经允许不得转裁,转载请注明出处“站长百科”和原文地址。
Milvus
上一篇: Milvus快速入门
OpenAI API快速入门
下一篇: OpenAI模型