2024 年最新 Python 调用 OpenAi 详细教程实现问答、图像合成、图像理解、语音合成、语音识别(详细教程)

OpenAi 环境安装

首先确保您的计算机上已经安装了 Python。您可以从 Python 官方网站下载并安装最新版本 Python。安装时,请确保勾选 “Add Python to PATH” (添加环境变量)选项,以便在 cmd 命令行中直接使用 Python。

安装 OpenAI Python 库

打开命令行或终端窗口安装 OpenAI Python 库

pip install openai

OpenAi Platform 教程

平台官网:https://platform.openai.com/

在这里插入图片描述

http API 调用方式文档:https://platform.openai.com/docs/api-reference/introduction

文本生成 GPT-4

GPT-4 模型概述

GPT-4是一个大型多模态模型(接受文本或图像输入和输出文本),由于其更广泛的一般知识和先进的推理能力,它可以比我们以前的任何模型都更准确地解决难题。付费客户可以在OpenAI API中使用GPT-4。与gpt-3.5 turbo一样,GPT-4针对聊天功能进行了优化,但在使用聊天完井API的传统完井任务中表现良好。在我们的文本生成指南中学习如何使用GPT-4。

测试案例

聊天模型将消息列表作为输入,并返回模型生成的消息作为输出。虽然聊天格式的设计是为了使多回合的对话变得容易,但它对于没有任何对话的单回合任务同样有用。

一个聊天完成API调用的例子如下:

from openai import OpenAI
client = OpenAI()response = client.chat.completions.create(model="gpt-4",messages=[{"role": "system", "content": "You are a helpful assistant."},{"role": "user", "content": "Who won the world series in 2020?"},{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},{"role": "user", "content": "Where was it played?"}]
)print(response)

数据结构

{"choices": [{"finish_reason": "stop","index": 0,"message": {"content": "The 2020 World Series was played in Texas at Globe Life Field in Arlington.","role": "assistant"},"logprobs": null}],"created": 1677664795,"id": "chatcmpl-7QyqpwdfhqwajicIEznoc6Q47XAyW","model": "gpt-3.5-turbo-0613","object": "chat.completion","usage": {"completion_tokens": 17,"prompt_tokens": 57,"total_tokens": 74}
}

图像合成 DALL·E

DALL·E 模型概述

DALL·E是一个人工智能系统,可以通过自然语言的描述创造逼真的图像和艺术。DALL·e3目前支持在提示下创建具有特定大小的新映像的功能。DALL·e2还支持编辑现有映像,或创建用户提供的映像的变体。

测试案例

图像生成端点允许您在给定文本提示的情况下创建原始图像。当使用DALL·e3时,图像的大小可以是1024x1024、1024x1792或1792x1024像素。

默认情况下,图像以标准质量生成,但当使用DALL·e3时,您可以将质量设置为“hd”以增强细节。正方形的、标准质量的图像是最快生成的。您可以使用DALL·e3一次请求1个图像(通过并行请求请求更多),或者使用带n参数的DALL·e2一次至多请求10个图像。

from openai import OpenAIclient = OpenAI()response = client.images.generate(model="dall-e-3",prompt="a white siamese cat",size="1024x1024",quality="standard",n=1,
)image_url = response.data[0].url

语音合成 TTS

TTS 模型概述

TTS是一种人工智能模型,可以将文本转换为自然发音的口语文本。我们提供了两种不同的模型变量,ts-1针对实时文本到语音的用例进行了优化,而ts-1-hd针对质量进行了优化。这些模型可以与Audio API中的Speech端点一起使用。

测试案例

语音端点接受三个关键输入:模型、应该转换为音频的文本和用于音频生成的语音。简单的请求如下所示:

from pathlib import Path
from openai import OpenAIclient = OpenAI()speech_file_path = Path(__file__).parent / "speech.mp3"
response = client.audio.speech.create(model="tts-1",voice="alloy",input="Today is a wonderful day to build something people love!"
)response.stream_to_file(speech_file_path)

