골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.골든래빗은 더 탁월한 가치를 제공하는 콘텐츠 프로덕션 & 프로바이더 입니다. 골든래빗은 취미, 경제, 수험서, 만화, IT 등 다양한 분야에서 책을 제작하고 있습니다.

[ChatGPT] 앱스 스크립트로 챗GPT API 사용하기

2024년 10월 31일조회 194

챗GPT는 손쉽게 활용할 수 있는 API를 제공합니다. 그래서 앱스 스크립트 공부의 보조 도구로 쓸 수 있을 뿐만 아니라 바로 앱스 스크립트에 붙여서 사용할 수도 있습니다. 그럼 API 인증키 발급부터 앱스 스크립트에서 챗GPT를 활용하는 방법을 알아보겠습니다.

[ChatGPT] 앱스 스크립트로 챗GPT API 사용하기

이 글은 [이게 되네? 업무 자동화 미친 활용 앱스 스크립트 with 챗GPT]에서 발췌했습니다.

글 서휘승 / 골든래빗 출판사

챗GPT는 손쉽게 활용할 수 있는 API를 제공합니다. 그래서 앱스 스크립트 공부의 보조 도구로 쓸 수 있을 뿐만 아니라 바로 앱스 스크립트에 붙여서 사용할 수도 있습니다. 그럼 API 인증키 발급부터 앱스 스크립트에서 챗GPT를 활용하는 방법을 알아보겠습니다.

[TIP] 이 실습을 따라하기 위해서는 API 요금을 결제해야 합니다.

챗GPT API 인증키 발급받기

로그인 후 API 인증키 생성하기

챗GPT의 API 인증키는 OpenAI 홈페이지(platform.openai.com)에서 발급받을 수 있습니다. 로그인 후 계정 옆 [Dashboard]를 클릭하고 좌측의 [API Keys] 메뉴로 이동합니다. [+ Create new secret key] 버튼을 클릭하면 API 인증키 생성 창이 뜹니다.

이름과 권한을 입력한 뒤 [Create secret key] 버튼을 클릭하면 바로 API 인증키가 생성됩니다. 처음 생성되었을 때만 복사할 수 있으므로 별도로 저장해주세요. 만약 이 API키를 잊어버렸다면 새로 API키를 발급받아서 사용하면 됩니다.

결제 정보 등록하기

챗GPT API를 사용하기 위해서는 결제 정보를 등록해야 합니다. 오른쪽 위 프로필 사진 옆의 ⚙️을 클릭하고 왼쪽 메뉴에서 [Billing]을 클릭하세요. 그리고 나오는 창에서 [Add payment details]를 클릭하면 결제를 위한 카드 정보를 입력할 수 있습니다.

결제 수단을 설정한 후 [Continue] 버튼을 누르면 충전할 금액을 입력하는 창이 뜹니다.

① 실습을 위해서는 최소 금액인 $5로 충분합니다. 충전할 금액을 입력하고 ② 자동 충전은 비활성화하겠습니다. 여러분이 OpenAI의 API를 사용하고자 하는 용도와 빈도에 맞게 설정해주세요. 설정을 마치고 [Continue → Confirm payment]를 차례로 입력해 충전을 마칩니다.

충전하지 않으면 함수를 실행했을 때 다음과 같은 오류 메시지가 발생하고 챗GPT의 API를 사용할 수 없습니다.

Use a different Browser

