ChatGPT功能強大,如果能夠導入到自己現有的網站,那會讓網站功能性更強,這個文章要來介紹三個驟,快速簡單的將ChatGPT加入到自己的網站裡。

三個步驟

一、申請ChatGPT API Key

1、請先到這個網站申請ChatGPT API: https://platform.openai.com/account/api-keys (如果你會未有ChatGPT帳號,請先申請一個)

2、接下來會來到API key申請畫面,如下圖。請點選Create new secret key

3、請輸入API key 名稱,如下圖,自己任意取名,不取也可以。

4、完成後就可以拿到API Key,請複製下來,這個API key無法再從網站中取出,所以請務必儲存在自己找到的地方,未來如果忘記的話,必須重新申請(免費).

附註:

ChatGPT API有三個月18美金的免費試用,超過之後將會根據你的使用量來收費。

二、建立Google 試算表

1、到Google Drive (鏈結),使用你的Google帳號密碼登入,若沒有Google 帳號密碼,請申請一個。

2、在Google Drive 裡開啟一個新的試算表,並點選工具列裡的Extensions擴充功能,點選Apps Script

3、請在Code.gs 輸入以下的程式

//連結gpt.html

function doGet(){
 
    var file=HtmlService.createTemplateFromFile("gpt");
    var evaluate = file.evaluate();
    var html=evaluate.setXFrameOptionsMode(HtmlService.XFrameOptionsMode.ALLOWALL);
    return html;

}

//執行Chat GPT
function generateGPT(){
    var sheet = SpreadsheetApp.getActiveSheet()
    var data = sheet.getDataRange().getValues()
    var apiKey = ""; //********在這裡貼上你的ChatGPT API key*********
    var model = "text-davinci-003"
    temperature= 0
    maxTokens = 2000
    var textData=[]

    for (var i =1; i<data.length; i++){
      var prompt = data[i][0]
      const requestBody = {
        "model": model,
        "prompt": prompt,
        "temperature": temperature,
        "max_tokens": maxTokens,
      };

      const requestOptions = {
        "method": "POST",
        "headers": {
          "Content-Type": "application/json",
          "Authorization": "Bearer "+apiKey
        },
        "payload": JSON.stringify(requestBody)
      }

    // 抓 OpenAI API

      const response = UrlFetchApp.fetch("https://api.openai.com/v1/completions", requestOptions);
      var responseText = response.getContentText();
      var json = JSON.parse(responseText);
      textData.push ([json['choices'][0]['text']])
    }
    sheet.getRange(2,2,textData.length,1).setValues(textData)
}
// 加入資料到試算表
//資料加到同一個cell
function addRecord(uid) {
    var app = SpreadsheetApp.getActiveSpreadsheet();
    var spreadsheetName = app.getSheetByName("GPT"); // 試算表名稱為GPT
    var cell = spreadsheetName.getRange("A2"); 
    cell.setValue(uid);
    
    generateGPT();
    
    var lastRow=spreadsheetName.getLastRow();
    var getResults=spreadsheetName.getRange(lastRow, 1, lastRow, 2 ).getValues();
    return getResults;
}






4、建立一個gpt.html檔案,複製貼上以下的程式:

