不妨了解可以从OpenAI享用的所有实用服务。
谁没听说过OpenAI?这家人工智能研究实验室因其著名的产品ChatGPT而改变了世界。它改变了AI实施领域,许多公司现在急于成为下一大热点。
尽管竞争激烈,OpenAI仍然是任何生成式AI业务需求的首选公司,因为它拥有最好的模型和持续的支持。该公司提供了许多最先进的生成式AI模型,能够处理各种任务:图像生成和文本到语音等。
OpenAI提供的所有模型都可以通过API调用获得。借助简单的Python代码,您已经可以使用该模型。
我们在本文中将探讨如何结合使用OpenAI API和Python以及可以执行的各种任务。但愿您能从这篇文章中学到很多。
要阅读本文,您需要准备好几个方面。
最重要的是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的明星是其文本生成模型。这些大语言模型系列可以从名为提示的文本输入生成文本输出。提示实际上是关于我们期望从模型中得到什么的指令,比如分析文本和生成文档草稿等。
不妨从执行一个简单的文本生成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)
当然!以下是基于提供的行语的三个内容思路:
生成的输出遵循我们提供给模型的示例。如果我们希望模型遵循某种样式或结果,那么使用角色助手非常有用。
至于参数,下面简单解释我们使用的每个参数:
最后,您可以使用以下代码将模型输出改为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模型对于文本生成用例很有用,也可以调用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)
针对这些参数,解释如下:
还可以从现有的图像生成一个衍变图像,不过只能使用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
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 .b64encode(image_file.read()).decode('utf-8')
# Path to your image
image_path = img_path
# Getting the string
_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;,{_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还提供了基于文本到语音模型生成音频的模型。它非常易于使用,不过语音叙述风格很有限。此外,模型支持许多语言,您可以在语言支持页面上看到这些语言。
要生成音频,可以使用下面的代码。
复制
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)
您应该会在目录中看到音频文件。试着播放一下,看看是否符合标准。
目前,只有几个参数可以用于文本到语音模型:
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参数和规范,您需要在使用它们之前有所了解。
仿真资料吧 2023-09-11
云桥网络 2024-03-12