找回密码
 会员注册
查看: 27|回复: 0

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

[复制链接]

5

主题

0

回帖

16

积分

新手上路

积分
16
发表于 2024-9-2 22:37:45 | 显示全部楼层 |阅读模式
OpenAi环境安装首先确保您的计算机上已经安装了Python。您可以从Python官方网站下载并安装最新版本Python。安装时,请确保勾选“AddPythontoPATH”(添加环境变量)选项,以便在cmd命令行中直接使用Python。安装OpenAIPython库打开命令行或终端窗口安装OpenAIPython库pipinstallopenai1OpenAiPlatform教程平台官网:https://platform.openai.com/httpAPI调用方式文档:https://platform.openai.com/docs/api-reference/introduction文本生成GPT-4GPT-4模型概述GPT-4是一个大型多模态模型(接受文本或图像输入和输出文本),由于其更广泛的一般知识和先进的推理能力,它可以比我们以前的任何模型都更准确地解决难题。付费客户可以在OpenAIAPI中使用GPT-4。与gpt-3.5turbo一样,GPT-4针对聊天功能进行了优化,但在使用聊天完井API的传统完井任务中表现良好。在我们的文本生成指南中学习如何使用GPT-4。测试案例聊天模型将消息列表作为输入,并返回模型生成的消息作为输出。虽然聊天格式的设计是为了使多回合的对话变得容易,但它对于没有任何对话的单回合任务同样有用。一个聊天完成API调用的例子如下:fromopenaiimportOpenAIclient=OpenAI()response=client.chat.completions.create(model="gpt-4",messages=[{"role":"system","content":"Youareahelpfulassistant."},{"role":"user","content":"Whowontheworldseriesin2020?"},{"role":"assistant","content":"TheLosAngelesDodgerswontheWorldSeriesin2020."},{"role":"user","content":"Wherewasitplayed?"}])print(response)1234567891011121314数据结构{"choices":[{"finish_reason":"stop","index":0,"message":{"content":"The2020WorldSerieswasplayedinTexasatGlobeLifeFieldinArlington.","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}}12345678910111213141516171819202122图像合成DALL·EDALL·E模型概述DALL·E是一个人工智能系统,可以通过自然语言的描述创造逼真的图像和艺术。DALL·e3目前支持在提示下创建具有特定大小的新映像的功能。DALL·e2还支持编辑现有映像,或创建用户提供的映像的变体。测试案例图像生成端点允许您在给定文本提示的情况下创建原始图像。当使用DALL·e3时,图像的大小可以是1024x1024、1024x1792或1792x1024像素。默认情况下,图像以标准质量生成,但当使用DALL·e3时,您可以将质量设置为“hd”以增强细节。正方形的、标准质量的图像是最快生成的。您可以使用DALL·e3一次请求1个图像(通过并行请求请求更多),或者使用带n参数的DALL·e2一次至多请求10个图像。fromopenaiimportOpenAIclient=OpenAI()response=client.images.generate(model="dall-e-3",prompt="awhitesiamesecat",size="1024x1024",quality="standard",n=1,)image_url=response.data[0].url12345678910111213语音合成TTSTTS模型概述TTS是一种人工智能模型,可以将文本转换为自然发音的口语文本。我们提供了两种不同的模型变量,ts-1针对实时文本到语音的用例进行了优化,而ts-1-hd针对质量进行了优化。这些模型可以与AudioAPI中的Speech端点一起使用。测试案例语音端点接受三个关键输入:模型、应该转换为音频的文本和用于音频生成的语音。简单的请求如下所示:frompathlibimportPathfromopenaiimportOpenAIclient=OpenAI()speech_file_path=Path(__file__).parent/"speech.mp3"response=client.audio.speech.create(model="tts-1",voice="alloy",input="Todayisawonderfuldaytobuildsomethingpeoplelove!")response.stream_to_file(speech_file_path)12345678910111213音色选择尝试不同的声音(alloy,echo,fable,onyx,nova,andshimmer),找到一个符合你想要的语气和听众。当前的声音是针对英语优化的。语音识别WhisperWhisper概述Whisper是一个通用的语音识别模型。它是在不同音频的大型数据集上训练的,也是一个多任务模型,可以执行多语言语音识别以及语音翻译和语言识别。Whisperv2大型模型目前可通过我们的API使用Whisper-1模型名称。目前,Whisper的开源版本和通过我们的API提供的版本之间没有区别。然而,通过我们的API,我们提供了一个优化的推理过程,这使得通过我们的API运行Whisper比执行它要快得多。测试案例语音识别API将要识别的音频文件和所需的音频转录输出文件格式作为输入。我们目前支持多种输入和输出文件格式。文件上传目前限制为25mb,支持mp3、mp4、mpeg、mpga、m4a、wav、webm等文件类型的输入。fromopenaiimportOpenAIclient=OpenAI()audio_file=open("/path/to/file/audio.mp3","rb")transcription=client.audio.transcriptions.create(model="whisper-1",file=audio_file)print(transcription.text)12345678910数据结构{"text":"Imaginethewildestideathatyou'veeverhad,andyou'recuriousabouthowitmightscaletosomethingthat'sa100,a1,000timesbigger.....}1234配置OPENAI_API_KEY查看classOpenAI(SyncAPIClient)类实现的源码片段发现,关于api_key和base_url会读取本地环境变量中OPENAI_API_KEY和OPENAI_BASE_URL变量。ifapi_keyisNone:api_key=os.environ.get("OPENAI_API_KEY")ifapi_keyisNone:raiseOpenAIError("Theapi_keyclientoptionmustbeseteitherbypassingapi_keytotheclientorbysettingtheOPENAI_API_KEYenvironmentvariable")self.api_key=api_key1234567ifbase_urlisNone:base_url=os.environ.get("OPENAI_BASE_URL")ifbase_urlisNone:base_url=f"https://api.openai.com/v1"1234dotenv加载.env环境变量dotenv是一个Python库(虽然也适用于其他编程语言,如JavaScript),它的主要功能是从.env文件中读取环境变量,并将这些变量加载到操作系统的环境变量中,使得Python应用程序可以轻松地访问这些变量。.env文件是一个纯文本文件,其中包含键值对(key-valuepairs),每个键值对占据一行,格式为KEY=VALUE。pipinstallpython-dotenv1将敏感信息(如API密钥、数据库密码等)存储在环境变量中,而不是硬编码在代码中,是一种良好的安全实践。这样可以减少敏感信息泄露的风险,因为这些值不会存储在代码库中,也不会在部署时暴露出来。在Python代码中,使用python-dotenv库加载.env文件,并访问其中的环境变量。这通常通过fromdotenvimportload_dotenv和load_dotenv()函数实现。访问环境变量:加载.env文件后,可以使用os.getenv('KEY')的方式访问环境变量。fromdotenvimportload_dotenvload_dotenv()12图像理解GPT-4ogpt-40和GPT-4Turbo都具有视觉功能,这意味着这些模型可以接收图像并回答有关图像的问题。从历史上看,语言模型系统一直受到单一输入形式文本的限制。模型可以通过两种主要方式使用图像:通过传递到图像的链接或在请求中直接传递base64编码的图像。图像可以在用户消息中传递。fromopenaiimportOpenAIclient=OpenAI()response=client.chat.completions.create(model="gpt-4o",messages=[{"role":"user","content":[{"type":"text","text":"What’sinthisimage?"},{"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])123456789101112131415161718192021222324上传base64编码的图像如果你在本地有一张或一组图像,你可以将它们以base64编码的格式传递给模型,下面是一个实际的例子importbase64importrequestsapi_key="YOUR_OPENAI_API_KEY"defencode_image(image_path):withopen(image_path,"rb")asimage_file:returnbase64.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’sinthisimage?"},{"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())123456789101112131415161718192021222324252627282930313233343536373839404142434445
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-27 00:19 , Processed in 0.491937 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表