第十節課:部署與優化你的 AI 命題系統

暖身問題: 你是否想過讓你的命題系統成為一個真正的 Web 應用,讓其他人可以使用?今天,我們將學習如何部署應用,並優化它的性能和功能。

教學目標

教學內容與操作步驟

1. 部署你的命題系統


function doGet() {
    const htmlOutput = HtmlService.createHtmlOutputFromFile('Index')
        .setTitle('AI 命題系統')
        .setFaviconUrl('https://www.google.com/favicon.ico');
    return htmlOutput;
}

        

步驟:

  1. 將上述程式碼添加到 Apps Script 編輯器中。
  2. 在 Apps Script 編輯器中,點擊 部署 > 作為 Web 應用發布
  3. 設置訪問權限為「任何人」或「任何人(包括匿名使用者)」。
  4. 獲取部署網址,並打開檢查你的應用是否成功運行。
問題:如果希望應用的標題為「我的 AI 命題系統」,應該如何修改程式碼?

2. 優化性能與功能

以下是一些性能與功能優化的建議:


function optimizedGenerateQuiz() {
    const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
    const lastRow = sheet.getLastRow();
    const lastQuestion = sheet.getRange(lastRow, 1).getValue();

    if (lastQuestion) {
        Logger.log("使用緩存的問題:" + lastQuestion);
        return;
    }

    const apiUrl = 'https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent?key=' + GEMINI_API_KEY;
    const payload = {
        "prompt": "請生成一個關於科學的選擇題,包括問題、四個選項及正確答案。"
    };
    const options = {
        "method": "post",
        "contentType": "application/json",
        "payload": JSON.stringify(payload)
    };

    const response = UrlFetchApp.fetch(apiUrl, options);
    const data = JSON.parse(response.getContentText());
    const question = JSON.parse(data.candidates[0].content);

    sheet.appendRow([question.question, ...question.options, question.answer]);
    Logger.log("題目已生成並儲存到試算表");
}

        

步驟:

  1. 修改程式碼以檢查是否已有緩存數據,避免重複生成。
  2. 測試性能提升的效果。
問題:如果希望檢查試算表中是否已有相同的題目,應該如何修改程式碼?

課程延伸與挑戰

上一節課完成課程