N 36 21 22
E 127 23 46
Archive vol. 01
Depth0000mSURFACE
Research Note / Development

최신 기사들을 요약 및 노션에 업로드 해주는 프로그램 만들기(2)

막상 바이브 코딩을 해보니까 여러 가지 문제점이 발생했다. 처음에는 OpenAI를 활용해서 GPT를 활용하려 했지만, 일단은 무료로 하고 싶어서 Llama로 넘어가는 점, 그러다 보니 처음 명세서랑 달라서 여러 가지 문제점..

밑에 글은 GPT를 이용해서 좀 다듬었다. 이슈 트러블링을 하기 위해서 남겨놓은 노션이 너무 이상한 이유와 글들도 많아서 딱 어떤 이슈가 있었고, 어떻게 해결했는지만 남긴ㄷ..

무료 요약 모델 도입 + 노션 연동 삽질기 + 자잘한 버그 정리

지난 글에서는 “최신 보안 기사들을 모아서 요약하고, 노션에 쌓아두는 파이프라인”을 왜 만들게 됐는지랑, 대략 어떤 식으로 시작했는지 적었다.

이번 글은 그 다음 단계다.
만들다 보면 늘 그렇듯이, 기능 구현보다 연동/환경/사소한 버그에서 시간이 더 갈렸다. 그래서 이번에는 내가 겪은 삽질을 그대로 정리해두려고 한다. (나중에 또 겪을까 봐)


1) 요약 모델 교체: 유료 GPT → 무료 Llama 3로 갈아탄 이유

처음 프로젝트는 OpenAI GPT 모델을 기준으로 되어 있었다. 문제는 운영을 조금만 해도 비용이 발생한다는 점이었다.
마음껏 돌릴 수 있는 구조로 만들려면, 무료이면서도 성능이 괜찮은 대안이 필요했다.

그래서 선택한 게 Groq의 Llama 3였다.

  • 왜 Groq?
    • 응답 속도가 진짜 빠른 편
    • 무료 사용량이 넉넉한 편
    • 무엇보다 OpenAI API 형식과 호환이라 코드 변경을 최소화할 수 있었다

여기서 끝이 아니라, 나중에 또 다른 모델로 쉽게 바꾸고 싶어서 코드 구조도 손봤다.

  • 기존: 특정 모델에 묶인 OpenAISummarizer
  • 개선: OpenAI 호환 API면 다 연결 가능한 ChatCompletionSummarizer (범용)

2) 미스터리한 API 키 오류: .env에 분명 있는데 왜 못 읽지?

Notion이랑 Groq API 키는 .env에 넣어두고 돌렸다.
근데 프로그램이 계속 API 키가 없는 것처럼 동작했다.

  • Notion에는 아무것도 저장이 안 됨
  • 요약도 제대로 안 되고, 저품질 Dummy 요약만 뱉음

처음에는 키를 잘못 넣었나 싶었는데, .env에는 분명히 있었다.

그래서 원인을 쪼개려고 진단 스크립트를 따로 만들었다.

  • check_notion.py
  • check_groq.py

이 스크립트들은 정상적으로 키를 읽고 통신도 성공했다.
근데 메인 프로그램만 키를 못 읽는 기현상이 이어졌다.

원인은 의외로 단순했다.

메인 프로그램에 .env 로드 코드가 없었다.

해결은 python-dotenv로 끝났다.

  • requirements.txt에 python-dotenv 추가
  • run.py 시작 부분에 load_dotenv() 한 줄 추가