본문 바로가기
디지털노마드

[API개발] GPTs를 활용하여 나만의 API 전문가 만들기

by 인텔리노마드라이프 2024. 4. 26.
728x90

안녕하세요. 인텔리원스튜디오(IntelliOneStudio)입니다.

오늘은 GPTs를 활용하여 나만의 API 전문가를 만들어볼 생각이예요. 

My GPTs를 생성해야 해요.

ChatGPT 메인 화면 왼쪽 상단에 있는 Explore GPTs 를 클릭하고

그 다음 나오는 화면의 오른쪽 상단 "+Create"를 선택해요.

My GPTs 생성을 위해 필요한 값들을 설정해요.

아래 그림과 같이 1, 2, 3, 4번까지 단계를 거치면 Vonage SMS API 전문가가 생성이 되요.

이번 예제는 위해 Vonage 가 제공하는 SMS 연동 규격서를 첨부해서 학습하게 했어요.

[GPTs 설정하기]
sms.json
0.03MB

 

[Vonage SMS APISpecification(연동 규격서)]

Preview 를 통해 미리 시험을 해보는 것도 좋아요.

어떤 내용을 학습했는 지 궁금했어요.

[질문] 안녕 ChatGPT, 첨부 파일을 학습해주고 학습한 내용을 한글로 요약해줄래?

[답변]
첨부 파일은 Vonage SMS API 버전 1.2.0에 대한 문서입니다. 이 API는 SMS 메시지를 보내고 관리하는 방법을 설명하며, SMS 전송, 수신 메시지 수신, 배달 영수증에 대한 엔드포인트를 포함하고 있습니다. JSON과 XML 형식을 지원하며 API 키, 발신자 ID, 수신자 번호 등의 필수 매개변수가 필요합니다. 또한, 메시지 전송 실패시 해결 방법에 대한 설명과 다양한 오류 코드에 대한 설명도 포함하고 있습니다. 이를 통해 개발자들은 Vonage 계정에서 SMS를 외부로 보내고, 가상 번호로 보내진 메시지를 조회할 수 있습니다.

 

Preview에서 어느 정도 시험을 했으면 "Create" 버튼을 클릭해요.

 

Create 하면 공유를 어느 범위까지 할 건지 물어볼거예요.

저는 외부 공유를 하지 않을 예정이라 저한테만 공유하는 옵션을 선택했어요.

 

"Vonage SMS API 전문가입니다." 가 생겼어요

 

ChatGPT 사이트 화면에서 ChatGPT 아래에 "Vonage SMS API 전문가입니다" 가 새로 생성된 걸 볼 수 있어요. 

"Vonage SMS API 전문가입니다" 를 선택하고 SMS API 관련해서 몇 가지 물어볼께요.

 

학습한 내용을 말해볼래?

먼저 GPTs를 생성할 때와 같이 어떤 내용을 학습했는 지 궁금했어요.

[질문] 학습한 내용에 대해 자세히 알려줄래?

[답변]

제공된 파일에는 Vonage SMS API의 다양한 기능과 구조에 대한 상세한 정보가 포함되어 있습니다. 여기에는 SMS를 보내고 수신하는 방법, 다양한 메시지 형식을 처리하는 방법, 그리고 API를 사용하여 메시지 전달 상태를 추적하는 방법 등이 포함됩니다. 다음은 주요 내용 요약입니다:

  1. SMS 발송: Vonage 계정에서 SMS를 보낼 수 있으며, 메시지는 JSON 또는 XML 형식으로 응답을 받을 수 있습니다. 이 기능에는 API 키, 메시지 발신자 및 수신자 번호 등의 필수 정보가 요구됩니다​​.
  2. 인바운드 SMS: Vonage에서 제공하는 가상 번호로 메시지를 수신하고, 웹훅 엔드포인트로 해당 정보를 전달받을 수 있습니다. 이를 통해 사용자는 수신된 메시지에 대해 자동으로 처리할 수 있습니다​​.
  3. 메시지 형식: 메시지는 텍스트, 유니코드, 바이너리 형식으로 보낼 수 있으며, 각 메시지 유형에 따라 다르게 처리됩니다. 예를 들어, 바이너리 메시지는 사용자 데이터 헤더(UDH)와 함께 16진수로 인코딩된 데이터를 포함할 수 있습니다​​.
  4. 전달 영수증: SMS 전달 상태에 대한 영수증을 웹훅을 통해 받을 수 있으며, 이는 메시지가 전송된 후 수신 여부를 확인하는 데 사용됩니다. 전달 상태 코드와 오류 코드를 포함한 다양한 정보를 제공하여 메시지 처리 상태를 알려줍니다​​.
  5. 에러 처리: API 사용 중 발생할 수 있는 다양한 에러를 관리하고 해결 방법을 제공합니다. 예를 들어, 필수 파라미터가 누락되었거나, 잘못된 자격증명으로 인해 요청이 실패할 수 있습니다​​.

이 정보는 Vonage SMS API를 통해 효율적인 메시지 송수신 서비스를 구축하고자 하는 개발자에게 유용할 것입니다.

 

API 를 이해하기 위해 따로 복잡한 API 연동 규격서를 볼 필요가 없어요.

Python 과 C# 예제 코드를 만들어줄래?

API 연동 코드는 반드시 필요하니 예제 코드를 만들어 달라고 했어요.

[질문] Python 과 C# 예제 코드를 만들어줄래?

[답변]

Vonage SMS API를 사용하여 SMS를 보내는 예제 코드를 Python과 C# 언어로 제공하겠습니다. 이 코드는 API를 사용하여 문자 메시지를 발송하는 기본적인 방법을 보여줍니다.

Python 예제 코드

Python에서는 vonage 라이브러리를 사용하여 SMS를 보낼 수 있습니다. 먼저 이 라이브러리를 설치해야 합니다:

pip install vonage

 

그 후, 다음과 같은 코드를 사용하여 SMS를 보낼 수 있습니다:

import vonage

client = vonage.Client(key='your_api_key', secret='your_api_secret')
sms = vonage.Sms(client)

response = sms.send_message({
    'from': 'VonageAPIs',
    'to': '447700900000',
    'text': 'Hello from Vonage SMS API',
})

if response["messages"][0]["status"] == "0":
    print("Message sent successfully.")
else:
    print(f"Failed to send message: {response['messages'][0]['error-text']}")



C# 예제 코드

C#에서는 Vonage의 .NET SDK를 사용하여 SMS를 보낼 수 있습니다. 이 SDK를 사용하려면 NuGet 패키지 매니저를 통해 설치해야 합니다:

Install-Package Vonage

 

그 후, 다음과 같은 코드를 사용하여 SMS를 보낼 수 있습니다:

using Vonage;
using Vonage.Messaging;
using Vonage.Request;

var credentials = Credentials.FromApiKeyAndSecret("your_api_key", "your_api_secret");
var client = new VonageClient(credentials);

var response = client.SmsClient.SendAnSms(new SendSmsRequest
{
    To = "447700900000",
    From = "VonageAPIs",
    Text = "Hello from Vonage SMS API"
});

if (response.Messages[0].Status == "0")
{
    Console.WriteLine("Message sent successfully.");
}
else
{
    Console.WriteLine($"Failed to send message: {response.Messages[0].ErrorText}");
}


위 예제들은 각 언어에 맞는 Vonage 클라이언트를 설정하고,
send_message 또는 SendAnSms 메소드를 통해 SMS를 전송합니다. 성공적으로 메시지를 보냈는지 확인하기 위해 응답에서 상태 코드를 확인합니다.

 

응답 값을 파싱해서 출력해줘 

요청 값을 보내고 응답되는 값들을 출력해보고 싶었어요.

 

[질문] 응답 값을 파싱해서 출력하는 코드도 추가해줄래?

[답변]

네, SMS를 보내고 응답 값을 파싱하여 출력하는 기능을 추가한 예제 코드를 Python과 C# 언어로 제공하겠습니다.

Python 예제 코드

Python 코드에서는 vonage 라이브러리를 사용하여 SMS를 보내고, 응답에서 세부 정보를 파싱하여 출력합니다:

import vonage

client = vonage.Client(key='your_api_key', secret='your_api_secret')
sms = vonage.Sms(client)

response = sms.send_message({
    'from': 'VonageAPIs',
    'to': '447700900000',
    'text': 'Hello from Vonage SMS API',
})

if response["messages"][0]["status"] == "0":
    print("Message sent successfully.")
    print("Details:")
    print(f"Message ID: {response['messages'][0]['message-id']}")
    print(f"Remaining Balance: {response['messages'][0]['remaining-balance']}")
    print(f"Message Price: {response['messages'][0]['message-price']}")
else:
    print(f"Failed to send message: {response['messages'][0]['error-text']}")



C# 예제 코드

C# 코드에서는 Vonage .NET SDK를 사용하여 SMS를 보내고, 응답에서 메시지 세부 정보를 파싱하여 출력합니다:

using Vonage;
using Vonage.Messaging;
using Vonage.Request;

var credentials = Credentials.FromApiKeyAndSecret("your_api_key", "your_api_secret");
var client = new VonageClient(credentials);

var response = client.SmsClient.SendAnSms(new SendSmsRequest
{
    To = "447700900000",
    From = "VonageAPIs",
    Text = "Hello from Vonage SMS API"
});

if (response.Messages[0].Status == "0")
{
    Console.WriteLine("Message sent successfully.");
    Console.WriteLine("Details:");
    Console.WriteLine($"Message ID: {response.Messages[0].MessageId}");
    Console.WriteLine($"Remaining Balance: {response.Messages[0].RemainingBalance}");
    Console.WriteLine($"Message Price: {response.Messages[0].MessagePrice}");
}
else
{
    Console.WriteLine($"Failed to send message: {response.Messages[0].ErrorText}");
}


이 코드는 SMS 발송 성공 여부를 확인하고, 성공적으로 메시지를 보낸 경우 추가적인 정보를 출력합니다. 이러한 정보에는 메시지 ID, 남은 잔액, 그리고 메시지 비용 등이 포함됩니다. 이는 개발자가 SMS 서비스를 모니터링하고 비용을 관리하는 데 도움이 됩니다.

 

C++ 예제 코드도? 

다른 언어들도 쉽게 만들 수 있는 지 궁금했어요.

[질문] C++ 예제 코드도 만들어줄래?

[답변]

Vonage SMS API를 사용하는 C++ 예제 코드를 작성해 보겠습니다. C++에서 직접 HTTP 요청을 처리하기 위해 cURL 라이브러리를 사용할 것입니다. 이 라이브러리를 사용하면 HTTP 통신을 통해 API에 요청을 보낼 수 있습니다.

먼저, cURL 라이브러리가 시스템에 설치되어 있어야 합니다. 설치 방법은 운영 체제에 따라 다를 수 있습니다.

C++ 예제 코드

다음은 cURL과 C++를 사용하여 Vonage SMS API를 통해 메시지를 보내는 기본 예제 코드입니다:

#include <iostream>
#include <string>
#include <curl/curl.h>

// cURL WriteCallback to capture the response into a string
size_t WriteCallback(void *contents, size_t size, size_t nmemb, std::string *s) {
    size_t newLength = size * nmemb;
    try {
        s->append((char*)contents, newLength);
    } catch(std::bad_alloc &e) {
        // handle memory problem
        return 0;
    }
    return newLength;
}

int main() {
    CURL *curl;
    CURLcode res;
    std::string readBuffer; // String to store the response

    curl = curl_easy_init();
    if(curl) {
        std::string data = "api_key=your_api_key&api_secret=your_api_secret&to=447700900000&from=VonageAPIs&text=Hello+from+Vonage+SMS+API";

        curl_easy_setopt(curl, CURLOPT_URL, "https://rest.nexmo.com/sms/json");
        curl_easy_setopt(curl, CURLOPT_POST, 1L);
        curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data.c_str());
        curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
        curl_easy_setopt(curl, CURLOPT_WRITEDATA, &readBuffer);

        res = curl_easy_perform(curl);
        if(res != CURLE_OK) {
            fprintf(stderr, "curl_easy_perform() failed: %s\n", curl_easy_strerror(res));
        } else {
            std::cout << "Response: " << readBuffer << std::endl;
        }

        curl_easy_cleanup(curl);
    }
    return 0;
}

 

이 코드는 다음 단계를 수행합니다:

  1. cURL 라이브러리를 초기화합니다.
  2. 필요한 HTTP POST 요청 데이터를 설정합니다.
  3. Vonage SMS API 엔드포인트로 POST 요청을 보냅니다.
  4. API로부터의 응답을 문자열로 캡처합니다.
  5. 응답을 출력합니다.

컴파일 및 실행

이 코드를 컴파일하고 실행하기 위해서는 cURL 라이브러리와 함께 컴파일러가 설정되어 있어야 합니다. 컴파일 명령 예는 다음과 같습니다:

g++ -o send_sms send_sms.cpp -lcurl
./send_sms


위 코드는 Vonage SMS API를 사용하여 간단한 문자 메시지를 보내는 기본적인 방법을 보여줍니다. 실제 사용에서는 API 키와 시크릿을 안전하게 관리하고, 오류 처리를 추가로 구현해야 할 수 있습니다.

 

이제 API 연동 개발도 몇 분이면 끝 !!

연동 규격서를 활용해서 API 전문가인 GPTs를 만들고 이를 활용하면 API 연동 개발도 너무 쉬워질 것 같아요.

API 전문 기술 지원도 ChatGPT에게 맡겨요

오늘은 GPTs를 만들어서 외부 공유를 하지 않았지만 

 

API 를 고객들에게 제공하고,

고객들이 API 연동 개발을 쉽게 할 수 있도록 API 연동 관련 기술 지원이 제공되어야 한다면 

"GPTs  생성 후 외부 공유 옵션을 선택" 해서 고객들에게 제공하는 방법도 좋을 것 같아요.

 

이렇게 하면 비용도 절감되지 않을까요?

 

나중에 시간적 여유가 생긴다면 ChatGPT를 활용해서 API G/W를 구축하고 API를 제공하는 방법도 공유해볼께요.

또한 랭체인을 통한 API 개발지원 챗봇까지도 같이 살펴보면 좋을 것 같아요.

[인텔리노마드라이프와 &nbsp;함께 행복하세요 from IntelliOneStudio ]

 

 

지금까지,

언제나 성장하는 인텔리원스튜디오(IntelliOneStudio)입니다.

감사합니다.

728x90