-
구글 스프레드시트에서 chatGPT API 사용하기구글/구글 앱스 2023. 6. 6. 14:19반응형
일전에 Python으로 chatGPT API 를 이용하는 법을 다뤘습니다.
https://smart-worker.tistory.com/27
이번에는 구글 스프레드시트에서 Apps Script를 이용하여 OpenAI의 chatGPT API를 호출해 보겠습니다. 구글 웍스의 대부분의 서비스에서 사용하는 Google Apps Script는 JavaScript를 기반으로 하며, HTTP 요청을 통해 API를 호출할 수 있습니다.
ChatGPT API 사용하기
이번 포스팅에서 다룰 주요 내용은 아래와 같습니다.
- Apps Script에 openAI chatGPT API 호출 방법
- 구글 스프레드시트에 실행 버튼 추가 및 특정 영역에 값 삽입하기
Apps Script에서 chatGPT API 호출 코드 작성하기
자세한 OpenAI API에 사용법은 아래 링크에서 확인할 수 있습니다.
https://platform.openai.com/docs/api-reference/chat
구글 스프레드시트의 "확장프로그램>Apps Script"에서, 간단한 Javascript 메소드를 추가하여 해당 API 손쉽게 호출할 수 있습니다. 간단한 예제 코드를 만들자면 아래와 같습니다.
여기서 파란색 박스로 표시된 부분에 openai에서 얻은 API KEY를 입력하면 됩니다. API Key 얻는 방법은 아래 링크를 참고하시기 바랍니다.
https://smart-worker.tistory.com/27
아래는 실제 작성한 코드입니다.
// 1. Chat GPT API 호출 및 응답 출력 function callChatGptApi(prompt, ass_msg = "You are a helpful assistant.", model="gpt-3.5-turbo-0301") { var url = "https://api.openai.com/v1/chat/completions"; var headers = { "Authorization": "Bearer {YOUR_API_KEY}", "Content-Type": "application/json" }; var payload = { "model" : model, "messages": [{"role":"system", "content":ass_msg}, {"role":"user", "content":prompt} ], "temperature": 1 }; var options = { "method" : "post", "headers": headers, "payload" : JSON.stringify(payload) }; var response = UrlFetchApp.fetch(url, options); var data = JSON.parse(response.getContentText()); return data.choices[0].message.content; }
해당 예제는 gpt-3.5-turbo-xxx 모델 호출 코드이고, 기본 모델인 davinch-xxx 모델의 호출방법은 조금 다릅니다. 위의 open ai 레퍼런스를 보시면 쉽게 변경하실 수 있습니다.
구글 스프레드시트에 prompt 입력 & 응답화면 만들기
구글 스프레드시트에서, 간단한 prompt를 입력받고 특정 셀에 응답 텍스트를 표시하는 방법을 알아보겠습니다.
아래 예시와 같이 임의 버튼에 호출 코드를 연결하고, A7 셀에 결과를 표시합니다.
사용자 입력을 받고, 응답을 특정 셀에 복사하는 코드입니다.
사용자 입력은 SpreadsheetApp.getUi()의 prompt 메소드를 이용하면 가능합니다.
특정 셀에 정보를 입력하는 메소드는 outputSheet.getRange('A7').setValue( v ) 입니다.
이 두 가지를 이용해서, 버튼 클릭 시 A7셀에 복사하는 코드입니다.// 2. 사용자에게 표의 분석내용에 대한 instruction을 받는 기능. function getInputFromUser() { var ui = SpreadsheetApp.getUi(); var response = ui.prompt('Enter your instruction for the analysis:'); if (response.getSelectedButton() == ui.Button.OK) { var resp = response.getResponseText(); Logger.log('The user\'s inst is %s.', resp); return resp; } else { Logger.log('The user clicked the close button in the dialog\'s title bar.'); return null; } } // 3. 1~2의 결과를 A7 셀에 복사하는 코드 function analyseSpreadsheetDataWithGpt() { var user_instruction = getInputFromUser(); if (user_instruction) { var prompt = user_instruction; // 1의 GPT API를 호출합니다. var response = callChatGptApi(prompt); Logger.log("chatGPT Response -----------"); Logger.log(response); // 응답을 'Sheet1'의 A7 셀에 씁니다. var outputSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Sheet1'); var outputCell = outputSheet.getRange('A7'); outputCell.setValue(response); } }
특정 버튼과 apps script의 함수를 연결하는 방법은 아래 글에서 다뤘습니다. 참고하세요
https://smart-worker.tistory.com/39
실행 결과는?
chatGPT 버튼을 클릭할 경우, 프롬프트 입력창이 나옵니다.
"What is GPT-3?"라고 입력하면 아래와 같은 결과를 보여주는 군요..
마무리
이상 구글 스프레드시트에서 chatGPT API 호출하기 였습니다.
반응형'구글 > 구글 앱스' 카테고리의 다른 글
구글 스프레드시트에서 chatGPT로 재무재표 분석하기 (2) 2023.06.06 구글 스프레드시트에 버튼 삽입하여 스크립트 실행 방법 (0) 2023.06.06 [Apps] 구글 스프레드시트에서 사용자 정의 함수 만들어 쓰기 (3) 2022.09.28 [Apps] 구글 앱스를 이용해 여러 사람에게 이메일 자동 발송하기 (1) 2022.09.20