<!DOCTYPE html>
<html>
  <head>
    <base target="_top" />
    <!-- Bootstrap Library Here -->
    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-GLhlTQ8iRABdZLl6O3oVMWSktQOp6b7In1Zl3/Jr59b6EGGoI1aFkw7cmDA6j6gD" crossorigin="anonymous" />
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@5.3.0-alpha1/dist/js/bootstrap.bundle.min.js" integrity="sha384-w76AqPfDkMBDXo30jS1Sgez6pr3x5MlQ1ZAGC+nuZB+EYdgRZgiwxhTBTkF7CXvN" crossorigin="anonymous"></script>
    <style>
      .container {
        width: 90%;
      }
      #uid {
        width: 100%;
        border: 2px solid blue;
        background-color: #d1ffd4;
      }

      .btn-primary{
        width: 100px;
        background-color:green;
      }
      #displayGTPHere {
        /* background-color:lightgray; */
        display: block;
        margin-left: auto;
        margin-right: auto;
        width: 95%;
        height: 200px;
        border: 1px solid lightgray;
        overflow: auto;
        color: black;
        font-size: 14px;
        margin-top: 20px;
      }
      #copyBtn {
        width:90%;
  display: block;
  margin: 20px auto 0;
}

    </style>
  </head>
  <body>
    <h2 style="text-align: center; margin: 30px">C w C ChatGPT</h2>

  <div class="container">
  <form class="d-flex">
    <input class="form-control me-2" id="uid" name="id" type="search" placeholder="您要問什麼?" aria-label="Search" />
    <input class="btn btn-primary" id="addBtn" name="btn" type="button"  value="詢問" onclick="addRow()" />
    <div id="loading" style="display: none">
      <img style="width: 50px; height: 50px" src="https://mir-s3-cdn-cf.behance.net/project_modules/max_632/04de2e31234507.564a1d23645bf.gif" alt="Loading..." />
    </div>
  </form>

  <div id="displayInfo" style="color: gray; background-color: lightyellow; margin: 5px; width:90%"></div>
</div>

    <div id="displayGTPHere"></div>
<button id="copyBtn" class="btn btn-primary" onclick="copyText()">複製文字</button>
    <script>
      

      function addRow() {
        //抓輸入搜尋資料

        var uid = document.getElementById("uid").value;
        document.getElementById("addBtn").disabled = true;
        document.getElementById("addBtn").value = "查詢中...";
        //確認是否有輸入資料
        if (uid != "") {
          // Condition 1: 成功

          //顯示查詢訊息
          var loading = document.getElementById("loading");
          loading.style.display = "block";
          document.getElementById("displayInfo").innerHTML = "";
          
          //輸出搜尋資料
          google.script.run.withSuccessHandler(function(return_string) {
            
            document.getElementById("displayInfo").style.display = "none";
            var displayGPT = "<div class='container-gpt'>";
            displayGPT += "<span style='color:gray;'>" + return_string[0][0] + "</span><br>";
            displayGPT += "<span >" + return_string[0][1] + "</span>";
            displayGPT += "</div>";
            document.getElementById("displayGTPHere").innerHTML = displayGPT;
            loading.style.display = "none";
            document.getElementById("addBtn").disabled = false;
          document.getElementById("addBtn").value = "詢問";
          document.getElementById("displayInfo").style.display = "block";
          })
          .addRecord(uid);

        } else {
          // Condition 2: 如果未輸入資料
          document.getElementById("displayInfo").style.display = "block";
          document.getElementById("displayInfo").innerHTML = "請輸入詢問內容";
          document.getElementById("addBtn").disabled = false;
           document.getElementById("addBtn").value = "詢問";
        }
      }
      
      //按下enter可以執行submit button
var input = document.getElementById("uid");

input.addEventListener("keydown", function(event) {
  if (event.keyCode === 13) {
    event.preventDefault(); // 避免送出
    // 執行
     document.getElementById("addBtn").click();
    
  }
});

       function copyText() {
    var text = document.getElementById("displayGTPHere").querySelector('span:last-child').innerText;
    navigator.clipboard.writeText(text);
    document.getElementById("displayInfo").innerHTML = "複製成功!";
  }
    </script>
  </body>
</html>

完成後請儲存,接下來要執行

三、取得URL,即可加入你的網站!

這裡分享三個可以加入網站的方式,分別為,請看影片來瞭解如何簡單的將取得的ChatGPT URL加到你的網站 

Google Sites

WordPress

自己的網頁

  <!--  在src貼上你的Google Apps Script URL -->
    <iframe
      src=""  
      frameborder="0"
      marginheight="0"
      marginwidth="0"
      width="100%"
      height="100%"
      scrolling="auto"
    >
    </iframe>

iframe美化的CSS程式

<style type="text/css">
      html {
        overflow: auto;
      }

      html,
      body,
      div,
      iframe {
        margin: 0px;
        padding: 0px;
        height: 100%;
        border: none;
      }

      iframe {
        display: block;
        width: 100%;
        border: none;
        overflow-y: auto;
        overflow-x: hidden;
      }
    </style>

發表迴響