소개
문화체육관광부가 제공하는 공공 API를 활용해, 챗봇을 통해 전시 정보를 알려주는 서비스를 기획했어요.
활용한 공공 API 는 문화포털에서 제공하는 연극, 뮤지컬, 전시, 무용 등 다양한 문화행사의 정보를 통합 제공합니다. "문화공공데이터 광장"에서 활용신청해 인증키를 받아 이용합니다.
'오늘의전시' 를 챗봇 트리거로 서울에서 열리는 전시 5개를 보여주는 기능을 구현해보고자 했습니다.
진행 방법
사용한 도구 및 환경
클로드 프로젝트, 제미나이 스튜디오, 커서
퍼플렉시티 API 예제 코드 (스터디장님 제공)
안드로이드 스튜디오 메신저R 에뮬레이터
챗봇 기능 목표
트리거:
오늘의전시출력: 서울 지역에서 진행 중인 전시 중 5개를 리스트로 응답
시행착오와 해 결 과정
❌ 문제 1: API가 JSON이 아닌 XML로만 응답
공식 문서엔 JSON이라고 했지만 실제 호출 시 XML만 나옴, 공공 API 가 보통 그런 문제를 가지고 있다고 하는데 여러 시도로도 안되서 결국 XML 을 json 으로 변환하는 코드로 구현이후 API 문서에서 request header 로 형식을 지정할 수 있다는 것을 알게 됨
-H 'accept: application/json'❌ 문제 2: 컴파일 에러, 런타임 에러
정보를 가져오는 퍼플렉시티 API 예제 코드에서 힌트를 얻어 공공 API를 직접 자바스크립트로 호출하는 코드로 시도, 에러가 발생.
LLM을 전전하며 한 4시간 돌고 돌다 스터디장님께 문의, 이미 전날 톡방에서 공유된 문제였음. 바로 해결
❌ 문제 3: 통신은 되지만 챗봇이 반응 없음
컴파일은 제대로 되 는데 이제 챗봇이 아무런 대답이 없습니다. 로그 코드를 통해 단계별 테스트 별과 상태코드: 200, 통신은 잘 되는데, 챗봇이 아무런 응답을 하지 않는데 해결 하지 못함.
그렇게 '로그' 를 보게 됨.
이전 시간에 스터디장님이 '로그창을 옆에 띄워놓고 봐가며 해야한다' 라는 말이 제대로 이해하게 됨어떤 부분으로 로그를 필터해서 챗봇에서 일어나는 일을 알 수 있는건지 고민, 스터디장님께 문의, 팁대로 다 긁어 클로드에게 물어보니 챗봇이 아니라 안드로이드 스튜디오 통신에도 문제가 발생,
현재는 컴퓨터가 모든게 버벅거림
결과와 배운 점
이것저것 많은 시도를 했지만 아무것도 지금 되지 않아서 큰일입니다.
이제 한 주밖에 안남았는데..
""어쨌든""
API 문서에 대해서 더 자세히 보게 되었고, 로그도 보게 되었네요 ^^
그리고 빨리 중고폰을 주문해야겠어요.
커서와 에뮬레이터에 이런 창을 돌리니 이게 코드 문제가 아닌 환경문제도 있겠다 싶어서요.
도움 받은 글
스터디장님의 퍼플렉시티 API 예제 코드