最近ChatGPT的热度非常高,OPEN AI也是在不久前刚刚宣告敞开ChatGPT商用API。

写这篇文章的契机在于前几天一位群友共享了一个日本程序员根据ChatGPT开发了一个AI佛:HOTOKE AI

例如当用户发问“我不知道生计的意图”,AI佛会做出如下答复:

ChatGPT API入门探索,制作AI孙子

感觉仍是挺有意思的,他会从释教及心理学的角度去给你分析与解说。

但作为一名程序员,咱们肯定对背后的原理更感兴趣,于是我又问了他和GPT有什么区别:

ChatGPT API入门探索,制作AI孙子

这个答复仍是有点出乎我的预料的,于是我更感兴趣了,直接网上找起了教程,也研读了一下OPEN API的文档。所以这篇文章更像是一个学习笔记,也希望能吸引到一些相同感兴趣的小伙伴。

文章最后咱们会开发一个根据ChatGPT的AI孙子(便是培养出高启强的那个孙子)

ChatGPT

信任大家能点进来的都知道ChatGPT是啥, 这part就过了吧。

OPEN AI API

Examples

OPEN AI API供给了许多种模型供用户挑选,在官网上也供给了许多示例,包含各种各样的模型及其生成的成果。 这是官网示例的地址:platform.openai.com/examples

ChatGPT API入门探索,制作AI孙子

咱们以Q&A为例:

ChatGPT API入门探索,制作AI孙子
能够看到它用的模型是text-davinci-003,然后他说”我是一个高度智能的问答机器人。假如你问的问题有切当答案,我就会给出答案,假如你问的问题是在搞我或者没有清晰答案,我会答复不知道”。然后下面便是一些示例。

提示工程(Prompt Engineering)

咱们还能够点右上角的Open in Playground来自己测验下

ChatGPT API入门探索,制作AI孙子
能够看到右侧侧边栏有许多参数能够调理,根据调理的参数不同,生成的答案也会有所区别。参数就不细说了,感兴趣的同学能够自己去看,当你鼠标移到那个参数上时,会有对应的解说框弹出来解说这个参数的作用。

这儿简略演示了怎么去经过提示,引导AI之后答复出你所想要的答案,所以提示(Prompt)就变的尤为重要。事实上,现在提示工程师(Prompt Engineer)现已成为一个炙手可热的岗位,他们的主要任务便是引导AI去学习及训练。 官方文档也用了相当大的篇幅去介绍怎么去提示:platform.openai.com/docs/guides…

这儿就简略翻译一下最初:

概述

咱们的模型能够做任何事情,从生成原创故事到执行杂乱的文本分析。由于它们能够做这么多事情,所以你有必要清晰描绘你想要什么。告知他该怎么做,而不只是简略陈说,这便是一个好提示的秘籍。

创作提示有三个基本准则。

  • 展示和叙述。经过指示、比方或两者的结合,清晰你想要什么。假如你想让模型按字母顺序排列一个项目清单,或按情绪对一个段落进行分类,就向它展示你想要的东西。

  • 供给高质量的数据。假如你试图建立一个分类器或让模型遵从一个模式,保证有满足的比方。保证校正你的比方 —— 模型满足聪明,它能够辨认拼写错误,而且告知你,但它也或许认为这是你故意写错的,这都会影响他的答复。

  • 检查你的设置。temperature和top_p参数操控了模型在发生呼应方面的确定性。假如你要求它发生一个只有一个正确答案的呼应,那么你就想把这些设置得低一些。假如你在寻找更多不同的反响,那么你或许想把它们设置得更高。人们运用这些设置的第一大错误是,假定它们是对”聪明”或”创造性”操控。

到这儿大家应该也就知道了,那个AI佛便是经过程序员挑选合适的模型,以及对他加以训练,比方告知他当用户发问时,他需求从释教及心理学的角度去答复用户的问题。

模型(Models)

模型能够说是非常重要的一部分,也是Open AI的中心。

ChatGPT API入门探索,制作AI孙子

ChatGPT用的便是GPT-3.5模型,他主要是面向大众,所以被训练的愈加安全,不会输出一些出格的内容。

在GPT-3.5中又包含了几个子模型:

ChatGPT API入门探索,制作AI孙子

现在官方推荐的是gpt-3.5-turbo,称此模型能生成最好的成果,而且只需求text-davinci-003十分之一的算力。

价格

现在gpt-3.5-turbo的价格是每一千个token需求0.002。所谓token能够理解为他处理的单词数,1000个token大概能够生成750个单词。

ChatGPT API入门探索,制作AI孙子

AI孙子

接下来咱们测验简略写一个AI孙子。

首先当然是创立一个项目,我用的便是简略的create-react-app去创立一个react运用: npx create-react-app ai-sunzi

运用express写一个简略的服务端:

ChatGPT API入门探索,制作AI孙子

重写App.js,咱们只需求一个textarea和一个提交按钮

ChatGPT API入门探索,制作AI孙子

拜访http://localhost:3000 保证能够拜访服务端,回来“Hello World!”:

ChatGPT API入门探索,制作AI孙子

接下来咱们需求去Open AI官方文档中检查怎么运用它的API,文档中有一个比方,怎么在nodejs中引进包:

ChatGPT API入门探索,制作AI孙子

咱们把他复制到咱们代码中,有些地方仍是需求改动一下,比方包的引进不能直接运用import。再将API Key复制到configuration中(API Key需求注册并登录OpenAI,能够免费收取):

ChatGPT API入门探索,制作AI孙子

然后咱们再检查文档中Completion部分:

ChatGPT API入门探索,制作AI孙子

将其复制到咱们代码中并测验:

ChatGPT API入门探索,制作AI孙子

此处我将max_token修正为100,由于中文字符所占字节数长一些。随后将prompt参数改为“不管用户输入什么,只需答复这是一个测验” 再次拜访localhost:3000能够看到确实能够回来“这是一个测验”。

说明咱们的后端现已从OPEN AI得到了回来的数据。

再接下来就简略了,咱们只需求把前端和后端连上,再修正prompt,让这个AI体现的像孙子:

ChatGPT API入门探索,制作AI孙子

将textarea中的message传入至prompt参数中,再从OPEN AI得到回来的答案,就大功告成了。 以下为一些测验:

ChatGPT API入门探索,制作AI孙子

ChatGPT API入门探索,制作AI孙子

ChatGPT API入门探索,制作AI孙子

Reference: www.youtube.com/watch?v=bB7…