AI는 거의 모든 문제를 부분적으로 해결하는데 정말 능숙합니다. 대부분의 문제를 해결하는데 80%까지는 매우 빠르게 도달할 수 있지만, 80%를 넘어서는 것은 매우 어렵고 불가능할 수도 있습니다.
이는 AI를 결과물이 아쉬워도 괜찮은 분야에서 사용해야한다는 것을 의미합니다. 제가 생각하기에 콘텐츠 자동 생성은 아쉬운 부분이 있어도 괜찮은 분야가 아닙니다. 그렇기에 콘텐츠의 AI 도입 목적은, 콘텐츠를 더 쉽게 작성하고 만드는 것이 아니라 콘텐츠를 더 보고 싶고 전달하기 좋은 형태로 만드는 것이 되어야 합니다. 그렇기에 콘텐츠를 더 잘 작성하기 위해, 콘텐츠의 피드백을 받는 것을 AI와 함께 진행해야 한다고 생각했습니다.
지피터스의 콘텐츠팀은 콘텐츠를 노션으로 작성합니다. 노션에 콘텐츠를 작성하면 팀원들의 피드백을 받아 콘텐츠의 개선점을 도출하고 있습니다. 어떻게 하면 더 잘 전달이 되는지, 어떤 부분이 더 잘했는지를 기록하고 있죠. 콘텐츠를 작성할 때 마다 팀원들의 소중한 피드백이 쌓이게 됩니다.
그렇다면 이 피드백 데이터를 기반으로 노션의 콘텐츠를 작성할 때 마다 AI에게 피드백을 받으면 어떨까요? 콘텐츠를 더 잘 작성하고 전달하기 좋은 형태로 만들기 위해서 말이죠.
노션 URL을 제시하면 챗GPT API가 피드백
콘텐츠 생산 과정에 AI를 도입하기 위해서 노션 URL을 받으면 챗GPT API가 피드백을 해주는 것을 생각해서 기획을 시작했습니다.
개발하고자 하는 것은,
(1) 노션 URL을 넣으면
(2) 노션 속 콘텐츠 + 기존 피드백을 챗GPT에게 전달하고
(3) 챗GPT가 콘텐츠 피드백을 해준 결과를 받는 것이었습니다.
노션 API로 콘텐츠를 가지고 오기
우선은 Zapier를 통해 URL을 입력받은 이후, 노션에서 정보를 가지고 오는 것을 구현했습니다. Zapier는 대부분의 앱과 연결해주는 자동화 도구이고, python 코드를 실행할 수 있다는 것이 차별화되었기 때문입니다.
<https://www.notion.so/everythingchalna/5-e0796d712cb8407ab1341f02fcca844d>노션 URL은 특정한 형태를 띄고 있는데요. 위 URL에서는 5- 뒤 32글자의 텍스트가 고유한 페이지ID 입니다. 개발 앞단에서 5- 뒤 콘텐츠를 자르는 것을 진행해준다고 생각하고, 노션 API의 Retrieve a Page 기능을 이용하여 고유한 페이지 ID로 해당 콘텐츠에 대한 정보를 가지고 왔습니다.
콘텐츠의 제목인 ‘스트림릿으로 웹페이지를 만드는 5가지 방법’이라는 콘텐츠 제목을 잘 가지고 온 것을 볼 수 있습니다.
이제는 본문을 가지고 올 차례입니다. 노션의 콘텐츠 한 줄 한 줄은 블록이라는 개념으로 게시글의 children(자녀)로 구성되어 있습니다. 본문을 가지고 오기 위해서는 이 children을 가지고 오는 식으로 구현해야합니다. API를 이용하면 한 번에 100줄까지 콘텐츠를 가지고 올 수 있습니다.
<https://api.notion.com/v1/blocks/{{pageID}>}/children?page_size=100위 API를 이용하면, 노션에서 페이지 ID를 기반으로 콘텐츠를 100줄 가지고 옵니다. 더 많은 콘텐츠를 가지고 오기 위해서는 해당 API 요청을 추가로 해야 합니다. 해당 API로는 한 번에 100줄 이상의 콘텐츠를 가지고 올 수 없습니다.