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

最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API。虽然我们不知道这需要多长时间,但这之前我们可以熟悉下OpenAI API,快速开发自己的AI应用!

通过今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。

这篇文章的例子将用Pyhon编写。

生成 API 密钥

在我们开始使用 OpenAI API 之前,我们需要登录我们的 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)

以下是我得到的图片:

当然更有趣的是,还可以使用image edits and image variations endpoints编辑图像并生成原图像的调整。

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

  • 3
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论
### 回答1: OpenAI API http是一种开发人工智能模型和算法的应用编程接口。OpenAI是人工智能(AI)领域的领导者之一,旨在提供一种简单的方法来开发强大的人工智能技术。OpenAI API使用http协议进行通信,使开发者能够简单地依据提供的接口文档进行数据交互。 OpenAI API提供的功能非常丰富,包括自然语言处理、图像处理、自动化决策等等。特别是在自然语言处理领域,OpenAI API旨在为开发者提供最好的语言处理技术,从而使得从文本数据中提取信息变得简单。 OpenAI API http支持多种编程语言,如Python、Java和C#等,从而使得AI技术的应用更加广泛。它还提供了多种API,如GPT-3、Dactyl、CLIP等,可以满足不同场景和需求的开发人员的要求。 总的来说,OpenAI API http 是一种非常强大的工具,它使得开发者可以简单地实现多种AI功能。在未来,OpenAI将继续改进和发展这个平台,为世界带来更好的人工智能解决方案。 ### 回答2: OpenAI API是一种人工智能开发接口,为开发者提供了简单易用的AI模型。OpenAI是一家重点研究和开发AI技术的公司,提供有关人工智能的知识和技术。 OpenAI API是人工智能模型和算法的集合,为开发者提供了强大而易于使用的工具,使他们能够在现有技术的基础上开发出高质量的人工智能产品。 该API提供了自然语言处理、图像识别和机器学习等多种重要功能,能够充分满足企业和开发者的需求。 开发者可以使用这些功能来构建许多有趣的应用,例如智能聊天机器人、语音助手、自动图像标注等。 使用OpenAI API可以大大降低开发人工智能产品所需的时间和成本。该平台以开放、透明和易于使用为众所周知,赢得了广大开发者和企业的认可和支持。 总之,OpenAI API是一种极具价值和实用性的技术,对于推进人工智能的发展和应用有着重要的意义。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一枚务实的码农

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值