善用 OpenAI 的 Completions API

圖片

OpenAI 的 Completions API 雖然已經是屬於legacy的API,但其實一直以來它都是一個挺方便的文字生成工具。

這個 API 提供了對 GPT-3 和最新的 GPT-4 模型的存取,允許用戶輕鬆創建自然語言應用。無論是文章自動生成語言翻譯還是情緒分析,Completions API 都是相當便捷好用的API。

要使用 OpenAI Completions API,開發人員可透過 POST 方法與 API 互動。在 Request 的 Header 中,應包含 Authorization 字段,其值為 Bearer [你的API金鑰],以認證API的使用者身份。 (金鑰申請方式)

Request 的 Body 則需包含數個參數,主要是 model(指定使用的 GPT 模型),prompt(輸入給模型的提示文本),以及 max_tokens(指定生成文本的最大長度)等。透過指定這些參數,開發者可精確控制生成出的文字,例如:
圖片

你會發現,當使用 OpenAI Completions API 的 POST 請求時,Body 部分的撰寫相當重要。這部分的內容指導了 AI 模型如何回應需求。其中,prompt 屬性是控制AI Model生成文字的起點,而 max_tokens 則指定生成內容的最大長度。其他可用的參數包括 temperature(控制回應的創造性),top_p(影響回應的多樣性),以及 frequency_penaltypresence_penalty(用於調節特定詞語的重複出現)。合理的設定這些細節,能夠讓開發者有效地定制模型的回應,以符合其特定應用場景的需求。

我們再透過一個例子來看 Completions API的另一種用法。假設我們想要生成一段關於人工智能未來趨勢的文字,我們的 POST 請求的 JSON Body 可以如下:

{
  "model": "gpt-3.5-turbo-instruct",
  "prompt": "描述未來五年內人工智能的發展趨勢",
  "max_tokens": 1450,
  "temperature": 0.7,
  "top_p": 1,
  "frequency_penalty": 0.5,
  "presence_penalty": 0
}

回應的結果是:
圖片

在這個例子中,我們使用了 gpt-3.5-turbo-instruct 模型,並給出了具體的提示問題。我們設定 max_tokens 為 1450,以限制回應的長度。temperature 設為 0.7,這提供了合適的創造性平衡。此外,我們使用了 top_pfrequency_penaltypresence_penalty 來進一步細化回應的風格和內容。透過這樣的設定,API 將生成一段既信息豐富又創造性的文本,符合我們的需求。

使用上述例子,我們可以說明 GPT-3(及類似的 AI 模型)為何被稱為“文字接龍大師”。當我們給出一個具體的提示,GPT 能夠接續這一思路,生成一段連貫、有內容的文字。

翻譯 與 情緒判斷

除了生成連貫的文本外,OpenAI 的 Completions API 還可以用於進行情感識別和翻譯等任務。例如,我們可以將 API 配置為分析一段文本的情緒,識別出其是正面、負面還是中立,例如:

{
  "model": "gpt-3.5-turbo-instruct",
  "prompt": "這段文本的情緒是什麼?'叫你老闆出來!' ",
  "max_tokens": 60
}

圖片

同樣地,API 也可以用於將一段文本從一種語言翻譯成另一種語言,這在全球化的溝通中尤為重要。例如:

{
  "model": "gpt-3.5-turbo-instruct",
  "prompt": "將以下英文翻譯成中文: 'Artificial Intelligence is transforming the world.'",
  "max_tokens": 60
}

結果如下:
圖片

這些多樣化的功能呈現出了 GPT 模型在自然語言處理領域的強大應用潛力。而透過 Completions API 的使用,開發人員可以方便地接入 GPT 模型的強大能力,進行文章生成、翻譯、情感分析等多種自然語言處理任務。這不僅能夠提高用戶的工作效率,也為各種應用增添了創新的可能性。這些進展再次證明了 GPT 模型在理解和生成人類語言方面的先進性和靈活性。


相關課程:
https://www.studyhost.tw/NewCourses/LineBot

留言

這個網誌中的熱門文章

在POC或迷你專案中使用 LiteDB

使用Qdrant向量資料庫實作語意相似度比對

專業的價值...

使用 Airtable 在小型需求上取代傳統資料庫

讓 LINE Bot 對談機器人顯示 "Loading..." 動畫