我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用Python探究OpenAI API

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用Python探究OpenAI API

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

不妨了解可以从OpenAI享用的所有实用服务。

谁没听说过OpenAI?这家人工智能研究实验室因其著名的产品ChatGPT而改变了世界。它改变了AI实施领域,许多公司现在急于成为下一大热点。

尽管竞争激烈,OpenAI仍然是任何生成式AI业务需求的首选公司,因为它拥有最好的模型和持续的支持。该公司提供了许多最先进的生成式AI模型,能够处理各种任务:图像生成和文本到语音等。

OpenAI提供的所有模型都可以通过API调用获得。借助简单的Python代码,您已经可以使用该模型。

我们在本文中将探讨如何结合使用OpenAI API和Python以及可以执行的各种任务。但愿您能从这篇文章中学到很多。

OpenAI API设置

要阅读本文,您需要准备好几个方面。

最重要的是OpenAI的API密钥,因为没有密钥就无法访问OpenAI模型。要获得访问权限,您必须注册OpenAI帐户,并在帐户页面上申请API密钥。收到密钥后,将其保存在能够记住的地方,因为它不会再次出现在OpenAI界面中。

需要做的下一件事是购买预付费积分以使用OpenAI API。最近,OpenAI宣布改变计费方式。我们需要为API调用购买预付费积分,而不是在月底支付。您可以访问OpenAI定价页面来估算所需的积分。还可以查看模型页面,以了解您需要哪种模型。

最后,您需要在生产环境中安装OpenAI Python软件包。您可以使用下面的代码做到这一点。

pip install openai

然后,您需要使用下面的代码设置OpenAI Key环境变量。

import os
os.environ['OPENAI_API_KEY'] = 'YOUR API KEY'

一切设置完毕后,不妨开始使用Python探索OpenAI模型的API。

OpenAI API文本生成

OpenAI API的明星是其文本生成模型。这些大语言模型系列可以从名为提示的文本输入生成文本输出。提示实际上是关于我们期望从模型中得到什么的指令,比如分析文本和生成文档草稿等。

不妨从执行一个简单的文本生成API调用入手。我们将使用OpenAI的GPT-3.5 Turbo模型作为基础模型。它不是最先进的模型,但最便宜的模型常常足以执行与文本相关的任务。

from openai import OpenAI
client = OpenAI()

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  messages=[
    {"role": "system", "content": "You are a helpful assistant."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)
  • “释放预测分析的力量,推动数据驱动的决策!”
  • “深入挖掘数据海洋,发现有价值的见解。”
  • “通过先进算法将原始数据转化为实用的情报。”

文本生成模型的API调用使用API Endpoint chat.completions从提示创建文本响应。

文本生成需要两个参数:模型和消息。

至于模型,您可以检查可以在相关模型页面上使用的模型列表。

至于消息,我们传递一个含有两个对的字典:角色和内容。角色键指定了对话模型中的角色发送方。有三种不同的角色:系统、用户和助手。

使用消息中的角色,我们可以帮助设置模型行为和模型应该如何回答提示的示例。

不妨使用角色助手扩展前面的代码示例,以指导我们的模型。此外,我们将探索文本生成模型的一些参数,以改进结果。

completion = client.chat.completions.create(
    model="gpt-3.5-turbo",
    messages=[
        {"role": "system", "content": "You are a helpful assistant."},
        {"role": "user", "content": "Generate me 3 jargons that I can use for my Social Media content as a Data Scientist content creator."},
        {"role": "assistant", "content": "Sure, here are three jargons: Data Wrangling is the key, Predictive Analytics is the future, and Feature Engineering help your model."},
        {"role": "user", "content": "Great, can you also provide me with 3 content ideas based on these jargons?"}
    ],
    max_tokens=150,
    temperature=0.7,
    top_p=1,
    frequency_penalty=0
)

print(completion.choices[0].message.content)

当然!以下是基于提供的行语的三个内容思路:

  • “释放数据处理的力量:数据科学家的逐步指南”——创建一篇博文或视频教程,展示实际数据科学项目中数据处理的最佳实践和工具。
  • “预测分析的未来:数据科学的趋势和创新”——撰写一篇思想领袖文章,讨论预测分析领域的新兴趋势和技术,以及它们如何塑造数据科学的未来。
  • “驾驭特征工程:提升模型性能的技术”——开发一个信息图表或社交媒体系列,着重介绍不同的特征工程技术及其对提高机器学习模型的准确性和效率的影响。

生成的输出遵循我们提供给模型的示例。如果我们希望模型遵循某种样式或结果,那么使用角色助手非常有用。

至于参数,下面简单解释我们使用的每个参数:

  • max_tokens:该参数设置模型可以生成的最多字数。
  • temperature:该参数控制模型输出的不可预测性。该参数值越高,输出越具有多样性,越富有想象力。可接受的范围是从0到无穷大,但大于2的值不寻常。
  • top_p:又叫核抽样,该参数有助于确定模型得出输出所依赖的概率分布的子集。比如说,top_p值为0.1意味着模型只考虑抽样概率分布的前10%。其值可以从0到1,值越大,输出多样性越大。
  • frequency_penalty:这惩罚模型输出中的重复token。惩罚值的范围从-2到2,其中正值不鼓励重复使用token,负值则相反,鼓励重复使用单词。值为0表示不会对重复进行惩罚。

最后,您可以使用以下代码将模型输出改为JSON格式。

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",
  response_format={ "type": "json_object" },
  messages=[
    {"role": "system", "content": "You are a helpful assistant designed to output JSON.."},
    {"role": "user", "content": "Generate me 3 Jargons that I can use for my Social Media content as a Data Scientist content creator"}
  ]
)

