将 ChatGPT API 與 Google Apps 腳本結合使用

ChatGPT 是近來(lái)備受關注的話(huà)題。幸運的是,OpenAI 公司提供了 ChatGPT 的公共 API,這意味着我們可(kě)以從 Google Apps Script 連接到 ChatGPT。太好了!

為(wèi)了理(lǐ)解如何使用 API,讓我們想象一下,我們在一個(gè)房(fáng)地産機構工作(zuò),我們的代理(lǐ)人(rén)會(huì)巡視(shì)新房(fáng)産,記錄每個(gè)房(fáng)産的情況,并利用他們的筆記為(wèi)房(fáng)産概述撰寫。我們可(kě)以使用 ChatGPT API,提供代理(lǐ)人(rén)的筆記,并自動接收到引人(rén)入勝的概述。

首先,我有(yǒu)一個(gè) Google 表格,其中包含房(fáng)産條目。每行(xíng)代表一個(gè)房(fáng)産。該表具有(yǒu)描述地塊、結構、卧室等的各種列。表格如下:

接下來(lái),在 Google 表格中,單擊“擴展程序”,并選擇“Apps Script”。單擊齒輪圖标,向下滾動到“腳本屬性”。單擊“添加腳本屬性”。在“屬性”中輸入“openAIKey”,在“值”中粘貼您的 API 密鑰。單擊“保存腳本屬性”。然後單擊“編輯器(qì)”按鈕以返回代碼屏幕。在“Code.gs”內(nèi)創建一個(gè)全局對象,我們将使用它來(lái)存儲我們腳本所需的一些(xiē)數(shù)據元素:

複制(zhì)您的子文件夾 ID(它是地址欄中文件夾 URL 結尾的一系列字符)并将其粘貼到“g”對象的“folderId”屬性內(nèi)。

ChatGPT API 請(qǐng)求

我們可(kě)以創建 ChatGPT 請(qǐng)求函數(shù)來(lái)使用靜态提示。這将幫助我們理(lǐ)解如何構造我們的代碼。以下是該函數(shù):

上(shàng)述函數(shù)使用一個(gè)靜态功能列表的單個(gè)字符串。它從屬性服務中獲取 API 密鑰。它具有(yǒu) ChatGPT API URL,以及一個(gè)“選項”對象,該對象将請(qǐng)求方法定義為(wèi) POST,将 Bearer 授權頭和(hé)有(yǒu)效負載。後者是一個(gè)字符串化的對象,其中包括提示、語言模型、溫度(在 0 和(hé) 2 之間(jiān)的值,基本上(shàng)指示 ChatGPT 應該多(duō)有(yǒu)創意)以及響應中的最大(dà)令牌數(shù)。

然後函數(shù)進行(xíng)調用,檢索文本內(nèi)容并記錄它。當您運行(xíng)該函數(shù)時(shí),您應該會(huì)看到一個(gè)字符串對象,其中包括一個(gè)很(hěn)好的概述,其中包含我們列出的功能在“choices”數(shù)組內(nèi)。

現在我們需要稍微修改函數(shù),以便它在調用時(shí)可(kě)以接收到功能而不是使用靜态功能:

上(shàng)面,我們将功能作(zuò)為(wèi)函數(shù)參數(shù)接收,因此我們不需要在函數(shù)內(nèi)聲明(míng)變量。我們還(hái)删除了獲取 API 密鑰的行(xíng):我們希望這樣做(zuò)一次,而不是每次使用新的屬性

使用Google Apps Script的ChatGPT API

ChatGPT如今在每個(gè)人(rén)的腦(nǎo)海中都很(hěn)有(yǒu)名。幸運的是,OpenAI公司為(wèi)ChatGPT提供了一個(gè)公共API,這意味着我們可(kě)以從Google Apps Script連接到ChatGPT。太棒了!

為(wèi)了理(lǐ)解如何使用API,讓我們想象一下我們在一個(gè)房(fáng)地産代理(lǐ)機構工作(zuò),我們的代理(lǐ)人(rén)巡視(shì)新房(fáng)産,記錄每個(gè)房(fáng)産的注釋,并使用他們的遊覽筆記撰寫房(fáng)産概述,以便發布在MLS上(shàng)。我們可(kě)以使用ChatGPT API來(lái)提供代理(lǐ)人(rén)的筆記,并自動接收引人(rén)入勝的概述。

要開(kāi)始使用,我有(yǒu)一個(gè)Google表格,裏面有(yǒu)房(fáng)地産條目。每行(xíng)代表一個(gè)房(fáng)産。表格有(yǒu)描述地塊、結構、卧室等的各種列。表格如下:

接下來(lái),在Google表格中,單擊“擴展程序”,選擇“應用腳本”。單擊齒輪圖标,向下滾動到“腳本屬性”。單擊“添加腳本屬性”。在“屬性”中輸入“openAIKey”,在“值”中粘貼您的API密鑰。單擊“保存腳本屬性”。單擊“編輯器(qì)”按鈕返回代碼屏幕。在“Code.gs”內(nèi)部,創建一個(gè)全局對象,我們将使用它來(lái)存儲幾個(gè)腳本需要的數(shù)據元素:

複制(zhì)您的子文件夾的ID(它是地址欄中文件夾URL末尾的字符序列)并将其粘貼到“g”對象的“folderId”屬性中。

ChatGPT API請(qǐng)求

為(wèi)了開(kāi)始,我們可(kě)以創建ChatGPT請(qǐng)求函數(shù),該函數(shù)将使用靜态提示。它将幫助我們了解如何構造我們的代碼。以下是該函數(shù):

function callChatGPT() { const features = Large lot in a cul-de-sac. Privacy fence on all sides. High ceilings. Natural light.; const scriptProps = PropertiesService.getScriptProperties(); g.apiKey = scriptProps.getProperty('openAIKey'); if (!g.apiKey) { throw new Error(ChatGPT API Key script property is missing); }
const apiUrl = 'https://api.openai.com/v1/completions'; const options = { method: 'post', headers: { Authorization: Bearer ${g.apiKey}, 'Content-Type': 'application/json', }, muteHttpExceptions: true, payload: JSON.stringify({ prompt: Write a real-estate property overview using the following property features: ${features}, model: 'text-davinci-003', temperature: 1, max_tokens: 150, }), }; const response = UrlFetchApp.fetch(apiUrl, options); const content = response.getContentText(); console.log(content); }

上(shàng)面的函數(shù)使用單個(gè)字符串中的靜态功能列表。它從屬性服務中獲取API密鑰。它具有(yǒu)ChatGPT API URL,以及“options

接下來(lái)讓我們編寫代碼來(lái)從 Google Sheet 中讀取數(shù)據,并調用 ChatGPT API 生(shēng)成摘要。下面是代碼:

function createSummaries() { const scriptProps = PropertiesService.getScriptProperties(); g.apiKey = scriptProps.getProperty('openAIKey'); if (!g.apiKey) { throw new Error(`ChatGPT API 密鑰缺失`); } // 通(tōng)過 ID 獲取 Google Drive 文件夾: g.folder = DriveApp.getFolderById(g.folderId); const ss = SpreadsheetApp.getActive(); const sh = ss.getSheetByName('房(fáng)産經紀人(rén)筆記'); const data = sh.getDataRange().getValues(); data.splice(0, 1); data.forEach((row, i) => { if (!row[0]) { const features = row.slice(3, row.length).join(' '); const text = callChatGPT(features); if (text) { const name = row[2]; const doc = DocumentApp.create(name); const body = doc.getBody(); body.appendParagraph(text); doc.saveAndClose(); const file = DriveApp.getFileById(doc.getId()); file.moveTo(g.folder); const fileUrl = file.getUrl(); sh.getRange(`A${i + 2}`).setFormula( `=HYPERLINK("${fileUrl}", "查看摘要")` ); } } }); SpreadsheetApp.flush(); }

在以上(shàng)代碼中,我們首先獲取了 API 密鑰,然後獲取了名為(wèi) "房(fáng)産經紀人(rén)筆記" 的 Google Sheet,并将其數(shù)據讀入一個(gè)二維數(shù)組中。

接着,我們遍曆每一行(xíng)數(shù)據,并檢查是否在第一列中存在空(kōng)值。如果存在空(kōng)值,我們将該行(xíng)中第三列及其之後的單元格的值拼接起來(lái),并調用之前編寫的 callChatGPT 函數(shù)來(lái)生(shēng)成摘要。如果生(shēng)成了摘要,我們就将其添加到一個(gè)新的 Google Doc 中,并将該文檔保存到 Google Drive 中指定的文件夾內(nèi)。接下來(lái),我們将該文檔的鏈接插入到該行(xíng)數(shù)據中的第一列中。

最後,我們使用 SpreadsheetApp.flush() 函數(shù)來(lái)确保所有(yǒu)數(shù)據都已保存到 Google Sheet 中。

如果您現在運行(xíng) createSummaries 函數(shù),您的 Google Sheet 将會(huì)被填充上(shàng)生(shēng)成的摘要鏈接。


上海一涵網絡科技有限公司我們是一家(jiā)專注于網站(zhàn)建設、企業營銷、網站(zhàn)關鍵詞排名、AI內(nèi)容生(shēng)成、新媒體(tǐ)營銷和(hé)短(duǎn)視(shì)頻營銷等業務的公司。我們擁有(yǒu)一支優秀的團隊,專門(mén)緻力于為(wèi)客戶提供優質的服務。

我們緻力于為(wèi)客戶提供一站(zhàn)式的互聯網營銷服務,幫助客戶在激烈的市場(chǎng)競争中獲得(de)更大(dà)的優勢和(hé)發展機會(huì)!

點贊(98) 打賞

評論列表 共有(yǒu) 128 條評論

暫無評論
立即
投稿
發表
評論
返回
頂部