OpenWeatherMap API로 GPTs 만들기 도전!!

[9기 문과생도AI]에서 2주차 실습 과제 연습 문제 “OpenWeatherMap Api 사용과 Json data 처리” 를 요즘 핫한 GPTs로 구현을 해 보았습니다.



결과적으로는 그다지 어렵지 않았지만, 중간 중간에 이리 해 보고, 저리 해 보면서 발생하는 소소한 에러들과 “3시간에 40개 메세지”라는 장벽으로 어려움이 있었는데요.


다른 분들은 저 같은 전철을 밟지 않았으면 하는 마음에,

개발 초보의 심정으로 저의 경험을 step by step으로 GPTs의 Actions > Schema 설정 위주로 정리해 보도록 하겠습니다~^^


자, 그럼 시작합니다.


  1. (중요) OpenWeatherMap(https://openweathermap.org) 사이트에 가입하고 API Key 발급 받는다.


※ (참고) 생성된 API Key가 활성화 되는데 약간 시간이 걸릴 수 있다고 합니다. 혹시 바로 사용하실 때 오류가 나오면 약간 기다렸다 사용해 보세요.



  1. OpenWeatherMap 사이트 > API 메뉴(https://openweathermap.org/current)에서 API 관련 정보를 확인한다.


  • API 메뉴 페이지에 들어가면 여러 API가 소개되어 있는데, Current Weather Data 로 들어가서,

  • 하단 쪽에 나와 있는 Built-in API request by city name" 을 사용합니다.

  • 이 API는 간단하게 도시 이름으로 날씨 정보를 호출해 오는 API입니다.


https://api.openweathermap.org/data/2.5/weather?q={city name}&appid={API key}


  • (참고) 도시 이름, 우편번호, 도시 ID를 통한 API 요청은 사용할 수는 있지만, 더 이상 버그 수정이나 업데이트를 제공하지 않는다고 합니다.



  1. GPTs > Create 메뉴로 들어 가서, “Schema”“Examples” 에서 “Black Template” 선택합니다.


Schema 안에 보이는 기본적인 Template을 복사합니다.


  1. 이제 ChatGPT에게 Schema를 만들어 달라고 합니다.


  2. ChatGPT가 json 형태의 다소 긴 Shema 코드를 생성해 줍니다.


    이 밑으로도 아주 긴 코드가 이어지는데요. API를 통해서 호출된 데이터 형식을 보여 주는 부분입니다.


  3. 위에서 생성된 Schema 코드를 GPTs > Add actions 페이지의 Schema 에 복사 / 붙여넣기를 합니다.


    하단에 “ In path /weather, method get is missing operationId; skipping”라는 문구나 나오는데요.

    이 오류 메세지를 카피해서 ChatGPT에게 물어 보면, 다음과 같은 수정해 줍니다.
    (간단해 보이는데, 이런 건 좀 한번에 해 주지…)



    이렇게 생성된 최종 Schema 코드를 다시 복사 / 붙여 넣기를 합니다.

  4. 이제 마지막으로 API Key를 입력해야 하는데요. Schema 코드 중 appid 의 schema 부분에

    “enum” : “[OpenWeatherMap API Key]” 를 입력하면 됩니다.


    여기서 API Key를 Schema 창에 넣지 않는 방법이 있나 싶어서 Authentication > “API 등록하기” 선택하고 API Key 값을 등록하는 방식을 시도해 봤는데, 결국 실패했습니다.



    ※ “enum” 키워드에 대한 설명을 ChatGPT에게 물어 봤습니다.





    마지막으로, Privacy policy 에는 OpenAI의 개인 정보 처리 방침 페이지 주소(https://openai.com/ko/policies/privacy-policy)를 넣었습니다.


  5. 이제 Actions 설정은 끝났습니다. [Configure] 페이지에서 1) 이름, 2) Description, 3) Instructions 등을 설정합니다.

    참고로 저는 Instruction늘 다음과 같이 간단히 입력하였습니다.

[Role] 날씨를 안내해 주는 친절한 ChatBot
[Input] 도시 이름
[Instructions]
- OpenWeatherMap API를 이용해서 사용자가 입력한 도시 [Input]의 날씨 정보를 출력한다. 
- 출력이 완료하고, 알고 싶은 다른 도시를 입력하도록 요청한다. 
- 모든 작업은 한글로 해 주세요.
[Output]
- **주요 날씨 정보** : <좌표, 온도, 습도, 날씨 상태>
- **모든 날씨 정보** : [Template]을 참고하여 테이블 형태로 출력. 
---
[Template of table]
- field 1  : <Key> 
- field 2 : <Value> 
- field 3 : <Key>
- field 4 :  <Value>


막상 정리해 놓고 보니, 이리 간단한 걸 가지고 왜 그리 고생했지라는 생각이 드는데요.

다른 분들은 이 간단한 것 때문에 저 처럼 고생 안 하셨으면 하는 마음에.. 다소 장황스럽게 정리해 보았습니다.


그럼. 이만!!!


(저는 이제 이 경험을 가지고, 공공 데이터 포탈로 한번 떠나 보려고 합니다~^^)




(추가 사항)

  • 만들어진 GPTs를 공유하기 위해서 "Publish to”에서 “Anyone with a link” 또는 “Everyone”을 선택하려 고 했는데, 자꾸 어필하라고 얼럿 창이 뜹니다..


  • API Key가 들어 있어서 그런 가 싶어서, API Key를 직접 입력 받는 방식으로 바꿔 봤지만..


  • 결국 실패하고 “Publish to Only me” 사용하고 있습니다.


version 1.1

#9기문과생도AI

3