print(completion.choices[0].message.content)
 
{
"jargons": [
"利用预测分析发掘宝贵的洞察力",
"深入研究先进机器学习算法的微妙细处",
"利用大数据的力量推动数据驱动的决策"
]
}

结果采用JSON格式,并遵循我们输入到模型中的提示。

要获得完整的文本生成API文档,您可以在专门的页面上查看。

OpenAI图像生成

OpenAI模型对于文本生成用例很有用,也可以调用API以生成图像。

使用DALL•E模型,我们可以按要求生成图像。执行起来很简单,只需使用以下代码。

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.generate(
  model="dall-e-3",
  prompt="White Piano on the Beach",
  size="1792x1024",
  quality="hd",
  n=1,
)

image_url = response.data[0].url
Image(url=image_url)

针对这些参数,解释如下:

  • model:要使用的图像生成模型。目前,API只支持DALL•E 3和DALL•E 2模型。
  • prompt:这是文本描述,模型将在此基础上生成图像。
  • size:决定生成图像的分辨率。DALL•E3模型有三种选择:1024x1024、1024x1792或1792x1024。
  • quality:该参数影响生成图像的质量。如果需要计算时间,“标准”比“高清”快。
  • n:指定基于提示生成图像的数量。DALL•E3一次只能生成一个图像。DALL•E2一次可以生成多达10个图像。

还可以从现有的图像生成一个衍变图像,不过只能使用DALL•E2模型做到这点。API也只接受4 MB以下的正方形PNG图像。

from openai import OpenAI
from IPython.display import Image

client = OpenAI()

response = client.images.create_variation(
  image=open("white_piano_ori.png", "rb"),
  n=2,
  size="1024x1024"
)

image_url = response.data[0].url

Image(url=image_url)

生成的图像可能不如DALL•E 3好,因为它使用旧模型。

OpenAI Vision

OpenAI是一家提供能够理解图像输入的模型的领先公司。这个模型名为Vision模型,有时被称为GPT-4V。该模型能够根据我们给出的图像回答问题。

不妨试一下Vision模型API。在本例中,我将使用从DALL•E3模型生成的白色钢琴图像,并将其存储在本地。此外,我还将创建一个函数,接受图像路径并返回图像描述文本。别忘了将api_key变量改为您的API Key。

from openai import OpenAI
import base64
import requests
def provide_image_description(img_path):

    client = OpenAI()

    api_key = 'YOUR-API-KEY'
    # Function to encode the image
    def encode_image(image_path):
      with open(image_path, "rb") as image_file:
        return base64.b64encode(image_file.read()).decode('utf-8')
   
    # Path to your image
    image_path = img_path
   
    # Getting the base64 string
    base64_image = encode_image(image_path)
   
    headers = {
      "Content-Type": "application/json",
      "Authorization": f"Bearer {api_key}"
    }
   
    payload = {
      "model": "gpt-4-vision-preview",
      "messages": [
        {
          "role": "user",
          "content": [
            {
              "type": "text",
              "text": """Can you describe this image? """
            },
            {
              "type": "image_url",
              "image_url": {
                "url": f"data:image/jpeg;base64,{base64_image}"
              }
            }
          ]
        }
      ],
      "max_tokens": 300
    }
   
    response = requests.post("https://api.openai.com/v1/chat/completions", headers=headers, json=payload)

    return response.json()['choices'][0]['message']['content']

这个图像显示一架大钢琴摆放在宁静的海滩上。钢琴是白色的,表明一种常与优雅联系在一起的色调。乐器放在海岸线的边缘,轻柔的海浪轻抚沙滩,泛起泡沫,正好碰到钢琴的底座和配套的凳子。海滩周围的环境暗示着一种宁静和隔绝的感觉,清澈的蓝天,远处蓬松的云,平静的大海延伸到地平线。无数大小形状各异的贝壳散落在沙滩上钢琴的周围,突出了环境的自然美和宁静的氛围。自然海滩环境中的古典乐器创造了超现实和画面充满诗意的构图。

您可以调整上面字典中的文本值以匹配您的Vision模型要求。

OpenAI音频生成

OpenAI还提供了基于文本到语音模型生成音频的模型。它非常易于使用,不过语音叙述风格很有限。此外,模型支持许多语言,您可以在语言支持页面上看到这些语言。

要生成音频,可以使用下面的代码。

from openai import OpenAI
client = OpenAI()

speech_file_path = "speech.mp3"
response = client.audio.speech.create(
  model="tts-1",
  voice="alloy",
  input="I love data science and machine learning"
)
response.stream_to_file(speech_file_path)