音色选择

尝试不同的声音(alloy, echo, fable, onyx, nova, and shimmer),找到一个符合你想要的语气和听众。当前的声音是针对英语优化的。

语音识别 Whisper

Whisper 概述

Whisper 是一个通用的语音识别模型。它是在不同音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisper v2大型模型目前可通过我们的API使用Whisper -1模型名称。

目前,Whisper的开源版本和通过我们的API提供的版本之间没有区别。然而,通过我们的API,我们提供了一个优化的推理过程,这使得通过我们的API运行Whisper比执行它要快得多。

测试案例

语音识别 API 将要识别的音频文件和所需的音频转录输出文件格式作为输入。我们目前支持多种输入和输出文件格式。文件上传目前限制为 25mb,支持 mp3、mp4、mpeg、mpga、m4a、wav、webm 等文件类型的输入。

from openai import OpenAIclient = OpenAI()audio_file = open("/path/to/file/audio.mp3", "rb")
transcription = client.audio.transcriptions.create(model="whisper-1",file=audio_file
)
print(transcription.text)

数据结构

{"text": "Imagine the wildest idea that you've ever had, and you're curious about how it might scale to something that's a 100, a 1,000 times bigger.
....
}

配置 OPENAI_API_KEY

查看 class OpenAI(SyncAPIClient) 类实现的源码片段发现,关于 api_keybase_url 会读取本地环境变量中 OPENAI_API_KEYOPENAI_BASE_URL 变量。

if api_key is None:api_key = os.environ.get("OPENAI_API_KEY")
if api_key is None:raise OpenAIError("The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable")
self.api_key = api_key
if base_url is None:base_url = os.environ.get("OPENAI_BASE_URL")
if base_url is None:base_url = f"https://api.openai.com/v1"

dotenv 加载 .env 环境变量

dotenv是一个Python库(虽然也适用于其他编程语言,如JavaScript),它的主要功能是从.env文件中读取环境变量,并将这些变量加载到操作系统的环境变量中,使得Python应用程序可以轻松地访问这些变量。.env文件是一个纯文本文件,其中包含键值对(key-value pairs),每个键值对占据一行,格式为KEY=VALUE。

pip install python-dotenv

将敏感信息(如API密钥、数据库密码等)存储在环境变量中,而不是硬编码在代码中,是一种良好的安全实践。这样可以减少敏感信息泄露的风险,因为这些值不会存储在代码库中,也不会在部署时暴露出来。

在 Python 代码中,使用 python-dotenv 库加载 .env 文件,并访问其中的环境变量。这通常通过 from dotenv import load_dotenvload_dotenv() 函数实现。访问环境变量:加载.env文件后,可以使用 os.getenv('KEY') 的方式访问环境变量。

from dotenv import load_dotenv
load_dotenv()

图像理解 GPT-4o

gpt - 40和GPT-4 Turbo都具有视觉功能,这意味着这些模型可以接收图像并回答有关图像的问题。从历史上看,语言模型系统一直受到单一输入形式文本的限制。

模型可以通过两种主要方式使用图像:通过传递到图像的链接或在请求中直接传递base64编码的图像。图像可以在用户消息中传递。

from openai import OpenAIclient = OpenAI()response = client.chat.completions.create(model="gpt-4o",messages=[{"role": "user","content": [{"type": "text", "text": "What’s in this image?"},{"type": "image_url","image_url": {"url": "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg",},},],}],max_tokens=300,
)print(response.choices[0])

上传base64编码的图像如果你在本地有一张或一组图像,你可以将它们以base64编码的格式传递给模型,下面是一个实际的例子

