自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

使用Python探究OpenAI API

譯文
人工智能
我們在本文中將探討如何結(jié)合使用OpenAI API和Python以及可以執(zhí)行的各種任務。但愿您能從這篇文章中學到很多。

想了解更多AIGC的內(nèi)容,請訪問:

51CTO AI.x社區(qū)

http://www.scjtxx.cn/aigc/

不妨了解可以從OpenAI享用的所有實用服務。

誰沒聽說過OpenAI?這家人工智能研究實驗室因其著名的產(chǎn)品ChatGPT而改變了世界。它改變了AI實施領域,許多公司現(xiàn)在急于成為下一大熱點。

盡管競爭激烈,OpenAI仍然是任何生成式AI業(yè)務需求的首選公司,因為它擁有最好的模型和持續(xù)的支持。該公司提供了許多最先進的生成式AI模型,能夠處理各種任務:圖像生成和文本到語音等。

OpenAI提供的所有模型都可以通過API調(diào)用獲得。借助簡單的Python代碼,您已經(jīng)可以使用該模型。

我們在本文中將探討如何結(jié)合使用OpenAI API和Python以及可以執(zhí)行的各種任務。但愿您能從這篇文章中學到很多。

OpenAI API設置

要閱讀本文,您需要準備好幾個方面。

最重要的是OpenAI的API密鑰,因為沒有密鑰就無法訪問OpenAI模型。要獲得訪問權(quán)限,您必須注冊OpenAI帳戶,并在帳戶頁面上申請API密鑰。收到密鑰后,將其保存在能夠記住的地方,因為它不會再次出現(xiàn)在OpenAI界面中。

需要做的下一件事是購買預付費積分以使用OpenAI API。最近,OpenAI宣布改變計費方式。我們需要為API調(diào)用購買預付費積分,而不是在月底支付。您可以訪問OpenAI定價頁面來估算所需的積分。還可以查看模型頁面,以了解您需要哪種模型。

最后,您需要在生產(chǎn)環(huán)境中安裝OpenAI Python軟件包。您可以使用下面的代碼做到這一點。

pip install openai

然后,您需要使用下面的代碼設置OpenAI Key環(huán)境變量。

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

一切設置完畢后,不妨開始使用Python探索OpenAI模型的API。

OpenAI API文本生成

OpenAI API的明星是其文本生成模型。這些大語言模型系列可以從名為提示的文本輸入生成文本輸出。提示實際上是關于我們期望從模型中得到什么的指令,比如分析文本和生成文檔草稿等。

不妨從執(zhí)行一個簡單的文本生成API調(diào)用入手。我們將使用OpenAI的GPT-3.5 Turbo模型作為基礎模型。它不是最先進的模型,但最便宜的模型常常足以執(zhí)行與文本相關的任務。

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)
  • “釋放預測分析的力量,推動數(shù)據(jù)驅(qū)動的決策!”
  • “深入挖掘數(shù)據(jù)海洋,發(fā)現(xiàn)有價值的見解?!?/li>
  • “通過先進算法將原始數(shù)據(jù)轉(zhuǎn)化為實用的情報。”

文本生成模型的API調(diào)用使用API Endpoint chat.completions從提示創(chuàng)建文本響應。

文本生成需要兩個參數(shù):模型和消息。

至于模型,您可以檢查可以在相關模型頁面上使用的模型列表。

至于消息,我們傳遞一個含有兩個對的字典:角色和內(nèi)容。角色鍵指定了對話模型中的角色發(fā)送方。有三種不同的角色:系統(tǒng)、用戶和助手。

使用消息中的角色,我們可以幫助設置模型行為和模型應該如何回答提示的示例。

不妨使用角色助手擴展前面的代碼示例,以指導我們的模型。此外,我們將探索文本生成模型的一些參數(shù),以改進結(jié)果。

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)

當然!以下是基于提供的行語的三個內(nèi)容思路:

  • “釋放數(shù)據(jù)處理的力量:數(shù)據(jù)科學家的逐步指南”——創(chuàng)建一篇博文或視頻教程,展示實際數(shù)據(jù)科學項目中數(shù)據(jù)處理的最佳實踐和工具。
  • “預測分析的未來:數(shù)據(jù)科學的趨勢和創(chuàng)新”——撰寫一篇思想領袖文章,討論預測分析領域的新興趨勢和技術(shù),以及它們?nèi)绾嗡茉鞌?shù)據(jù)科學的未來。
  • “駕馭特征工程:提升模型性能的技術(shù)”——開發(fā)一個信息圖表或社交媒體系列,著重介紹不同的特征工程技術(shù)及其對提高機器學習模型的準確性和效率的影響。

生成的輸出遵循我們提供給模型的示例。如果我們希望模型遵循某種樣式或結(jié)果,那么使用角色助手非常有用。

至于參數(shù),下面簡單解釋我們使用的每個參數(shù):

  • max_tokens:該參數(shù)設置模型可以生成的最多字數(shù)。
  • temperature:該參數(shù)控制模型輸出的不可預測性。該參數(shù)值越高,輸出越具有多樣性,越富有想象力??山邮艿姆秶菑?到無窮大,但大于2的值不尋常。
  • top_p:又叫核抽樣,該參數(shù)有助于確定模型得出輸出所依賴的概率分布的子集。比如說,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": [
