-
[ChatGPT & Notion AI로 논문쓰기]Chapter 5. 데이터 정리를 위한 API 활용법ChatGPT&GenerativeAI 활용법 2023. 8. 24. 01:14
API (Application Programming Interface)활용하기
ChatGPT는 매우 유용한 툴이지만 인터넷 기반으로 사용되기 때문에 매번 내가 질문을 하나씩 하고 그 결과를 다시 복사해서 어디론가 붙여서 활용해야한다. 한 두번 질문은 그렇다 하더라도 여러가지 질문에 대한 대답을 한번에 해결할 수는 없을까?
API가 그 답이 될 수 있겠다.
왜 써야하나?
아래는 환자의 병리기록이다. 이를 chatGPT에 넣고 오른쪽과 같은 명령어(병리기록을 표로 정리하기)를 요청하면 멋지게 표로 정리해준다. 병리기록을 하나하나 찾아서 연구원을 통해서 정리하던 시절에 비하면 훨씬 나은 세상이 도래했다. 다만 보통 논문연구에 쓰이는 데이터가 몇 천명이 될 텐데, 이것을 매번 chatGPT에 붙여넣고 결과를 다시 복사해서 정리하는 것은 매우 비효율적이다.
엑셀같은 곳에 병리기록을 쭉 붙여놓고 그안에서 GPT를 사용해서 한번에 정리하면 좋을텐데 라는 생각이 들지 않는가? API가 그 해답이 될 수 있다.
API 란 무엇인가?
어렵게 생각할 필요는 없다. 우리가 흔히 보는 웹브라우저의 화면에서 버튼을 클릭하면 뒤에 있는 서버에서 처리를 해서 그 결과를 다시 보여주게 된다. 이는 마치 식당에서 웨이터에게 주문을 하면 주방에서 조리된 음식이 나오는 것과 같다고 할 수 있다. 이 웨이터 역할을 하는게 바로 API다. 최근 개발된 웹서비들은 대부분 이렇게 본인들의 서비스를 간단히 사용할 수 있도록 API를 제공하고 있다.
만약 우리가 실시간 교통정보를 수집해서 저장하고 그때그때 질문을 통해 원하는 정보를 얻는 서비스를 만든다고 하자. 과거에는 실시간 교통정보를 수집해서 저장해서 정리해두고 그때그때 요청에 따라 보내주는 알고리즘이나 프로그램을 짜야하고 이를 서버에서 돌아가도록 해야했다. 이것을 back-end 라 칭한다. 그리고 우리가 알고자 하는 정보를 입력할 웹페이지를 만들어야하는데 이를 front-end라 한다. 예전에는 이런 서비스를 위해 각각 back-end와 front-end 개발 및 서버가 필요했지만, 최근에 많은 공공서비스들(예를 들어 교통정보수집데이터)은 API 형태로 누구나 쓸 수 있게 혹은 비용을 내면 쓸 수 있게 공개하고 있다.
API의 동작 방식 따라서 유저가 사용할 입력툴과 출력창만 디자인하고 API를 통해 정보를 요청하고 그 결과를 받아오기만 하면 매우 쉽고 간단한 구조로 서비스를 런칭할 수 있게 되었다. openAI에서 만든 GPT도 API 서비스를 제공하고 있다. 이를 잘 활용하면 GPT 언어모델을 다른 프로그램에서 사용할 수 있다. 물론 유료모델에서 가능하며 매번 요청때마다 돈을 내야하지만 매우 싼 가격에 제공하고 있으니, 개인이 만든 간단한 서비스 정도는 과금을 신경쓸 정도는 아니다.
이번 장에서는 API를 활용하여 대량의 데이터를 한번에 처리할 수 있는 방법에 대해 알아보기로하자.
Open AI의 API를 활용하려면?
우선 https://platform.openai.com/ 링크로 들어간다. 오른쪽 위에 본인의 정보를 클릭하면 View API keys 메뉴를 확인할 수 있다. (물론 유료버전에서만 가능하다)
그럼 아래와 같은 화면이 나오고 "Create new secret key" 버튼을 누르면, 본인의 API key 가 생성된다.
복사한 API key를 저장해둔다
그리고 구글시트를 열고 확장프로그램을 선택하여, 부가기능을 클릭한다. 그리고 "GPT for google sheet and Docs" 라는 확장프로그램을 선택하여 설치한다.
Google sheet는 엑셀의 온라인 버전이며 확장프로그램에서 GPT for google sheet and docs를 검색하여 설치한다 프로그램을 설치하면 확장프로그램 하위에 GPT for Sheet and Docs 메뉴가 생기고 이를 클릭하면 아래 그림처럼 Set API keys 선택한다. 그러면 API key를 입력할 수 있는 창이 생성되며 아까 생성된 본인의 API key를 붙여 넣고 save API Key를 누르면 이제 API를 구글 시트에서 사용할 준비가 끝난다.
확장프로그램을 설치하고 API key를 입력하면 google sheet에서 API를 활용하여 GPT라는 명령어를 사용할 수 있게 된다. 여러사람의 병리기록을 한번에 정리해보자
맨 처음에 소개했던 병리기록을 한번에 정리해보도록 하자. 병리기록을 구글 시트에 쭉 붙여넣어보자. GPT_Extract 명령어를 쓰면 선택된 항에서 내가 추출하고자 하는 내용을 column에 넣고 아래 그림처럼 명령어를 입력해보자. GPT를 활용하여 B4항에 있는 데이터에서 C3부터 I3에 해당하는 데이터를 출력해서 적어달라는 뜻이다.
이를 실행시키면, 아래 그림처럼 데이터를 추출하여 각 셀에 채워준다. 일반적인 엑셀명령어라면 size,Size등 대,소문자 구분이나 정확하지 않으면 오류가 나지만, GPT는 문장을 이해하므로 정확하게 일치하지 않아도 추출해준다.
하지만 통계를 돌리기엔 추출된 데이터가 :size(maximum) 1.7cm x 1.2cm 이런 식으로 추출되었으니, GPT명령어를 사용하여 "가장 큰 숫자만 표기해주고, cm를 쓰지말라고 하면 오른쪽 아래 그림처럼 1.7 이렇게 숫자로만 표기된다. 마찬가지로 positive>80% 이런식으로 추출된 항목도 postive 또는 negative로만 표기해라 라고 한번더 명령하면 원하는 대로 표기된다. 본인이 원하는 세부내용을 요청하여 원입맛대로 데이터를 정리해보자.
(고급활용) API를 활용하여 메타분석을 위한 논문 초록 정리하기
이것을 활용하면 메타분석을 위한 논문초록을 간략히 요약하는 것을 자동화 할 수 있다.
아래그림은 미리 파이썬 코드를 통해 pubmed.gov에서 100개의 "복강경 간절제 vs 개복간절제 비교연구"를 크롤링하여 구글 시트에 붙여 넣은 것이다. GPT for sheet and docs 를 클릭하면 GPT의 여러가지 명령어를 사용할 수 있다.
우리가 보통 엑셀에서 쓰는 Sum, Average 같은 명령어 처럼 =GPT("내가하고싶은말")를 하면 원하는 기능을 수행할 수 있다.
아래 오른쪽그림은 GPT("summarize as tabular format")이라는 명령을 통해 논문 초록의 결론을 정리하고, 논문의 환자 수, PSM을 했다면 몇대몇으로 했는지, 그리고 결과 요약칸을 만들어서 모든 초록을 읽지 않고 결과만을 간략히 각 셀에 정리하도록 하였다. 첫번째 행을 한번 정리하고 드래그하면 아래까지 결과를 한번에 채울 수 있다. 일반적으로 메타분석연구에서 논문초록을 사람이 읽고 그중에 결과를 표로 정리하는 과정이 매우 시간이 걸리는 작업인데 고작 몇 분만에 할 수 있다.
메타분석용 논문초록 100개를 API를 활용하여 몇 초만에 결과를 요약하고 정리했다. 전공의, 전임의 들이 논문을 쓰기 위해서 가장 처음하는 일이 데이터 정리와 차트리뷰인데 사실 정말 고역이다. 조금만 더 현명하게 방법을 알아보면 시간을 효율적으로 단축하여 데이터를 정리할 수 있다. 현재는 code interpreter라는 플러그인이 나오면서 chatGPT자체에서도 데이터를 정리할 수 있기 때문에 API활용은 현재는 다소 중요성이 떨어질 수 있지만, google sheet를 통한 업무자동화나, GPT를 활용한 웹서비스 개발에 관심이 있다면 이를 활용해서 본인의 니즈에 맞게 세팅해볼 수 있으니 한번 쯤 해보길 권한다.
다음은 통계지옥에서 벗어나게 해줄 code interpreter에 대해 알아보자. 가장 최신의 플러그인이며 데이터 업로드가 가능하며 데이터 전처리, 간단한 통계, 데이터 정리 및 시각화까지 가능한 엄청난 툴이다. 다음 장에서 알아보자
'ChatGPT&GenerativeAI 활용법' 카테고리의 다른 글
[ChatGPT & Notion AI로 논문쓰기]MS 365 copilot 사용기 (1) 2024.02.10 [ChatGPT & Notion AI로 논문쓰기]Chapter 4. 문헌검색 및 introduction 써보기 (1) 2023.07.26 [ChatGPT & Notion AI로 논문쓰기]Chapter 3. 필수 확장프로그램 (0) 2023.07.12 [ChatGPT & Notion AI로 논문쓰기]Chapter 2. Generative AI의 능력은? (0) 2023.06.29 [ChatGPT & Notion AI로 논문쓰기]Chapter 1. Introduction (0) 2023.06.29