AI時代的網站與手機App建置與開發Part32 - 使用Azure OpenAI的文字生成功能

 

l  摘要

文字生成或聊天生成功能可以用來生成企畫書, 例如生成[關稅壓力下的汽車或二手車的行銷企畫], 生成[日本全區包含乘車資訊的30天旅遊計畫], 或是[冰島賞極光之旅携帶物品與藥品清單建議]等等, 都是文字生成的實用範例, 協助生成汽車或二手車銷隻員的行銷企畫, 協助旅遊企畫員生成實用旅遊企畫, 甚至生成指定專案類型的程式碼.

 

: 文字生成範例

l  使用Azure OpenAI服務

欲使用Azure OpenAI資源實踐文字生成, 首先要登入Microsoft Azure Portal(網址: https://portal.azure.com), 登入成功後您會看到如圖1的畫面:

1: Microsoft Azure Portal建立資源的畫面

點選圖1中的[建立資源], 螢幕就會出現如圖2的畫面

2: 建立Azure OpenAI資源的畫面

點選圖2畫面左方的[AI應用程式與代理程式], 再點選右邊的[Azure OpenAI], 您將會看到如圖3的畫面::

3: 輸入Azure OpenAI資源的基本資訊

請於圖3畫面建立新的或選擇資源群組或選擇現有的資源群組, 選擇建立群組的區域, 收費層級, 然後點選[下一頁], 您將會看到圖4的畫面:

4: 設定Azure OpenAI資源網路安全性的畫面

請於圖4畫面中選擇[所有網路], 點選[下一頁], 您就會看到設定分類標籤的畫面, 如圖5所示:

5: 設定分類標籤的畫面, 請點選[下一頁]繼續, 您將會看到如圖6的畫面:

6: 建立Azure OpenAI資源的畫面

請點選[建立]鍵執行建立Azure OpenAI資源, 建立完成後請瀏覽至建立妥的Azure

OpenAI資源, 您將會看到如圖7的畫面

7: Azure OpenAI資源管理畫面

點選[探索Azure AI Foundry入口網站], 您將會看到如圖8的畫面:

8: 文字生成功能的體驗館

點選[建立新部署|來自基底模型]功能, 您會看到如圖9的畫面:

9: 選擇部署文字生成模型的畫面, 請點選左方欲使用的文字生成模型(例如gpt-4.1), 再按下[確認], 螢幕上就會出現文字生成模型的相關使用資料, 如圖10所示:

10: 檢視欲部署的文字生成模型的詳細資料

按下圖10畫面中的[部署]鍵進行部署, 部署完成後就會出現體驗文字生成功能的體驗畫面, 如圖11所示:

11: 體驗文字生成功能的體驗畫面

點選圖11畫面中的[檢視程式碼], 可以看到叫用文字生成功能的範例程式碼, 如圖12所示:

12: 檢視叫用文字生成功能的範例程式碼的畫面. 請點選畫面中的[金鑰認証]頁籤, 在畫面的下方就可以看到叫用文字生成功能的諯點與金鑰, 我們需要這兩個資訊以製作叫用文字生成功的程式:

以下就是使用JavaScript叫用Azure OpenAI文字生成功能的網頁程式

<html lang="en">

<head>

  <meta charset="UTF-8">

  <meta name="viewport" content="width=device-width, initial-scale=1.0">

  <title>Document</title>

  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.3/dist/css/bootstrap.min.css" integrity="sha384-QWTKZyjpPEjISv5WaRU9OFeRpok6YctnYmDr5pNlyT2bRjXh0JMhjY6hW+ALEwIH" crossorigin="anonymous">

</head>

<body>

  <div class="container" style="width:40%">

    <h3 class="mb-3 text-center">文字生成</h3>

    <div class="form-floating mb-3">

      <input id="prompt" class="form-control" placeholder=""                 value="雪山劍俠傳楔子"/>

      <label class="form-label">文字生成提示</label>

    </div>

    <div class="mb-3">

      <button class="btn btn-success" onclick="suggest()">建議</button>

    </div>

    <div class="mb-3">

      <textarea id="result" rows="200" cols="50"                             class="form-control"></textarea>

    </div>

  </div>

  <script>

    async function suggest() {

//取得使用者輸入的提示

      const prompt = document.getElementById("prompt").value;  

//取得用來顯示文字生成結果的HTML元素

      const output = document.getElementById("result");        

      const endpoint = "Azure OpenAI資源端點";

      const deployment = "gpt-4.1";

      const apiVersion = "2025-01-01-preview";  

      const apiKey = "Azure OpenAI資源金鑰";    

 

      try {

        //依據使用者輸入的提示要求文字生成

        const response = await fetch(

          `${endpoint}/openai/deployments/${deployment}/chat/completions?api-version=${apiVersion}`,

          {

            method: "POST",

            headers: {

              "Content-Type": "application/json",

              "api-key": apiKey

            },

            body: JSON.stringify({

              messages: [{ role: "user", content: prompt }],

              max_tokens: 1000

            })

          }

        );

        if (response.ok){                         //如果文字生成成功

          const data = await response.json();     //取得文字生成內容

//顯示文字生成內容    

          output.textContent = data.choices[0].message.content;    

        }

      } catch (err) {                         //捕捉文字生成失敗的錯誤

        output.textContent = "Error: " + err.messae;  //顯示錯誤訊息

      }

    }

  </script>

</body>

</html>

程式碼範例下載網址: https://github.com/CraigIII/AzureOpenAITextGeneration.git

留言

這個網誌中的熱門文章

AI時代的網站與手機App建置與開發Part27 - ML.NET與物件偵測

AI時代的網站與手機App建置與開發Part24 - ML.NET與圖片異常偵測

AI時代的網站與手機App建置與開發Part28 - 使用YOLO模型進行物件偵測