{ error: { message: 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', type: 'insufficient_quota', param: null, code: 'insufficient_quota' } }

결제 정보를 등록하였으면 이제 챗GPT API를 사용할 준비가 끝났습니다.

앱스스크립트에서 챗GPT API 사용하기

생성된 챗GPT API Key를 이용해 챗GPT API를 사용하는 코드를 작성해 보도록 하겠습니다. 자세한 개발 방법은 챗GPT API 문서에서 확인할 수 있습니다.

[TIP] 챗GPT API 개발 가이드 : platform.openai.com/docs

Use a different Browser

// ➊ 챗GPT 환경변수 설정 const GPT = { env: { 'API_KEY' : "sk-***AhsB", // 발급받은 챗GPT API 키 'MODEL' : 'gpt-4', 'MESSAGE' : `You are an '앱스 스크립트 챗봇'. Please fill out the following: 1. Please answer the questions kindly. 2. Please be sure to write your answer in Korean.` } }; // ➋ 시스템 메시지 설정 var conversation = [ { role: "system", content: GPT.env.MESSAGE } ]; //챗GPT 실행 function processGPT() { // ➌ 질문을 위한 챗GPT 설정 var message = "너는 누구니?"; console.log(`질문 : ${message}`); conversation.push(({ 'role': 'assistant', 'content': message })) const url = 'https://api.openai.com/v1/chat/completions'; var formData = { 'model': GPT.env.MODEL, 'messages': conversation }; // ➍ 챗GPT API에 POST 요청을 보내기 const options = { method: 'POST', headers: { 'Authorization': 'Bearer ' + GPT.env.API_KEY, 'Content-Type': 'application/json' }, payload: JSON.stringify(formData) }; // ➎ 챗GPT 답변 추출 및 콘솔에 출력 const response = UrlFetchApp.fetch(url, options); const data = JSON.parse(response.getContentText()); const result = data.choices[0].message.content; console.log(`답변 : ${result}`); }

앞선 예제들에서는 코드 시작할 때 API 키라는 변수를 각각 생성해주었지만, 이번에는 ① GPT라는 객체에 사용하는 API 인증키를 비롯한 속성값들을 입력합니다.

API_KEY : API를 사용하기 위한 인증키입니다. 앞서 발급받은 API 인증키를 입력합니다.

MODEL : 사용하려는 GPT 모델의 이름을 나타냅니다. 현재는 ‘gpt-4’로 설정되어 있습니다.

MESSAGE : GPT 모델에 전달되는 초기 메시지로 모델의 답변을 제어하는 역할을 합니다.

[TIP] 챗GPT는 여러 변수를 필요로 하기 때문에 객체 형태로 그룹화하여 관리할 수 있도록 선언했습니다. 객체 이름을 GPT로 정해 객체 내 환경 변수(env)의 API_KEY, MODEL, MESSAGE 등의 변수에 쉽게 접근할 수 있습니다.

② 대화 배열인 conversation 변수에는 시스템 역할과 ①에서 지정한 초기 메시지를 설정합니다. 시스템 역할은 모델의 행동을 지시하고 전반적인 대화의 문맥을 제어하는 역할을 합니다.

③ 챗GPT에게 질문을 전달하고 그에 대한 응답을 받기 위한 설정을 정의하는 부분입니다.

message 값으로 챗GPT에게 할 질문의 내용을 입력합니다.

앞서 생성한 대화 배열인 conversation 변수에 assistant 역할의 질문 내용을 메시지로 추가합니다.

API를 호출할 URL을 입력합니다.

formData에 사용할 챗GPT 모델과, conversation을 넣어줍니다.

④ 챗GPT API에 POST 요청을 보냅니다. Authorization 헤더에 Bearer를 이용하여 API 키를 함께 전달해 인증을 수행합니다.

⑤ 챗GPT의 답변을 콘솔에 출력합니다. 결괏값인 response를 JSON으로 변환하면 다음과 같은 JSON 객체가 생성됩니다. 실제 답변부는 choices[0].message.content이기 때문에 result 변수에 data.choices[0].message.content를 입력합니다.

Use a different Browser

{ id: 'chatcmpl-8p4jyc2GfT7tvkXKzGkfF1JTMPKgR', object: 'chat.completion', created: 1707183642, model: 'gpt-4-0613', choices: [ { index: 0, message: [Object], logprobs: null, finish_reason: 'stop' } ], usage: { prompt_tokens: 71, completion_tokens: 47, total_tokens: 118 }, system_fingerprint: null }

코드를 저장한 다음 processGPT( ) 함수를 실행하면 콘솔에 챗GPT의 답변이 출력됩니다. 시스템 메시지로 You are an ‘앱스 스크립트 챗봇’이라고 설정하였기 때문에 자기 자신을 ‘앱스 스크립트 챗봇’이라고 소개합니다.

Use a different Browser

질문 : 너는 누구니? 답변 : 저는 앱스 스크립트 챗봇입니다. 여러분의 질문에 대해 도움을 드리는 역할을 합니다.

이렇게 앱스 스크립트 코드를 활용하여 챗GPT에게 질문을 하고 답변을 받을 수도 있습니다.

더 많은 업무 자동화 방법은 신간 <이게 되네? 업무 자동화 미친 활용 앱스 스크립트 with 챗GPT>를 참고하세요!

서휘승 

ERP, 핀테크 등 다양한 도메인에서 백엔드 개발을 두루 경험하며, 안정적이고 확장 가능한 시스템을 개발하는 다양한 경험을 쌓아왔습니다. 데이터의 중요성을 깊이 인식하고, 데이터 엔지니어로서 다양한 파이프라인을 구축했습니다. 현재는 클라우드 MSP 기업인 클루커스의 Gen AI 팀에서 애저 OpenAI를 활용한 맞춤형 인공지능 솔루션을 개발하고 있습니다.

앱스 스크립트와 구글 클라우드 플랫폼을 활용한 업무 자동화 프로젝트를 성공적으로 완수했고, 이후 앱스 스크립트의 매력에 빠져 다양한 분야에서 업무 자동화를 구현하고 확장하기 위해 고민하고 있습니다.

블로그 : whiseung.tistory.com

링크드인 : linkedin.com/in/seo-whiseung-b5428827

교보문고 바로가기

예스24 바로가기

알라딘 바로가기

AI AI Coding AI 코딩 AI 페어 코딩 AI 페어 프로그래밍 AI시대 AI챗봇 AI코딩 AI코리빙 AI코워킹 AI활용법 claude claude3 copilot github LLM MS openAI PPT생성 PPT작성 개발자 개발팀장 경력 경력관리 경영일반 경영전략 경쟁사분석 관리자 그랩 기계학습 깃허브 넥슨 당근 당근마켓 데이터베이스 데이터분석 데이터분석가 디자인 패턴 딥러닝 마이크로소프트 매니저 머스크 머신러닝 미드저니 미래전망 박종천 보고서작성 블리자드 사업계획서 삼성전자 샘 올트먼 샘알트먼 샘올트먼 생산성 생성형AI 성공학 성장 소프트스킬 스크럼 스타트업 스타트업얼라이언스 스테이블디퓨전 스티브잡스 시간관리 시장분석 시장조사 실리콘밸리 애자일 업무자동화 엑셀 엑셀함수 엔비디아 오픈AI 유니콘 이력관리 이미지생성 이미지인식 이직 인공지능 인적자원관리 인터넷비즈니스 일론머스크 자기계발 자동화 잡스 조직관리 챗GPT 챗GPT시대 챗봇 취업 커리어 커리어패스 코드스페이스 코딩 코딩테스트 코리빙 코워킹 코파일럿 클로드 트렌드 트렌드코리아 티타임즈 파이썬 패스트캠퍼스 패캠 페어 코딩 페어 프로그래밍 프로그래머 프로그래머스 하스스톤

Related News

[Agent] AI 에이전트 프로토콜, 구글 A2A 개념부터 원리 실습하기

[Python] 파이썬으로 엑셀 다루기 | ❷ 엑셀 데이터 사용하기

[Python] 파이썬으로 엑셀 다루기 | ❶ 엑셀 데이터 사용하기

[Python] 아나콘다 설치하기 | Anaconda, 파이썬, 주피터 노트북, 단축키

골든래빗 2024-10-31

📚 더 읽기