"利用預測分析發(fā)掘?qū)氋F的洞察力",
"深入研究先進機器學習算法的微妙細處",
"利用大數(shù)據(jù)的力量推動數(shù)據(jù)驅(qū)動的決策"
]
}

結(jié)果采用JSON格式,并遵循我們輸入到模型中的提示。

要獲得完整的文本生成API文檔,您可以在專門的頁面上查看。

OpenAI圖像生成

OpenAI模型對于文本生成用例很有用,也可以調(diào)用API以生成圖像。

使用DALL?E模型,我們可以按要求生成圖像。執(zhí)行起來很簡單,只需使用以下代碼。

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)

針對這些參數(shù),解釋如下:

  • model:要使用的圖像生成模型。目前,API只支持DALL?E 3和DALL?E 2模型。
  • prompt:這是文本描述,模型將在此基礎上生成圖像。
  • size:決定生成圖像的分辨率。DALL?E3模型有三種選擇:1024x1024、1024x1792或1792x1024。
  • quality:該參數(shù)影響生成圖像的質(zhì)量。如果需要計算時間,“標準”比“高清”快。
  • n:指定基于提示生成圖像的數(shù)量。DALL?E3一次只能生成一個圖像。DALL?E2一次可以生成多達10個圖像。

還可以從現(xiàn)有的圖像生成一個衍變圖像,不過只能使用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。該模型能夠根據(jù)我們給出的圖像回答問題。

不妨試一下Vision模型API。在本例中,我將使用從DALL?E3模型生成的白色鋼琴圖像,并將其存儲在本地。此外,我還將創(chuàng)建一個函數(shù),接受圖像路徑并返回圖像描述文本。別忘了將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']

這個圖像顯示一架大鋼琴擺放在寧靜的海灘上。鋼琴是白色的,表明一種常與優(yōu)雅聯(lián)系在一起的色調(diào)。樂器放在海岸線的邊緣,輕柔的海浪輕撫沙灘,泛起泡沫,正好碰到鋼琴的底座和配套的凳子。海灘周圍的環(huán)境暗示著一種寧靜和隔絕的感覺,清澈的藍天,遠處蓬松的云,平靜的大海延伸到地平線。無數(shù)大小形狀各異的貝殼散落在沙灘上鋼琴的周圍,突出了環(huán)境的自然美和寧靜的氛圍。自然海灘環(huán)境中的古典樂器創(chuàng)造了超現(xiàn)實和畫面充滿詩意的構(gòu)圖。

您可以調(diào)整上面字典中的文本值以匹配您的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)

您應該會在目錄中看到音頻文件。試著播放一下,看看是否符合標準。

目前,只有幾個參數(shù)可以用于文本到語音模型:

  • model:要使用的文本到語音模型。只有兩種模型可用:ts-1或ts-1-hd,其中ts-1優(yōu)化速度,ts-1-hd優(yōu)化質(zhì)量。
  • voice:使用的語音樣式,所有聲音都被優(yōu)化為英語。選擇有alloy、echo、fable、onyx、nova和shimmer。
  • response_format:音頻格式文件。目前支持的格式有mp3、opus、aac、flac、wav和pcm。
  • speed:生成的音頻速度。您可以選擇0.25到4之間的值。
  • input:用于創(chuàng)建音頻的文本。目前,模型最多支持4096個字符。

OpenAI語音到文本

OpenAI提供了轉(zhuǎn)錄和翻譯音頻數(shù)據(jù)的模型。使用Whispers模型,我們可以將音頻從支持的語言轉(zhuǎn)錄到文本文件中,并將其翻譯成英語。

不妨從我們之前生成的音頻文件中嘗試簡單的轉(zhuǎn)錄。

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)

我喜歡數(shù)據(jù)科學和機器學習。

還可以將音頻文件翻譯成英語。模型還無法翻譯成另一種語言。

from openai import OpenAI
client = OpenAI()

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

結(jié)論

我們已經(jīng)探討了OpenAI提供的幾項模型服務,從文本生成、圖像生成、音頻生成、視覺和文本到語音模型。每個模型都有自己的API參數(shù)和規(guī)范,您需要在使用它們之前有所了解。

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

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

想了解更多AIGC的內(nèi)容,請訪問:

51CTO AI.x社區(qū)

http://www.scjtxx.cn/aigc/

責任編輯:姜華 來源: 51CTO內(nèi)容精選
相關推薦

2010-09-28 15:27:09

JavaScript

2010-09-28 14:00:25

DOMAPI

2023-11-23 08:00:00

OpenAILangChain

2021-03-26 11:02:20

Python自然語言API

2022-02-25 15:08:06

DevEco開發(fā)OpenHarmon鴻蒙

2023-10-30 17:36:08

OpenAIAPI插件

2023-03-03 07:34:05

2022-07-04 16:26:07

鴻蒙屏幕截圖

2024-11-28 16:45:50

2023-06-01 08:24:08

OpenAIChatGPTPython

2023-08-31 08:12:23

應用場景業(yè)務異常HTTP

2023-05-06 08:35:36

2010-08-27 09:29:40

CSSbehavior

2010-08-26 10:48:51

CSScaption-sid

2010-09-08 14:00:08

marginCSS

2010-08-04 09:43:28

Flex應用程序

2019-12-23 10:00:52

PythonFlaskPython Web

2024-06-25 15:46:41

OpenAIChatGPTGPT-4

2023-07-07 09:32:57

GPT-4OpenAI
點贊
收藏

51CTO技術(shù)棧公眾號