十分钟学会开发自己的Python AI应用【OpenAI API篇】
后台-插件-广告管理-内容页头部广告(手机) |
最近 OpenAI 宣布 ChatGPT 将很快推出他们的 API。虽然我们不知道这需要多长时间,但这之前我们可以熟悉下OpenAI API,快速开发自己的AI应用!
通过今天学习 OpenAI API,你将能够访问 OpenAI 的强大模型,例如用于自然语言的 GPT-3、用于将自然语言翻译为代码的 Codex 以及用于创建和编辑原始图像的 DALL-E。
这篇文章的例子将用Pyhon编写。
生成 API 密钥
在我们开始使用 OpenAI API 之前,我们需要登录我们的 OpenAI 帐户并生成我们的API 密钥。
%20这里要注意,OpenAI%20不会在生成%20API%20密钥后再次显示它,因此请及时复制你的%20API%20密钥并保存。我将创建一个名为%20OPENAI_API_KEY%20的环境变量,它将包含我的%20API%20密钥并将在下一节中使用。
%20使用%20Python接入%20OpenAI%20API
%20要与%20OpenAI%20API%20交互,我们需要通过运行以下命令来安装官方OpenAI包。
%20 pip%20install%20openai- 1
我们可以用这个%20API%20做很多事情。%20在本文中,我们将分别完成文字、代码和图像的生成。
%201.文本生成
%20文本生成可用于文字鉴别、文本生成、自动对话、转换、摘要等。要使用它,我们必须使用completion%20endpoint并为模型提供触发指令,然后模型将生成匹配上下文/模式的文本。
%20假设我们要对以下文本进行鉴别,我们向AI输入指令(中英文都可以):
%20%20 %20%20判断以下Mike的发言情绪是正面、中立还是负面:
%20
%20Mike:我不喜欢做作业!
%20Sentiment:
以下就是用到的代码:
%20 ini import%20os%20import%20openai openai.api_key%20=%20os.getenv("OPENAI_API_KEY")%20prompt%20=%20%20""" Decide%20whether%20a%20Mike's%20sentiment%20is%20positive,%20neutral,%20or%20negative. Mike:%20I%20don't%20like%20homework! Sentiment: """%20 response%20=%20openai.Completion.create(%20model="text-davinci-003",%20prompt=prompt,%20max_tokens=100,%20temperature=0%20%20)%20%20print(response)- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
根据%20OpenAI%20文档,GPT-3%20模型是与文本生成的endpoint一起使用。%20这就是我们在此示例中使用模型%20text-davinci-003%20的原因。
%20以下是返回值的部分打印:
%20 json { %20%20"choices":%20[ %20%20%20%20{ %20%20%20%20%20%20"finish_reason":%20"stop", %20%20%20%20%20%20"index":%200, %20%20%20%20%20%20"logprobs":%20null, %20%20%20%20%20%20"text":%20"Negative" %20%20%20%20} %20%20], ... }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
在此示例中,推文的情绪被归类为负面Negative。
%20让我们看一下这个例子中使用的参数:
%20model%20:要使用的模型的%20ID(在这里你可以看到所有可用的模型)
%20Prompt:生成结果的触发指令
%20max_token:完成时生成的最大token数量(这里可以看到OpenAI使用的tokenizer)
%20temperature:要使用的采样策略。%20接近%201%20的值会给模型带来更多风险/创造力,而接近%200%20的值会生成明确定义的答案。
%202.%20代码生成
%20代码生成与文本生成类似,但这里我们使用%20Codex%20模型来理解和生成代码。
%20Codex%20模型系列是经过自然语言和数十亿行代码训练的%20GPT-3%20系列的后代。%20借助%20Codex,我们可以将注释转化为代码、重写代码以提高效率等等。
%20让我们使用模型%20code-davinci-002%20和下面的触发指令生成%20Python%20代码。
%20%20 %20%20 ini import%20os import%20openai openai.api_key%20=%20os.getenv("OPENAI_API_KEY") response%20=%20openai.Completion.create( %20%20model="code-davinci-002", %20%20prompt=""""\nCreate%20an%20array%20of%20weather%20temperatures%20for%20Shanghai\n"""", %20%20temperature=0, %20%20max_tokens=256, %20%20top_p=1, %20%20frequency_penalty=0, %20%20presence_penalty=0 ) print(response)代码生成一个序列,内容包含上海的温度。
%20
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
以下是返回值的部分打印:
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" } ], ... } }- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
把text部分重新显示格式化一下,你就会看到规整的代码生成了:
arduino import numpy as np def create_temperatures(n): temperatures = np.random.uniform(low=14.0, high=20.0, size=n) return temperatures- 1
- 2
- 3
- 4
- 5
- 6
如果想开发更多,我建议你在 Playground 中测试 Codex(这里有一些帮助你入门的示例)
3. 图像生成
我们可以使用 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)一只毛茸茸的蓝眼睛白猫坐在花篮里,可爱地抬头看着镜头
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
以下是我得到的图片:
%20当然更有趣的是,还可以使用image%20edits%20and%20image%20variations%20endpoints编辑图像并生成原图像的调整。
%20好了,这篇文章就到这里,希望能激发你的创造力,更多OpenAI%20API的使用请参考官方文档。
%20Python%20的迅速崛起对整个行业来说都是极其有利的%20,但“人红是非多”,导致它平添了许许多多的批评,不过依旧挡不住它火爆的发展势头。
%20如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!
%20
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |