如何使用OpenAI API × Flask 建立網路服務-以範例為例說明-1

Sean Yeh
Python Everywhere -from Beginner to Advanced
10 min readOct 21, 2023
Fujikawaguchiko machi, Japan, photo by Sean Yeh

近來,不知道大家是否發現,不論是在新聞或是社群上,各種標榜AI人工智慧的產品如雨後春筍般冒出來。而在這些產品的介紹或者廣告裡,您也會常常看到「GPT-4」、「ChatGPT」等名詞。可能您會心想:「為什麼大家都在用它?」。沒錯,這些都和OpenAI模型有關,一個由OpenAI所開發出來的超厲害LLM語言模型(大型語言模型,Large Language Model 簡稱 LLM)。

其實,這些應用服務為何能「變聰明」,主要就是因為他們有個很強大的「幕後支持者」 — 也就是OpenAI模型,它也是ChatGPT底層使用的LLM語言模型。然後你可能會問:「他們是如何把這個OpenAI模型放進他們的產品裡的呢?」答案很簡單,就是透過一個叫做API的工具。

在這篇文章中,我們會以「OPenAI API的範例」為基礎,一步一步地來看如何使用OpenAI API,以及如何利用Python的Flask框架,將這神奇的AI能力整合到自己的網站或是應用服務上,就像加了一個超級助手一樣。

不管你是程式設計的新手,或者是有點經驗但想進一步了解的工程師,相信這篇文章都會對您有幫助。讓我們一起來揭開OpenAI API的神秘面紗,看看它有多神奇吧。

OpenAI是什麼機構?

OpenAI是一家成立於2015年的AI研究公司。它是由科技界和非營利組織的一些大咖共同創立的,包括大家耳熟能詳的Elon Musk(特斯拉和SpaceX的老闆)、Sebastian Thrun(自動駕駛的先驅)、Greg Brockman和Sam Altman(兩位也都是科技界的重量級人物)。

OpenAI擁有簡單而偉大的使命,那就是:研究和推進人工智慧科技,同時也要關心這些科技會對我們人類有什麼影響。為了達成這個目標,OpenAI在不同領域都做了很多研究,包括讓機器懂得怎麼跟人說話的「自然語言處理」、讓機器看懂圖片的「計算機視覺」和機器學習等等。

此外,OpenAI也開發了不少讓人眼睛一亮的產品,像是大名鼎鼎的GPT系列,其中GPT-4可以說是目前(2023年)最先進的語言模型之一。不只如此,他們還有一個叫做Codex的工具,能夠根據你用自然語言寫的需求,幫你生成程式碼 。除了這些,還有DALL-E(能生成很逼真的圖像)、Gym(一個用來開發和比較強化學習算法的工具庫)等等。總之OpenAI就是一個在AI領域做了很多前衛、也很實用的研究和開發的公司。

那我們今天要聊的OpenAI API又是什麼呢?簡單來說,這是一個讓你能將OpenAI的這些先進技術輕鬆整合到你自己的應用或服務中的工具。

OpenAI API是什麼?

首先,API這個名詞全名是「Application Programming Interface」,用白話文解釋就是:「你給它什麼,它就回你什麼」的一個程式接口。您可能會想:「喔,好像有點懂但又好像不懂。」別擔心,讓我們用一個更貼近生活的例子來解釋。

想像API就像是一台自動販賣機,您將錢幣投進去,按下想要的飲料按鈕,然後飲料就出來了,對吧?您不需要知道這台販賣機裡面是怎麼運作的,反正就是按個鈕,拿到想要的飲料。

OpenAI API也是這樣,您不用懂得背後超複雜的人工智慧模型或是程式語言,只需要透過這個API接口,就能使用到OpenAI的厲害功能。

使用OpenAI API

我們接下來來談談怎麼使用OpenAI API。

如果您有點Python基礎,這件事情會變得非常簡單。因為OpenAI官方提供一個Python套件叫做「openai」,透過這個套件使用OpenAI API,就是最直接、最簡單的方式。

安裝這個套件就像是去便利商店買個飲料一樣簡單,打開你的命令列或是終端機,然後輸入pip指令安裝:

pip install openai

安裝完之後,你就能開始使用OpenAI API了。

當然啦,如果您是個喜歡挑戰的人,也可以使用Python的request模組來呼叫API。因為實際上API是透過HTTP通訊協定來運作的,意思就是說不只Python,其實任何能進行HTTP傳輸的程式語言都能用。

但老實說,如果是新手或是想省事的話,還是用OpenAI提供的官方套件最方便。

安裝開發環境套件

前面談過OpenAI API是什麼,現在我們來談談在實際動手之前,需要做哪些準備工作。

安裝Python

首先的首先,要確保你的電腦有安裝Python 3的最新版本。沒有的話,先跳到Python官網去下載和安裝。這就像是學廚藝之前,要確保家裡有瓦斯爐一樣,基本的東西要先備齊。

安裝套件

接著,需要安裝一些「套件」,這些就是幫我們省下很多時間和力氣的小工具。

打開您的終端機或命令提示字元,然後輸入以下指令:

pip install openai
pip install flask
pip install python-dotenv

在此稍微解釋一下上面的指令:

  • pip install openai:是OpenAI API的官方套件。也是我們今天最主要的套件。
  • pip install flask:Flask是一個Python的Web框架,可以用它來建立一個小型的網站。
  • pip install python-dotenv:這個套件能讓我們方便地從.env檔案讀取設定資訊,比如說像是API金鑰(API Key)這類資訊,需要放在一個較為安全的地方。

有了這些工具,我們就能開始動手利用OpenAI API來建立自己的AI應用程式。

透過OpenAI的範例「Quickstart Sample App」來學習

前面我們學了怎麼建立開發環境,在這個段落,我們要直接看看大師級的範例程式。

上GitHub

首先,OpenAI給了我們一個用Python和Flask寫的範例應用程式。這個範例在GitHub就能找到。

點進去後,首先映入眼簾的是下面這個畫面。

下載範例檔案

你會看到一堆代碼和文件,不過不用怕,只要看到右上角有個綠色的「Code」按鈕,點它然後選「Download ZIP」,這個範例程式就下載到你的電腦裡了。

解壓縮與建立虛擬環境

下載完畢後,解壓縮這個檔案,然後把它放在你覺得適合的地方。接著打開終端機或命令提示字元,cd進到這個資料夾裡。

$ cd openai-quickstart-python

然後我們來建立一個虛擬環境,這就像是給這個範例程式一個獨立的小包廂,讓它能舒舒服服地在裡面運行。

$ python -m venv venv

虛擬環境建立完畢之後,啟動這個虛擬環境。

$ source venv/bin/activate

安裝必要套件工具

接著在這個虛擬環境下,我們安裝所有需要的套件。請打開命令提示字元或終端機,用 cd 命令進入該資料夾,並且執行以下指令:

$ pip install -r requirements.txt

上面的指令,可以一口氣自動幫您安裝所有的套件。因為此範例所需要的套件與版本都已經列在「requirements.txt」裡頭(如下圖示)。

設定 .env 檔案

接下來,我們要建立 .env 檔案。同樣的,請在命令提示字元或終端機輸入下面的指令:

cp env.example env

cp指令是指「copy」的意思,透過這個指令,我們可以將原本的「.env.example」檔案複製為檔名「.env」的新檔案。

有了.env的新檔案。打開它(如下面的指令),然後找到OPENAI_API_KEY=,在「等於」符號的後面填入你的API金鑰。

FLASK_APP=app
FLASK_ENV=development
# Once you add your API key below, make sure to not share it with anyone! The API key should remain private.
OPENAI_API_KEY=

請注意:這個API金鑰是不能隨便給人看的,它就像是您的信用卡授權碼一樣。很重要。

開啟Web 應用

終於到了最後一個步驟,在終端機或命令提示字元輸入:

flask run

看到這個指令執行完成後,你就可以用瀏覽器打開終端機中顯示的網址(應該會是:http://127.0.0.1:5000/ ),然後開始欣賞這個範例程式的風采。

起始畫面

這時候,您可以親手測試看看效果。在輸入匡裡面輸入一個名詞,例如下圖,我在這裡輸入『cat』。

然後按下「Generate names」按鈕:

結果您會看到,在「Generate names」按鈕的下方出現了「Captain Claws, Fuzzy Agent,Wonder Cat」的一串字。這些字就是透過OpenAI API回傳的Prompt結果。

小結

簡短總結一下。首先,OpenAI提供了方便易用的API來讓我們像是使用自來水一樣的可以方便的和OpenAI模型進行互動。獲得了這把OpenAI API金鑰的您,就像是拿著一把能讓AI助您一臂之力的魔法棒。

不過,要有效使用這把魔法棒,您需要了解如何建立一個穩健的應用服務。透過OpenAI的範例「Quickstart Sample App」,可以讓您快速地上手並且開始您的AI之旅。

下一篇我們會更深入探討這個範例程式的各個細節,就像是一場程式碼的尋寶冒險。對於有潛力改變未來的AI。只要我們花時間去學習和成長,一步一腳印,就會越來越接近那未知但充滿可能的未來。

--

--

Sean Yeh
Python Everywhere -from Beginner to Advanced

# Taipei, Internet Digital Advertising,透過寫作讓我們回想過去、理解現在並思考未來。並樂於分享,這才是最大贏家。