十分鐘學會開發(fā)自己的Python AI應(yīng)用【OpenAI API篇】

最近 OpenAI 宣布 ChatGPT 將很快推出他們的 API枫绅。雖然我們不知道這需要多長時間属拾,但這之前我們可以熟悉下OpenAI API舞萄,快速開發(fā)自己的AI應(yīng)用见转!

通過今天學習 OpenAI API水醋,你將能夠訪問 OpenAI 的強大模型,例如用于自然語言的 GPT-3彪置、用于將自然語言翻譯為代碼的 Codex 以及用于創(chuàng)建和編輯原始圖像的 DALL-E拄踪。

這篇文章的例子將用Pyhon編寫。

生成 API 密鑰

在我們開始使用 OpenAI API 之前拳魁,我們需要登錄我們的 OpenAI 帳戶并生成我們的API 密鑰惶桐。

這里要注意,OpenAI 不會在生成 API 密鑰后再次顯示它潘懊,因此請及時復(fù)制你的 API 密鑰并保存姚糊。我將創(chuàng)建一個名為 OPENAI_API_KEY 的環(huán)境變量,它將包含我的 API 密鑰并將在下一節(jié)中使用卦尊。

使用 Python接入 OpenAI API

要與 OpenAI API 交互叛拷,我們需要通過運行以下命令來安裝官方OpenAI包舌厨。

pip install openai

我們可以用這個 API 做很多事情岂却。 在本文中,我們將分別完成文字裙椭、代碼和圖像的生成躏哩。

1.文本生成

文本生成可用于文字鑒別、文本生成揉燃、自動對話扫尺、轉(zhuǎn)換、摘要等炊汤。要使用它正驻,我們必須使用completion endpoint并為模型提供觸發(fā)指令,然后模型將生成匹配上下文/模式的文本抢腐。

假設(shè)我們要對以下文本進行鑒別姑曙,我們向AI輸入指令(中英文都可以):

判斷以下Mike的發(fā)言情緒是正面、中立還是負面: Mike:我不喜歡做作業(yè)迈倍! Sentiment:

以下就是用到的代碼:

import os import openai
openai.api_key = os.getenv("OPENAI_API_KEY") prompt =  """
Decide whether a Mike's sentiment is positive, neutral, or negative.

Mike: I don't like homework!
Sentiment:
""" 
response = openai.Completion.create( model="text-davinci-003", prompt=prompt, max_tokens=100, temperature=0  )  print(response)

根據(jù) OpenAI 文檔伤靠,GPT-3 模型是與文本生成的endpoint一起使用。 這就是我們在此示例中使用模型 text-davinci-003 的原因啼染。

以下是返回值的部分打友绾稀:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "Negative"
    }
  ],
...
}

在此示例中,推文的情緒被歸類為負面Negative迹鹅。

讓我們看一下這個例子中使用的參數(shù):

model :要使用的模型的 ID(在這里你可以看到所有可用的模型)

Prompt:生成結(jié)果的觸發(fā)指令

max_token:完成時生成的最大token數(shù)量(這里可以看到OpenAI使用的tokenizer)

temperature:要使用的采樣策略卦洽。 接近 1 的值會給模型帶來更多風險/創(chuàng)造力,而接近 0 的值會生成明確定義的答案斜棚。

2. 代碼生成

代碼生成與文本生成類似逐样,但這里我們使用 Codex 模型來理解和生成代碼。

Codex 模型系列是經(jīng)過自然語言和數(shù)十億行代碼訓(xùn)練的 GPT-3 系列的后代。 借助 Codex脂新,我們可以將注釋轉(zhuǎn)化為代碼挪捕、重寫代碼以提高效率等等。

讓我們使用模型 code-davinci-002 和下面的觸發(fā)指令生成 Python 代碼争便。

代碼生成一個序列级零,內(nèi)容包含上海的溫度。

import os
import openai

openai.api_key = os.getenv("OPENAI_API_KEY")

response = openai.Completion.create(
  model="code-davinci-002",
  prompt="\"\"\"\nCreate an array of weather temperatures for Shanghai\n\"\"\"",
  temperature=0,
  max_tokens=256,
  top_p=1,
  frequency_penalty=0,
  presence_penalty=0
)

print(response)

以下是返回值的部分打又鸵摇:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "logprobs": null,
      "text": "\n\nimport numpy as np\n\ndef create_temperatures(n):\n    \"\"\"\n    Create an array of weather temperatures for Shanghai\n    \"\"\"\n    temperatures = np.random.uniform(low=14.0, high=20.0, size=n)\n    return temperatures"
    }
  ],
...
  }
}

把text部分重新顯示格式化一下奏纪,你就會看到規(guī)整的代碼生成了:

import numpy as np

def create_temperatures(n):
    temperatures = np.random.uniform(low=14.0, high=20.0, size=n)
    return temperatures

如果想開發(fā)更多,我建議你在 Playground 中測試 Codex(這里有一些幫助你入門的示例)

3. 圖像生成

我們可以使用 DALL-E 模型生成圖像斩启,我們使用圖像生成endpoint并提供文本指令序调。

以下是我的測試指令(我們在指令中提供的細節(jié)越多,我們就越有可能獲得我們想要的結(jié)果)兔簇。

一只毛茸茸的藍眼睛白貓坐在花籃里发绢,可愛地抬頭看著鏡頭

import openai

response = openai.Image.create(
  prompt="A fluffy white cat with blue eyes sitting in a basket of flowers, looking up adorably at the camera",
  n=1,
  size="1024x1024"
)
image_url = response['data'][0]['url']
print(image_url)

以下是我得到的圖片:


當然更有趣的是,還可以使用image edits and image variations endpoints編輯圖像并生成原圖像的調(diào)整垄琐。

好了边酒,這篇文章就到這里,希望能激發(fā)你的創(chuàng)造力狸窘,更多OpenAI API的使用請參考官方文檔墩朦。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市翻擒,隨后出現(xiàn)的幾起案子氓涣,更是在濱河造成了極大的恐慌,老刑警劉巖陋气,帶你破解...
    沈念sama閱讀 216,324評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件劳吠,死亡現(xiàn)場離奇詭異,居然都是意外死亡恩伺,警方通過查閱死者的電腦和手機赴背,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,356評論 3 392
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來晶渠,“玉大人凰荚,你說我怎么就攤上這事“” “怎么了便瑟?”我有些...
    開封第一講書人閱讀 162,328評論 0 353
  • 文/不壞的土叔 我叫張陵,是天一觀的道長番川。 經(jīng)常有香客問我到涂,道長脊框,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,147評論 1 292
  • 正文 為了忘掉前任践啄,我火速辦了婚禮浇雹,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘屿讽。我一直安慰自己昭灵,他們只是感情好,可當我...
    茶點故事閱讀 67,160評論 6 388
  • 文/花漫 我一把揭開白布伐谈。 她就那樣靜靜地躺著烂完,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诵棵。 梳的紋絲不亂的頭發(fā)上抠蚣,一...
    開封第一講書人閱讀 51,115評論 1 296
  • 那天,我揣著相機與錄音履澳,去河邊找鬼嘶窄。 笑死,一個胖子當著我的面吹牛奇昙,可吹牛的內(nèi)容都是我干的护侮。 我是一名探鬼主播敌完,決...
    沈念sama閱讀 40,025評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼储耐,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了滨溉?” 一聲冷哼從身側(cè)響起什湘,我...
    開封第一講書人閱讀 38,867評論 0 274
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎晦攒,沒想到半個月后闽撤,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,307評論 1 310
  • 正文 獨居荒郊野嶺守林人離奇死亡脯颜,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,528評論 2 332
  • 正文 我和宋清朗相戀三年哟旗,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片栋操。...
    茶點故事閱讀 39,688評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡闸餐,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出矾芙,到底是詐尸還是另有隱情舍沙,我是刑警寧澤,帶...
    沈念sama閱讀 35,409評論 5 343
  • 正文 年R本政府宣布剔宪,位于F島的核電站拂铡,受9級特大地震影響壹无,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜感帅,卻給世界環(huán)境...
    茶點故事閱讀 41,001評論 3 325
  • 文/蒙蒙 一斗锭、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧失球,春花似錦拒迅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,657評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至硬梁,卻和暖如春前硫,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背荧止。 一陣腳步聲響...
    開封第一講書人閱讀 32,811評論 1 268
  • 我被黑心中介騙來泰國打工屹电, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人跃巡。 一個月前我還...
    沈念sama閱讀 47,685評論 2 368
  • 正文 我出身青樓危号,卻偏偏與公主長得像,于是被迫代替她去往敵國和親素邪。 傳聞我的和親對象是個殘疾皇子外莲,可洞房花燭夜當晚...
    茶點故事閱讀 44,573評論 2 353

推薦閱讀更多精彩內(nèi)容