最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API。虽然我们不知道这需要多长时间,但这之前我们可以熟悉下OpenAI API,快速开发自己的AI应用!
通过今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。
这篇文章的例子将用Pyhon编写。
在我们开始使用 OpenAI API 之前,我们需要登录我们的 OpenAI 帐户并生成我们的API 密钥。
这里要注意,OpenAI 不会在生成 API 密钥后再次显示它,因此请及时复制你的 API 密钥并保存。我将创建一个名为 OPENAI_API_KEY 的环境变量,它将包含我的 API 密钥并将在下一节中使用。
要与 OpenAI API 交互,我们需要通过运行以下命令来安装官方OpenAI包。
pip install openai
我们可以用这个 API 做很多事情。 在本文中,我们将分别完成文字、代码和图像的生成。
文本生成可用于文字鉴别、文本生成、自动对话、转换、摘要等。要使用它,我们必须使用completion endpoint并为模型提供触发指令,然后模型将生成匹配上下文/模式的文本。
假设我们要对以下文本进行鉴别,我们向AI输入指令(中英文都可以):
判断以下Mike的发言情绪是正面、中立还是负面:
Mike:我不喜欢做作业!
Sentiment:
以下就是用到的代码:
ini
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 的原因。
以下是返回值的部分打印:
json
{
"choices": [
{
"finish_reason": "stop",
"index": 0,
"logprobs": null,
"text": "Negative"
}
],
...
}
在此示例中,推文的情绪被归类为负面Negative。
让我们看一下这个例子中使用的参数:
model :要使用的模型的 ID(在这里你可以看到所有可用的模型)
Prompt:生成结果的触发指令
max_token:完成时生成的最大token数量(这里可以看到OpenAI使用的tokenizer)
temperature:要使用的采样策略。 接近 1 的值会给模型带来更多风险/创造力,而接近 0 的值会生成明确定义的答案。
代码生成与文本生成类似,但这里我们使用 Codex 模型来理解和生成代码。
Codex 模型系列是经过自然语言和数十亿行代码训练的 GPT-3 系列的后代。 借助 Codex,我们可以将注释转化为代码、重写代码以提高效率等等。
让我们使用模型 code-davinci-002 和下面的触发指令生成 Python 代码。
代码生成一个序列,内容包含上海的温度。
ini
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)
以下是返回值的部分打印:
swift
{
"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部分重新显示格式化一下,你就会看到规整的代码生成了:
arduino
import numpy as np
def create_temperatures(n):
temperatures = np.random.uniform(low=14.0, high=20.0, size=n)
return temperatures
如果想开发更多,我建议你在 Playground 中测试 Codex(这里有一些帮助你入门的示例)
我们可以使用 DALL-E 模型生成图像,我们使用图像生成endpoint并提供文本指令。
以下是我的测试指令(我们在指令中提供的细节越多,我们就越有可能获得我们想要的结果)。
一只毛茸茸的蓝眼睛白猫坐在花篮里,可爱地抬头看着镜头
ini
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的使用请参考官方文档。
Python 的迅速崛起对整个行业来说都是极其有利的 ,但“人红是非多
”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。
如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
有需要的小伙伴,可以点击下方链接免费领取或者V扫描下方二维码免费领取
点击这里
对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
而且学会Python以后,还可以在各大兼职平台接单赚钱,各种兼职渠道+兼职注意事项+如何和客户沟通,我都整理成文档了。
上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方二维码免费领取