最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API。虽然咱们不知道这需求多长时间,但这之前咱们能够了解下OpenAI API,快速开发自己的AI应用!

通过今日学习 OpenAI API,你将能够访问 OpenAI 的强壮模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创立和修改原始图画的 DALL-E。

这篇文章的比如将用Pyhon编写。

生成 API 密钥

在咱们开始运用 OpenAI API 之前,咱们需求登录咱们的 OpenAI 帐户并生成咱们的API 密钥。

十分钟学会开发自己的Python AI应用【OpenAI API篇】

这儿要注意,OpenAI 不会在生成 API 密钥后再次显现它,因此请及时复制你的 API 密钥并保存。我将创立一个名为 OPENAI_API_KEY 的环境变量,它将包含我的 API 密钥并将鄙人一节中运用。

运用 Python接入 OpenAI API

要与 OpenAI API 交互,咱们需求通过运转以下指令来安装官方OpenAI包。

pip install openai

咱们能够用这个 API 做很多工作。 在本文中,咱们将分别完结文字、代码和图画的生成。

1.文本生成

文本生成可用于文字辨别、文本生成、自动对话、转化、摘要等。要运用它,咱们必须运用completion endpoint并为模型供给触发指令,然后模型将生成匹配上下文/模式的文本。

假设咱们要对以下文本进行辨别,咱们向AI输入指令(中英文都能够):

判别以下Mike的讲话心情是正面、中立仍是负面:
Mike:我不喜欢做作业!
Sentiment:

以下就是用到的代码:

import os import openai
openai.api_key = os.getenv("OPENAI_API_KEY") prompt =  """
Decide whether a Mike's sentiment is positive, neutral, or negative.
Mike: I don't like homework!
Sentiment:
""" 
response = openai.Completion.create( model="text-davinci-003", prompt=prompt, max_tokens=100, temperature=0  )  print(response)

依据 OpenAI 文档,GPT-3 模型是与文本生成的endpoint一起运用。 这就是咱们在此示例中运用模型 text-davinci-003 的原因。

以下是返回值的部分打印:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "Negative"
    }
  ],
...
}

在此示例中,推文的心情被归类为负面Negative。

让咱们看一下这个比如中运用的参数:

model :要运用的模型的 ID(在这儿你能够看到一切可用的模型)

Prompt:生成成果的触发指令

max_token:完结时生成的最大token数量(这儿能够看到OpenAI运用的tokenizer)

temperature:要运用的采样策略。 接近 1 的值会给模型带来更多风险/创造力,而接近 0 的值会生成明确界说的答案。

2. 代码生成

代码生成与文本生成相似,但这儿咱们运用 Codex 模型来了解和生成代码。

Codex 模型系列是通过自然语言和数十亿行代码练习的 GPT-3 系列的后代。 借助 Codex,咱们能够将注释转化为代码、重写代码以提高功率等等。

让咱们运用模型 code-davinci-002 和下面的触发指令生成 Python 代码。

代码生成一个序列,内容包含上海的温度。

import os
import openai
openai.api_key = os.getenv("OPENAI_API_KEY")
response = openai.Completion.create(
  model="code-davinci-002",
  prompt="\"\"\"\nCreate an array of weather temperatures for Shanghai\n\"\"\"",
  temperature=0,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)
print(response)

以下是返回值的部分打印:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "\n\nimport numpy as np\n\ndef create_temperatures(n):\n    \"\"\"\n    Create an array of weather temperatures for Shanghai\n    \"\"\"\n    temperatures = np.random.uniform(low=14.0, high=20.0, size=n)\n    return temperatures"
    }
  ],
...
  }
}

把text部分重新显现格式化一下,你就会看到规整的代码生成了:

import numpy as np
def create_temperatures(n):
    temperatures = np.random.uniform(low=14.0, high=20.0, size=n)
    return temperatures

如果想开发更多,我主张你在 Playground 中测验 Codex(这儿有一些协助你入门的示例)

3. 图画生成

咱们能够运用 DALL-E 模型生成图画,咱们运用图画生成endpoint并供给文本指令。

以下是我的测验指令(咱们在指令中供给的细节越多,咱们就越有可能获得咱们想要的成果)。

一只毛烘烘的蓝眼睛白猫坐在花篮里,可爱地抬头看着镜头

import openai
response = openai.Image.create(
  prompt="A fluffy white cat with blue eyes sitting in a basket of flowers, looking up adorably at the camera",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)

以下是我得到的图片:

十分钟学会开发自己的Python AI应用【OpenAI API篇】

当然更有趣的是,还能够运用image edits and image variations endpoints修改图画并生成原图画的调整。

好了,这篇文章就到这儿,希望能激发你的创造力,更多OpenAI API的运用请参阅官方文档。