import base64
import requestsapi_key = "YOUR_OPENAI_API_KEY"def encode_image(image_path):with open(image_path, "rb") as image_file:return base64.b64encode(image_file.read()).decode('utf-8')image_path = "path_to_your_image.jpg"base64_image = encode_image(image_path)headers = {"Content-Type": "application/json","Authorization": f"Bearer {api_key}"
}payload = {"model": "gpt-4o","messages": [{"role": "user","content": [{"type": "text","text": "What’s in 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)print(response.json())

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/27064.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

华为大咖说 | AI 是行业的未来, 还是另一个“元宇宙”?

本文作者:陈冠宏(华为网络MSSD首席顾问)全文约4497字,阅读约需10分钟 在本年度的517电信日上,中国电信高层在产品升级计划发布会中喊出“ALL in AI”战略,其震撼力让人瞩目。 自2022年11月OpenAI推出划时代…

机器学习归一化特征编码

特征缩放 因为对于大多数的机器学习算法和优化算法来说,将特征值缩放到相同区间可以使得获取性能更好的模型。就梯度下降算法而言,例如有两个不同的特征,第一个特征的取值范围为1——10,第二个特征的取值范围为1——10000。在梯度…

Facebook隐私保护:用户数据安全的挑战与应对策略

在当今数字化时代,随着社交媒体的普及和信息技术的快速发展,人们对于个人数据隐私和安全的关注越来越高。作为全球最大的社交网络平台之一,Facebook在用户数据保护方面面临着诸多挑战和责任。本文将深入探讨Facebook在隐私保护方面的现状、面…

k8s+springcloud+nacos部署配置

1 k8s 部署nacos-2.1.2配置k8s-nacos-statefulSet.yaml文件 apiVersion: v1 kind: Service metadata:name: nacos-headlessnamespace: rz-dtlabels:app: nacosannotations:service.alpha.kubernetes.io/tolerate-unready-endpoints: "true" spec:# 3个端口打开&…

VMware ESXi 8.0U2c macOS Unlocker OEM BIOS ConnectX-3 网卡定制版 (集成驱动版)

VMware ESXi 8.0U2c macOS Unlocker & OEM BIOS ConnectX-3 网卡定制版 (集成驱动版) 发布 ESXi 8.0U2 集成驱动版,在个人电脑上运行企业级工作负载 请访问原文链接:https://sysin.org/blog/vmware-esxi-8-u2-sysin/,查看最新版。原创作…

UE5.2打包安卓

目录 简介: 一. 根据官网配置 二. 手动定位SDK路径 三: 设置Android基本信息 四: 设置KeyStore 五: 开始打包 六:其他 七. 总结 简介: UE5.2 打包安卓是指将使用 Unreal Engine 5.2 开发的项目编译为可在安卓设备上运行的安装包。 以下是一般的打包步骤: 安装…

Spring Cloud全家桶(上)【Nacos、OpenFeign、LoadBalancer、GateWay、金丝雀灰色发布】

0.零基础入门微服务实战课 1.微服务和 Spring Cloud1.1 什么是微服务?1.2 什么是 Spring Cloud?1.3 微服务 VS Spring Cloud 2.为什么要学微服务?3.Spring Cloud 组件介绍1.什么是 Nacos?1.1 Nacos 功能1.1.1 配置中心1.1.2 注册中心 1.2 Na…

HashMap底层源码分析

目录 一、知识点二、数据结构三、resize() 扩容方法四、putVal() 添加数据方法五、remove() 删除方法六、removeTreeNode() 退化链表方法 一、知识点 加载因子: HashMap 的默认的加载因子: 0.75,用来限定阈值(用于控制 HashMap 的饱和度) 阈值…

红酒保存中的摆放方式:倾斜瓶身的重要性

在探讨云仓酒庄雷盛红酒的保存方法时,我们不得不提及一个关键的细节:瓶身的倾斜。许多人可能认为红酒的保存方式仅仅是温度控制和存储环境的湿度问题,然而实际上,摆放方式同样至关重要。雷盛红酒在保存过程中,需要一个…

安川机器人MA1440减速机维修方法

一、安川机械臂减速器维修方法 1. 齿轮磨损维修 对于轻微磨损的齿轮,可以通过重新调整啮合间隙来恢复性能。对于严重磨损的齿轮,需要更换新安川MA1440机械手齿轮箱齿轮。 2. 轴承损坏维修 对于损坏的轴承,需要更换新的轴承。在更换过程中&…

省市县选择三级联动(使用高德API实现)

省市县选择如果自己实现是比较麻烦的,最近发现可以使用高德实现省市县联动选择,实现后来记录一下供大家参考。 文章目录 最终效果:一、准备工作二、完整页面代码 最终效果: 实现单次点击获取省市县名称,选择完成后返回…

web端即时通信技术

web端即时通信技术 对于IM/消息推送这类即时通讯系统而言,系统的关键就是“实时通信”能力。所谓实时通信有以下两层含义 客户端可以主动向服务端发送信息。 当服务端内容发生变化时,服务端可以实时通知客户端。 HTTP局限 Http是客户端/服务器模式中…

免费分享:1901-2020全球气候数据集(附下载办法)

长期的全球其后数据不仅能够揭示长期的气候趋势,还为农业、水资源管理、公共卫生等多个领域的决策提供科学依据,对于推动可持续发展具有重要意义。 数据集简介 CRU TS(Climatic Research Unit gridded Time Series)数据集&#…

宽睿数字平台兼容TDengine 等多种数据库,提供行情解决方案

小T导读:最近,涛思数据与宽睿金融宣布了一项重要合作。在此之前,宽睿金融对 TDengine 进行了性能测试,并根据测试报告的结果,决定将 TDengine 接入宽睿数字平台,以提升高密度行情处理效率。本文将详细介绍此…

百元开放式耳机性价比推荐,全网5款爆火产品实测!

耳机作为我们日常生活中不可或缺的一部分,它的性能、配置及形态也在不停的优化。目前开放式耳机是耳机中最为热门的一款产品,以其不入耳的的设计迅速占领耳机市场,最主要是因为自身佩戴的舒适度有大幅度提升。人们更加注重生活的质量&#xf…

Apollo9.0 PNC源码学习之Control模块(五)—— 基于LQR的横向控制

前面文章: Apollo9.0 PNC源码学习之Control模块(一) Apollo9.0 PNC源码学习之Control模块(二) Apollo9.0 PNC源码学习之Control模块(三) Apollo9.0 PNC源码学习之Control模块(四&…

通信原理抽样定理和PAM调制解调硬件实验

一、实验目的 1. 加深理解抽样定理; 2. 加深理解脉冲幅度调制的原理。 二、实验内容 1. 观测PAM平顶抽样波形; 2. 观测PAM自然抽样波形及解码后波形。 三、实验器材 1. 双踪示波器; 2. 通信原理实验箱信号源模块、①号模块。 四、实…

Stable Diffusion学习指南【图生图篇】

一、图生图功能初识 1.1 传统意义上的喂参考图 我们都知道,模型在运算时是根据我们提供的提示内容来确定绘图方向,如果没有提示信息,模型只能根据此前的学习经验来自行发挥。在之前的文生图篇,我们介绍了如何通过提示词来控制图…

Centos系统yum安装mysql数据库

安装之前需要将系统自带的mariadb-libs软件包删除。 检查是否存在mariadb-libs包。 yum list installed|grep mariadb-libs 删除mariadb-libs包 yum -y remove mariadb-libs 声明: 系统:CentOS-7-x86_64-DVD-2009 安装为最小化安装,没…

在IDEA中连接数据库

1.点击侧边栏的Database 2.选中你要连接的数据库类型 3.输入用户名、密码,测试连接,没有驱动的话先下载下驱动 4.发现没有数据库,点击1 of 14,选择All schemas,即可显示全部数据库 5.执行sql 如果对您有帮助的话记…