본문 바로가기

 

 

목 차

    인공지능 (chatgpt)과 동행

    챗gpt 사용법: Chatgpt API 활용하여 엑셀에서 프롬프트 엔지니어링

    by 아지니어 (아빠 + 엔지니어) 2023. 2. 20.

    챗gpt 사용법: Chatgpt API 활용하여 엑셀에서 프롬프트 엔지니어링

     

    안녕하세요.

     

    이번 포스팅에서는 지난 기본적인 챗gpt 사용법에 이은 챗gpt API를 활용하여 엑셀에서 프롬프트 엔지니어링을 진행하는 방법에 대하여 공유해 드리고자 합니다.

     

    챗gpt 사용법, 챗gpt API, chatgpt API key

     

     

    챗gpt 사용법: 챗gpt API 키? 그게 무엇인가요?

     

    챗gpt 사용법, 챗gpt API, chatgpt API key

     
     

     

    챗gpt 사용법 중 흥미로운 2가지를 뽑으라면 하나는 API 키를 활용하는 것과 다른 하나는 fine-tuning이라 할 수 있을 듯한데, 그중 챗gpt가 지원하는 API key는 챗gpt가 단독 프로그램으로 남지 않고 각 사용자가 익숙한 환경으로 융합되는데 매우 큰 역할을 하고 있다고 판단되어집니다.

     

    즉, 챗gpt에서 지원하는 API key를 활용한다면 본인이 자주 사용하는 프로그램 혹은 툴과 챗gpt를 연결하여 해당 툴에서 프롬프트 엔지니어링을 수행하고 결과를 바로 받아볼 수 있는 것입니다.

     

    일례로, 챗gpt의 API key를 활용하면 엑셀에서도 챗gpt와 직접 대화할 수 있고 관련 결과도 엑셀 내로 불러들이고 이러한 자료를 그 자리에서 바로 가공할 수도 있는 것입니다.

     

    챗gpt API 키? 어디서 받을 수 있나요?

     

    챗gpt API 키는 챗gpt를 사용하기 위해 필요한 인증 정보 중 하나로, 일반적으로 문자열 또는 숫자 조합으로 구성되어 있으며 API를 사용하는 사용자를 식별하는 역할을 하게 됩니다.

     

    따라서 openAI에 가입하고 챗gpt를 사용하고 있는 사용자라면 무료 또는 유료 구독의 여부와 무관하에 API 키를 발급받을 수 있으며, 이를 통해 각 사용자가 사용하는 특정 프로그램에서 챗gpt의 특정 모델을 이용해 프롬프트 엔지니어링을 진행하였다면 해당 API 키를 통해 사용량이 추적될 수 있는 것입니다.

     

    챗GPT API 키를 발급받으시려면 opanAI 홈페이지로 이동하신 후, 아래 그림과 같이 개인 계정 밑의 'View API Keys' 항목을 선택하시면 지금까지 발급한 API 키를 확인하실 수 있습니다.

     

    챗gpt 사용법, 챗gpt API 키, chatgpt API key

     

    1) 챗gpt API 키는 발급 수량에 제한이 없으며, 이후 삭제하실 수도 있습니다.

     

    2) 챗gpt API 키는 발급 후 단 한번만 해당 키를 복사하실 수 있으며, 이후에는 확인이 불가능합니다.

    따라서 API 키를 발급받으신 후에는 해당 키를 복사하신 후 메모장이나 다른 곳에 안전하게 보관하셔야 합니다.

     

    3) 챗gpt API 키를 발급받으시려면 위의 '+ Create new secret key' 버튼을 선택하시면 되며 아래는 키 생성 이후의 모습을 나타내주고 있습니다.

     

    챗gpt 사용법, 챗gpt API 키, chatgpt API key

     

    4) ChatGPT API 키는 외부 프로그램에서 챗gpt 모델과 프롬프트 엔지니어링을 진행하는 데 사용되기에 해당 키가 타인에게 공유되면 본인 계정의 사용량이 증가하므로 이는 관련 비용 증가와 직결되어 있어 API 키 분실에 유의하셔야 합니다.

     

    만약 챗gpt API 키가 분실되었다고 판단되어지실 때는 해당 API key를 삭제하시면 됩니다.

     

     

    챗gpt 사용법: API 키로 어떻게 엑셀에 연결하나요?

     

    서두에서 말씀드린 바와 같이 챗gpt에서 제공하는 API 키를 활용하면 엑셀과 같은 프로그램에서도 얼마든지 챗gpt와 대화할 수 있고 궁극적으로 프롬프트 엔지니어링이 가능한데 이는 챗gpt 사용법 중 반드시 알아두어야 할 항목이라할 수 있습니다.

     

    이를 위해서는 엑셀에서 내가 사용하고자 하는 챗gpt 즉 API에 접근이 가능해야 하는데, 이는 아래와 같이 'API Endpoint'와 API Key' 값을 제공함으로써 실현됩니다. 

     

    챗gpt 사용법, 챗gpt API 키, chatgpt API key

     

    즉, 엑셀에서는 vba를 통해 프로그래밍을 진행하여 챗gpt와 통신을 구현하고 이 때 챗gpt의 API Endpoint와 사용할 API Key를 알려줌으로써 엑셀에서 수행하는 프롬프트가 챗gpt API에게 전달될 수 있으며, 챗gpt에서는 알려준 API 키에 할당된 토큰을 사용하여 text completion 또는 code completion을 수행한 후 해당 결과를 엑셀로 다시 돌려주는 것입니다.

     

    이후에는 엑셀에서는 이렇게 얻은 결과를 vba를 통해 엑셀이 제공하는 화면에 뿌려주기만 하면 되는 것입니다.

     

    이때, 각 프롬프트에 사용할 모델과 temperature를 직접 지정해 줄 수 있는데, temperature란 각 프롬프트에 대한 completion의 다양성을 결정짓는 인자로 0에서 1 사이의 값을 가지게 됩니다.

     

    - temperature 0: 매 프롬프트마다 동일한 답변 제공

    - temperature 1: 매 프롬프트 마다 상이한 답변 제공

    - 모델의 경우 text-davinci-03가 가장 강력하나 토큰의 소비량이 다른 모델에 비하여 큼.

     

     

    ※ 챗gpt에서 제공하는 모델과 temperature에 따른 completion에 대해 미치는 영향등에 관한 내용은 추후 다른 포스팅을 통해 보다 자세히 들려드리도록 하겠습니다.

     

     

    챗gpt API 활용 예제: 엑셀에서 프롬프트 엔지니어링

      

    해당 예제에서는 챗gpt API 키를 활용하여 엑셀에서 다이렉트로 챗gpt와 대화하고 관련 결과를 엑셀로 가져와 보았습니다.

     

    챗gpt 사용법, 챗gpt API 키, chatgpt API key

     

     

    1) API Endpoint, API key, Temperature 그리고 Model을 직접 입력 가능하도록 유저 인터페이스를 제공하였으며, 해당 값을 엑셀 vba 코드가 참조하도록 프로그래밍하였습니다.

     

    API End point의 경우 위의 예제와 동일하게 작성하셔도 무방하나, API 키는 각자 사용하시는 키로 대체하여 작성하셔야 하며, Temperature나 모델은 본인 취향에 맞게 선정하시면 됩니다.

     

    2) 텍스트 창에 직접 프롬프트를 작성하실 수 있도록 하였으며, 이후 'Go' 버튼 클릭 시 작성한 프롬프트가 챗gpt에 전송되도록 하였습니다.

     

    3) 챗gpt로부터의 제공받은 답변은 프롬프트를 입력하는 창 밑에 뿌려주도록 프로그래밍하였습니다.

     

    챗gpt 사용법, 챗gpt API 키, chatgpt API key

     

    4) 아래 엑셀 vba 코드에서 확인하실 수 있듯이 API 키, API Endpoint, Temperature 그리고 Model 값을 엑셀 어플리케이션 화면의 입력 값에서 입력받아 이를 챗gpt API에게 전달함으로써 엑셀에서 다이렉트로 챗gpt를 사용할 수 있습니다.

     

     

    챗gpt API Key를 활용한 예제 코드: 엑셀에서 프롬프트 엔지니어링

    -----------------------------------------------------------------------------------

    Sub button1_clk()

    Dim API_KEY As String
    Dim API_ENDPOINT As String
    Dim MODEL As String
    Const MAX_TOKENS As Long = 1024
    Dim TEMPERATURE As Double
    Dim prompt As String

    API_KEY = Sheet1.Cells(3, 5).Value
    API_ENDPOINT = Sheet1.Cells(2, 5).Value
    TEMPERATURE = Sheet1.Cells(4, 5).Value
    MODEL = Sheet1.Cells(5, 5).Value

    If API_KEY = "" Then
       MsgBox "API key를 입력하세요", vbCritical, "Error"
       Application.ScreenUpdating = True
       Exit Sub
    End If

    prompt = Sheet1.TextBox1.Value

    If Trim(prompt) = "" Then
     MsgBox "챗gpt에 문의할 프롬프트를 작성하세요", vbCritical, "Error"
     Application.ScreenUpdating = True
     Exit Sub
     
    Else
     Range("E15:E1000").Select
     Selection.ClearContents
     Cells(15, 5).Select
    End If
      
    Dim httpRequest As Object
     Set httpRequest = CreateObject("MSXML2.XMLHTTP")
       
    Dim requestBody As String
           requestBody = "{" & _
                  """model"": """ & MODEL & """," & _
                  """prompt"": """ & prompt & """," & _
                  """max_tokens"": " & MAX_TOKENS & "," & _
                  """temperature"": " & TEMPERATURE & _
                  "}"
                  
    With httpRequest
       .Open "POST", API_ENDPOINT, False
       .SetRequestHeader "Content-Type", "application/json"
       .SetRequestHeader "Authorization", "Bearer " & API_KEY
       .send (requestBody)
    End With

    If httpRequest.Status = 200 Then
                
     Dim response As String
     response = httpRequest.responseText

     Dim completion As String
     completion = ParseResponse(response)
                  
     Dim lines As Variant
     lines = Split(completion, "\n")

     Dim i As Long
     For i = LBound(lines) To UBound(lines)
             Sheet1.Cells(i + 13, 5).Value = ReplaceBackslash(lines(i))
     Next i
              
     MsgBox "답변 수신 완료", vbInformation, "완료"
             
    Else
        MsgBox "입력 데이터를 다시 한번 확인하시거나 잠시 후 다시 시도하세요", vbCritical, "Error"
    End If
              
           Application.StatusBar = False
           Application.ScreenUpdating = True
              
          Exit Sub
              
    End Sub

    -----------------------------------------------------------------------------------

     

    혹, 관련 예제 파일이 필요하신 분은 댓글로 연락 주시면 공유해 드리도록 하겠습니다. 

     

     

    지금까지 챗gpt 사용법 중 흥미로운 부분이라할 수 있는 챗gpt API 키를 활용한 응용방법에 대해 짧게 공유해 드렸습니다.

     

    앞서 설명드린 바와 같이 API 키를 활용하면 파이썬 또는 엑셀 등에서도 얼마든지 챗gpt의 기능을 제한없이 사용할 수 있고, 이렇게 얻은 결과를 즉석에서 가공함으로써 보고서나 다양한 형태의 출력을 만드는 작업을 자동화할 수 있을 듯합니다.

     

     

    '좋아요' 또는 댓글은 제가 포스팅을 이어나가는 데 큰 힘이 됩니다.

     


    ※ 챗gpt 사용법 및 활용에 대한 보다 많은 예제는 아래를 참조하세요.

    ChatGPT 사용법 (챗GPT 가입부터 어플 그리고 기본 구성까지)

     

    ChatGPT 사용법 (챗GPT 가입부터 어플 그리고 기본 구성까지)

    ChatGPT 사용법 (챗GPT 가입부터 어플 그리고 기본 구성까지) 안녕하세요. 이번 포스팅에서는 최근 가장 핫한 이슈는 chatgpt 사용법에 대해 챗gpt 가입에서부터 어플 그리고 기본 구성까지 쳇gpt를 사

    allmightypapa.tistory.com

    챗gpt 사용법 - 코드를 몰라도 원하는 엑셀 매크로 자유자재로 만들기!

     

    챗gpt 사용법 - 코드를 몰라도 원하는 엑셀 매크로 자유자재로 만들기!

    챗gpt 사용법 - 코드를 몰라도 원하는 엑셀 매크로 자유자재로 만들기! 안녕하세요. 이번 포스팅에서는 챗gpt를 활용하여 원하는 기능을 엑셀 매크로로 만드는 방법에 대해 공유해 드리고자 합니

    allmightypapa.tistory.com

     

    댓글