您应该会在目录中看到音频文件。试着播放一下,看看是否符合标准。

目前,只有几个参数可以用于文本到语音模型:

  • model:要使用的文本到语音模型。只有两种模型可用:ts-1或ts-1-hd,其中ts-1优化速度,ts-1-hd优化质量。
  • voice:使用的语音样式,所有声音都被优化为英语。选择有alloy、echo、fable、onyx、nova和shimmer。
  • response_format:音频格式文件。目前支持的格式有mp3、opus、aac、flac、wav和pcm。
  • speed:生成的音频速度。您可以选择0.25到4之间的值。
  • input:用于创建音频的文本。目前,模型最多支持4096个字符。

OpenAI语音到文本

OpenAI提供了转录和翻译音频数据的模型。使用Whispers模型,我们可以将音频从支持的语言转录到文本文件中,并将其翻译成英语。

不妨从我们之前生成的音频文件中尝试简单的转录。

from openai import OpenAI
client = OpenAI()

audio_file= open("speech.mp3", "rb")
transcription = client.audio.transcriptions.create(
  model="whisper-1",
  file=audio_file
)

print(transcription.text)

我喜欢数据科学和机器学习。

还可以将音频文件翻译成英语。模型还无法翻译成另一种语言。

from openai import OpenAI
client = OpenAI()

audio_file = open("speech.mp3", "rb")
translate = client.audio.translations.create(
  model="whisper-1",
  file=audio_file
)

结论

我们已经探讨了OpenAI提供的几项模型服务,从文本生成、图像生成、音频生成、视觉和文本到语音模型。每个模型都有自己的API参数和规范,您需要在使用它们之前有所了解。

原文Exploring the OpenAI API with Python,作者:Cornellius Yudha Wijaya

链接:https://www.kdnuggets.com/exploring-the-openai-api-with-python。

想了解更多AIGC的内容,请访问:

51CTO AI.x社区

https://www.51cto.com/aigc/

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用Python探究OpenAI API

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

使用Python探究OpenAI API

我们在本文中将探讨如何结合使用OpenAI API和Python以及可以执行的各种任务。但愿您能从这篇文章中学到很多。

使用 OpenAI API 和 Python 使用 GPT-3

这篇文章主要介绍了使用 OpenAI API 和 Python 使用 GPT-3,在本文中,我们将使用GPT-3。我将向您展示如何访问它,并提供一些示例来说明您可以使用它做什么,以及您可以使用它构建什么样的应用程序,需要的朋友可以参考下
2023-03-06

利用 Python 探究 Google 的自然语言 API

本文介绍了 Google 的自然语言 API,并探究了常见的自然语言处理(NLP)任务,以及如何使用它们来为网站内容创建提供信息。

探究python中open函数的使用

最近,开始学习python的开发,遇到了一点文件操作的问题,探究一下open函数的使用。 一、open()的函数原型 open(file, mode=‘r', buffering=-1, encoding=None, errors=None
2022-06-04

使用Nginx反向代理OpenAI API

由于OpenAI的API在国内无法访问,所以可以通过海外服务器利用Nginx实现反向代理。 安装Nginx 这一步就不赘述了,不同的Linux系统安装方式略有不同,根据自己的服务器的系统自行百度即可。 OpenSSL创建证书 因为OpenA
2023-08-18

怎么使用OpenAI API和GPT-3

本文小编为大家详细介绍“怎么使用OpenAI API和GPT-3”,内容详细,步骤清晰,细节处理妥当,希望这篇“怎么使用OpenAI API和GPT-3”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。使用 Open
2023-07-05

Python怎么免费试用最新Openai API

本篇内容介绍了“Python怎么免费试用最新Openai API”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、背景介绍3月2日凌晨,Op
2023-07-05

怎么使用Python对接OpenAi API实现智能QQ机器人

这篇文章主要介绍“怎么使用Python对接OpenAi API实现智能QQ机器人”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Python对接OpenAi API实现智能QQ机器人”文章能帮
2023-07-05

如何使用LangChain和OpenAI API分析文档?

借助少许代码和一些实用的库,您就能构建一个功能强大的文档分析工具。
OpenAILangChain2024-11-30

使用Python对接OpenAi API实现智能QQ机器人的方法

这篇文章主要介绍了使用Python对接OpenAi API实现智能QQ机器人的方法,主要是提供一个方法思路,可以根据实现代码延申出更多的解决方法,需要的朋友可以参考下
2023-03-21

Android源码探究之BaseDexClassLoader的使用

今天解决一个插件化问题的时候,竟然发现SO没有正常加载,很怪异,最终排查下来发现竟然是参数传入错误导致的。这就扯到了本文的标题上了,BaseDexClassLoader中的4个参数该如何传入,传入的又是什么呢
2022-11-13

@ControllerAdvice注解使用及原理探究

@initBinder和@ModelAttribute都是请求过程中的处理,我们知道springMvc通过HandlerApapter定位到具体的方法进行请求处理,因此查看HandlerHaper的实现类,发现RequestMappingH

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录