暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

老阎的闲言碎语-利用GPT的API做应用

老阎杂货铺 2023-02-07
557

现在ChatGPT无疑已经成了一个现象级的产品,最近两天我连续收到不同的圈外朋友问我如何下载ChatGPT,我只好告诉他们ChatGPT是个网页程序。你只需要能科学上网,有个能收海外短信的手机号就可以使用了。

对于一个创业狗,我想的更多的不是如何调戏ChatGPT,而是如何利用ChatGPT后边的能力来找到场景,从而解决具体的问题。现在我用ChatGPT还是对话框问它东西,然后我再把东西拷贝出来修改,然后使用。作为一个工程师出身的人,咱们一定要尽量用程序解决自动化问题,而不是天天做这种体力劳动,对不对?

下面我就简单介绍一下ChatGPT背后的OpenAI公司能提供的API,以及如何简单的利用API来开发基于OpenAI能力的应用。

GPT API简介


01

在这里首先声明一下,最近大家可能会看到各种所谓国内包装了的ChatGPT程序,有网页版,也有微信小程序等等。实际上这些应该都不是ChatGPT的包装,而是OpenAI的公开的API版本的封装。这里给大家简单说明一下区别。ChatGPT实际上是OpenAI利用自己的最新的GPT的API封装的一个人机对话应用,其后边的LLM模型的版本也是最新的。最新的ChatGPT的API还没有正式对外开放,当然在海外有人在逆向ChatGPT生成API,不过也不稳定。所以除了官方的ChatGPT这个应用,大部分所谓的ChatGPT的封装都是利用GPT现在公开的API开发的应用,也就是GPT-3来开发的应用。

GPT-3是OpenAI目前开放的能够进行自然语言生成的一组模型。具体的模型包括:

  • davinci - 训练更新日期是2021年6月份,是公开发布的API里能力最为强大的模型,支持长文生成。

  • curie - 比davinci能力差一些,但是也能生成不错的内容,比davinci速度快,价格也便宜,不太适合长文。但是如果做文章总结、翻译、短问答没问题。2019年10月份最后训练

  • babbage - 更简单快速的模型,比较适合语义搜索和分类,也是2019年10月训练

  • ada - 最快速和便宜的模型,适合文本解析,简单分类以及地址纠错等等,2019年10月训练。

我估计现在大部分国内看到的ChatGPT都是用davinci包装的。

如何开通和使用API


02

实际上在海外,已经有大批的基于OpenAPI既有能力的AIGC的产品。比如现在已经是独角兽规模的japser.ai。对于开发者来讲,注册完成ChatGPT之后,自然就有了openai的账户。我们想要通过程序调用API,需要有API key,因此访问https://platform.openai.com,然后点击右上角你的名字:

这里有个View API keys的菜单选项,点击它。

这时候你可以create new security key,然后拷贝这个key。有了这个key,你就可以开发基于GPT-3的API的应用了。


开发应用


03

GPT-3的API实际上是restful API,不过现在有封装好的针对不同的编程语言的客户端库。我假定你使用java语言,那么在如下这个地址有java的库:

https://github.com/TheoKanning/openai-java

你可以新建一个java项目,然后在你的pom.xml中增加如下的依赖:

    <dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>client</artifactId>
    <version>0.9</version>
    </dependency>

    这样你就可以开始开发调用openai的模型的程序了,比如最简单的我可以写成这样:


      import com.theokanning.openai.OpenAiService;
      import com.theokanning.openai.completion.CompletionRequest;


      public class GPTTest {


          private static final String API_KEY="your key";
      private static final String API_URL = "https://api.openai.com/v1/engines/davinci/jobs";


      public static void main(String[] args) {
      OpenAiService service = new OpenAiService(API_KEY);


      System.out.println("\nCreating completion...");
      CompletionRequest completionRequest = CompletionRequest.builder()
      .model("Davinci")
                      .prompt("write an blog post on how to use ChatGPT to create product description")
      .echo(true)
                      .maxTokens(600)
      .user("testing")
      .build();
      service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
      }

      上边的简单的例子就能过去调用GPT-3的davinci模型,然后写一篇博客文章,最多使用600个token。关于token,是openai的计价的一种方式,如下图:

      基本上1000个davinci的token要花费2美分,差不多生成750个单词的内容。如果尝试5次你就有一篇比较满意的文章,也才0.1美元,比Fiverr上请一个写手还是便宜多了。

      当然了,openai可不仅仅只有语言模型GPT,还有图像生成模型DALLE以及代码生成模型Codex。剩下的是你要结合你自己的knowhow和想象力,去解决场景中的具体问题,基于openai打造你自己可以商业化的产品。


      文章转载自老阎杂货铺,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

      评论