공공 API로 전시 정보 챗봇 만들기 시도중

소개

문화체육관광부가 제공하는 공공 API를 활용해, 챗봇을 통해 전시 정보를 알려주는 서비스를 기획했어요.

활용한 공공 API 는 문화포털에서 제공하는 연극, 뮤지컬, 전시, 무용 등 다양한 문화행사의 정보를 통합 제공합니다. "문화공공데이터 광장"에서 활용신청해 인증키를 받아 이용합니다.

'오늘의전시' 를 챗봇 트리거로 서울에서 열리는 전시 5개를 보여주는 기능을 구현해보고자 했습니다.

진행 방법

사용한 도구 및 환경

  • 문화포털 공공 API

  • 클로드 프로젝트, 제미나이 스튜디오, 커서

  • 퍼플렉시티 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, 통신은 잘 되는데, 챗봇이 아무런 응답을 하지 않는데 해결 하지 못함.



    그렇게 '로그' 를 보게 됨.

    이전 시간에 스터디장님이 '로그창을 옆에 띄워놓고 봐가며 해야한다' 라는 말이 제대로 이해하게 됨

    Adobe Adobe Adobe Ad의 설정을 보여주는 화면의 스크린 샷

    '컴파일 오류'를 읽는 메시지가있는 화면


    파일 목록을 보여주는 웹 브라우저의 스크린 샷


  • 어떤 부분으로 로그를 필터해서 챗봇에서 일어나는 일을 알 수 있는건지 고민, 스터디장님께 문의, 팁대로 다 긁어 클로드에게 물어보니 챗봇이 아니라 안드로이드 스튜디오 통신에도 문제가 발생,
    현재는 컴퓨터가 모든게 버벅거림

    한국 앱 엑스포 보트의 스크린 샷
    한국 자막이있는 한국 TV 앱의 스크린 샷
    안드로이드 폰에서 MessengerBot 앱의 스크린 샷

결과와 배운 점

이것저것 많은 시도를 했지만 아무것도 지금 되지 않아서 큰일입니다.
이제 한 주밖에 안남았는데..

""어쨌든""

API 문서에 대해서 더 자세히 보게 되었고, 로그도 보게 되었네요 ^^
그리고 빨리 중고폰을 주문해야겠어요.
커서와 에뮬레이터에 이런 창을 돌리니 이게 코드 문제가 아닌 환경문제도 있겠다 싶어서요.


도움 받은 글

  • 스터디장님의 퍼플렉시티 API 예제 코드

3
1개의 답글

뉴스레터 무료 구독

👉 이 게시글도 읽어보세요