[AI] ChatGPT와 구글 스프레드시트로 자동 글쓰기 만들기 - AI 글쓰기 자동화
구글 시트로 글쓰기 자동화 기능을 구현하려면 먼저 OpenAI의 API 키를 발급 받아야 합니다. OpenAI의 ChatGPT 기능을 외부 프로그램, 또는 확장 프로그램에서 사용하려면 ChatGPT의 API 기능을 통해 접근해야 하고, 접근을 하려면 API키를 외부 프로그램, 또는 확장 프로그램에 등록해야 합니다.
OpenAI API 키 생성
OpenAI API 홈페이지로 로그인합니다. OpenAI는 웹에서 대화형으로 인공지능을 사용하는 ChatGPT와 API를 사용하기 위한 웹 사이트가 구분되어 있습니다.
왼쪽 메뉴를 펼친 후 "API keys"를 선택합니다.
"Create new secret key" 버튼을 눌러 새 API 키를 생성 화면을 엽니다.
사용할 이름을 입력한 후 "Create secret key"를 눌러 키를 생성합니다.
키가 생성되어 표시되면 "Copy" 버튼을 눌러 복사합니다. API키는 공유하면 안됩니다. 모르는 사용자가 내 API 키를 사용하면 내 계정으로 ChatGPT를 사용하는 것과 같습니다.
창을 닫으면 다시 키를 복사할 수 없으므로 창을 닫지 말고 API 키를 복사해야 합니다. API 키는 무제한으로 생성할 수 있으므로, API 키를 분실했으면 다시 생성해서 사용하면 됩니다.
구글 스프레드시트 부가기능 설치
구글 스프레드시트에서 ChatGPT의 기능을 사용하려면 다른 개발자들이 제작해서 배포하는 구글 스프레드시트용 ChatGPT 부가 프로그램을 사용해야 합니다.
가장 인기가 있는 부가기능인 "GPT for Google Sheets and Docs"를 구글 스프레드시트에 설치해보겠습니다.
구글 스프레드시트를 실행 한 후 새 시트를 하나 연 후, 메뉴에서 확장 프로그램 > 부가기능 > 부가기능 설치하기
를 선택합니다.
부가기능 앱을 검색해서 "GPT for Google Sheets and Docs" 앱을 설치합니다.
구글 계정 접근 권한을 허용해서 부가 기능 앱이 구글 스프레드시트에 접근할 수 있도록 허용합니다.
설치 완료 후 앞서 생성한 OpenAI API 키를 GPT for Sheets and Docs 앱에 등록해야 합니다. 구글 스프레드시트 확장 프로그램 메뉴를 열면 맨 끝에 "GPT for Sheets and Docs" 메뉴 항목이 추가되어 있습니다. 하위 메뉴에서 "Open"을 눌러 GPT for Sheets and Docs 앱을 엽니다.
오른쪽에 GPT for Sheets and Docs 사이드 창이 생기면서 GPT for Sheets and Docs 설정 화면이 나타납니다.
GPT for Sheets and Docs 메뉴에서 API Keys를 선택합니다.
앞서 OpenAI API 사이트에서 복사한 API Key를 붙여넣고 "Save API key"
버튼을 눌러 키를 등록합니다.
이제 OpenAI API의 기능을 구글 스프레드시트에서 사용할 수 있습니다.
ChatGPT 기능 사용하기
GPT for Sheets and Docs 부가 기능의 핵심은 구글 스프레드시트에 ChatGPT를 호출하는 추가 함수군을 제공하는 것입니다. 구글 스프레드시트의 내장 함수를 호출하는 것처럼 GPT for Sheets and Docs가 제공하는 추가 함수를 사용해서 ChatGPT에 프롬프트를 전달하고 응답을 얻을 수 있습니다.
GPT for Sheets and Docs가 제공하는 함수 중 핵심이 되는 함수는 다음 두 개입니다.
- GPT("프롬프트")
- GOOGLETRANSLATE("문자열", "소스언어", "대상언어")
함수 이름을 보면 용도가 무엇인지 이미 대충 알 수 있습니다. 참고로 대소문자 구분은 하지 않습니다.
ChatGPT는 기본 언어가 영어이기 때문에 영어로 한 질문에 대해서 더 풍부하고 자연스러운 답변을 합니다. 한글로 해도 한글 학습 데이터가 있는 범위 안에서는 답변을 잘 하지만, 답변을 하기 위해 사용하는 데이터의 범위가 한정적이기 때문에 답변의 내용이 아주 구체적이지 못한 경우가 더러 있습니다.
그래서 ChatGPT에 질문을 할 때는 한글 질문을 영문으로 번역한 후 질의를 하고, ChatGPT의 영문 답변을 다시 구글 번역으로 한글로 번역하는 과정으로 원하는 글 내용을 작성하는 방식을 사용합니다.
바꿔 말하면 ChatGPT에 한글 학습 데이터가 있는 내용을 질의하면 조금 더 자연스러운 답변을 얻을 수 있습니다. 구글 번역이 간혹 한글 번역을 이상하게 하는 경우도 있기 때문에 영문 답변을 한글로 번역할 때는 조금 주의를 해야 합니다.
구글 스프레드시트 셀에 ChatGPT에 질의를 하나 해보겠습니다.
셀 하나를 선택한 후, 수식 입력 창에 "=GPT("어떻게하면 글을 잘 쓸 수 있나요?")"라고 함수를 입력합니다.
셀 안에 잠깐동안 "Loading..." 메시지가 표시되고 잠시 후 ChatGPT의 답변 내용에 셀 내용으로 표시됩니다.
ChatGPT와 같은 외부 서비스를 접근할 때 다음처럼 외부 데이터 접근 경고 표시가 표시될 수 있습니다. 오른쪽 "액세스 허용" 버튼을 눌러 허용해야 ChatGPT에 프롬프트로 질의를 할 수 있습니다.
영어 질의로 한글 글쓰기 자동화
빈 셀에 다음과 같이 함수를 작성합니다.
=googletranslate("어떻게하면 글을 잘 쓸 수 있을까요?","ko","en")
한글 질문을 구글 번역을 이용해서 영문으로 변경할 수 있게 되었습니다. 예제는 함수에 직접 번역할 문자열을 첫 번째 파라미터로 넣었지만, 질문을 분리해서 함수를 호출할 수 있습니다.
A1 셀에 번역할 문자열을 넣고 구글 번역한 영문 결과는 B1셀에 표시되도록 구조를 약간 바꿉니다. 함수는 다음과 같이 호출합니다.
=googletranslate(A1,"ko","en")
이제 A1 셀의 한글 문자열이 B1셀에 영어로 번역되서 표시됩니다.
이제 B1 셀의 영어 질문을 ChatGPT에 프롬프트로 보내서 결과를 얻도록 C1에 GPT() 함수를 작성합니다. 앞서 예제에서는 프롬프트 질의를 직접 함수 파라미터로 작성했지만 다음과 같이 함수를 작성해서 B1 셀의 영문 질의를참조하도록 하면 됩니다.
=GPT(B1)
영문 질의에 대한 ChatGPT의 답변이 C1셀에 채워집니다.
이제 ChatGPT의 답변을 다시 한글로 번역해서 D1셀에 채워 넣습니다. 앞서의 GOOGLETRANSLATE() 함수를 그대로 사용하되, 소스 언어(en), 대상 언어(ko)만 바꾸게 됩니다.
이제 1행의 내용을 여러 행으로 복사/붙여넣기를 한 후 한글 질문 내용을 작성하면 자동으로 ChatGPT의 한글 답변이 생성됩니다.
조금 더 세련되게 하려면 진행하는 단계마다 사용자가 선택적으로 진행할 수 있도록 체크박스를 추가해서 앞 단계의 실행이 완료되지 않은 상태에서 뒷 단계의 함수가 호출되면서 에러가 발생하지 않도록 해야 합니다.
앞서의 예제 행 위에 빈행을 하나 추가한 후 구글 번역 단계 부터 실행 체크를 할 수 있도록 체크박스를 추가합니다.
체크박스는 메뉴 > 삽입 > 체크박스 로 추가합니다.
추가한 체크박스 셀을 클릭해서 체크를 하면 수식 입력 필드에 적용된 값이 표시됩니다. 체크박스는 TRUE/FALSE 값 중 하나를 가지고 있게 되며, 체크되면 TRUE가 됩니다.
이 값을 참조해서 체크되었으면 함수를 실행하도록 하면 앞 단계 실행 결과를 모두 얻은 후 다음 단계를 차례대로 실행할 수 있습니다.
각 셀의 함수들을 다음과 같이 수정합니다.
if 조건문을 사용해서 B1셀의 체크 박스 값이 TRUE이면 두 번째 파라미터에 작성한 구글 번역 함수가 실행되고, FALSE면 세 번째 파라미터의 빈 문자열이 적용됩니다.
- =if(B1=TRUE, googletranslate(A2,"ko","en"), "")
- =if(C1=TRUE, GPT(B2), "")
- =if(D1=TRUE, googletranslate(C2,"en","ko"), "")
이제 2행의 완성된 내용을 여러 행에 복붙한 후 A열의 한글 질문을 변경합니다. 질문을 다 입력했으면 1행의 체크박스를 차례로 체크하면 셀 내용들이 채워지면서 글쓰기 내용이 자동으로 채워지게 됩니다.
ChatGPT의 한글과 영문 질의 답변 차이
앞서의 예에서 사용한 질의인 "어떻게하면 글을 잘 쓸 수 있을까요?"(How can I write well?)에 대한 ChatGPT의 한글과 영문 질의에 대한 응답은 전혀 다릅니다.
한글 질의 답변
-------------
1. 목적과 대상을 정확히 파악하고, 그에 맞는 적절한 언어와 문체를 사용한다.
2. 구조화된 글쓰기를 위해 아이디어를 정리하고, 목차를 작성한다.
3. 문장 구조와 문법을 잘 다듬어, 명확하고 간결한 문장을 사용한다.
4. 불필요한 단어나 구절을 제거하고, 중요한 내용을 강조한다.
5. 독자의 관심을 끌고, 흥미를 유발하는 문장을 사용한다.
6. 다양한 예시나 비유를 활용하여, 내용을 보충하고 설명한다.
7. 글을 완성한 후에는 반드시 검토하고 수정하는 과정을 거친다.
8. 다른 사람의 피드백을 받아들이고, 개선할 부분을 찾아내어 보완한다.
영문 질의 답변 한글 번역
----------------------
1. 읽기 : 독서는 작문 기술을 향상시키는 가장 좋은 방법 중 하나입니다. 책, 기사 및 기타 자료를 읽고 글쓰기 스타일, 구조 및 톤에주의를 기울이십시오.
2. 연습 글쓰기 : 글쓰기 기술을 향상시키는 데 정기적으로 글쓰기가 필수적입니다. 몇 분만에 있어도 매일 시간을 따로 보관하십시오.
3. 명확하고 간결한 언어 사용 : 독자를 혼란스럽게 할 수있는 복잡한 단어와 문구를 사용하지 마십시오. 간단하고 간단한 언어를 사용하여 메시지를 전달하십시오.
4. 편집 및 수정 : 제출하기 전에 항상 작업을 편집하고 수정하십시오. 문법, 철자 및 문장 부호 오류를 확인하고 글쓰기가 논리적으로 흐르는지 확인하십시오.
5. 피드백 받기 : 신뢰하는 사람에게 작품을 읽고 피드백을 제공하도록 요청하십시오. 이를 통해 개선 해야하는 영역을 식별하고 글쓰기를 강하게 식별하는 데 도움이 될 수 있습니다.
6. 진실하십시오 : 자신의 목소리로 쓰고 자신에게 진실하십시오. 다른 사람의 글쓰기 스타일이나 어조를 모방하려고하지 마십시오.
7. 흥미롭게 유지하십시오 : 스토리 텔링 기술을 사용하여 글을 더 매력적이고 흥미롭게 만듭니다. 일화, 예제 및 은유를 사용하여 요점을 설명하십시오.
잘 모르는 사람이 봐도 영문 답변을 한글로 번역한 내용이 훨씬 잘 정리되어 있고 내용도 구체적입니다.
반대로 한글 질문을 했을 때 더 자세한 답변을 하는 경우도 있습니다. 영문으로 번역되지 않은 국내용 문서 내용이나, 국내에 국한된 지역 정보는 영문으로 질문을 하면 내용이 빈약하거나 답변 자체를 못하는 경우도 있습니다.
따라서 질문의 내용이 일반적이고 지역적이지 않으면 영문으로 질문을 했을 때 더 구체적이고 품질이 좋은 답변을 하며, 그렇지 않으면 한글로 질문을 하는 것이 더 좋은 결과를 보여줍니다.
ChatGPT의 과금
ChatGPT API는 무료가 아닙니다. 처음 사용하는 사용자에게 무료로 사용할 수 있도록 5$ 정도되는 금액을 충전해주기 때문에 무료로 사용하는 것처럼 보이는 것입니다.
ChatGPT API를 처음 사용하게 되면 이 충전된 금액을 사용하게 되며, 모두 소진하게 되면 유료로 결제를 해서 사용해야 합니다.
처음 학습을 하거나 시험삼아 사용할 때는 5$이라는 충전 금액으로 사용할 수 있는 질문은 충분합니다. 길지 않은 질문과 답변이라면 수천개에서 수만개 사이의 질의를 하는데 사용할 수 있는 금액입니다.
간단한 질문과 답변에는 충분한 금액이므로 과금을 할 필요는 없습니다. 다만 장기간 사용을 하지 않으면 무료로 지급된 충전액에 소멸되므로 ChatGPT를 정말 제대로 사용하려면 과금을 해서 사용해야 합니다.
질의 내용이 아주 길거나, 답변 내용이 방대한 경우 과금 소진이 빨리 될 수 있습니다. ChatGPT는 토근이라는 단위를 써서 토근 몇개당 과금을 하며, 단어, 또는 글자수(질문과 답변 모두 해당) 단위로 일정 금액을 과금합니다.
ChatGPT는 현재 3.5 turbo와 4 버전 두가지로 운영이 되고 있습니다. 버전4는 훨씬 더 정교하고 자연스러운 답변을 하지만, 사용 비용이 더 비쌉니다. 따라서 학습을 하거나 시험삼아 운영하는 단계에서는 3.5 turbo 버전으로 사용을 해보는 것을 추천합니다.
에러 대처
알 수 없는 함수입니다.
구글 스프레드시트를 저장한 후 다시 열었을 때 "알 수 없는 함수입니다"라고 ChatGPT 부가기능이 제공하는 함수에 에러가 표시되고 함수가 실행되지 않는 경우가 있습니다.
처음 구글 스프레드시트를 열었을 때 부가 기능이 로딩되지 않았기 때문에 발생하는 메시지입니다.
해당 스프레드시트를 다시 열어 보거나 다음 확장 프로그램 메뉴를 실행해서 부가 기능을 로딩해봅니다.
사용 쿼터 초과
429 에러라고 하는 문제로 충전한 요금을 모두 사용해서 충전을 추가로 하라는 메시지입니다. 추가 충전을 하면 됩니다.
RateLimitError: 429 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.