ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Open AI API - 소모 토큰 비용 확인하기
    AI/OpenAI API 2024. 1. 27. 17:09

    역할 부여하기

     

    예제1

    response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role":"system", "content": "너는 친절하게 답변해주는 비서야"}
                {"role":"user", "content": "2020년 월드시리즈에서는 우승했어?"}
                ]
            )
    
    print(response.choices[0].message.content)

     

    결과

    2020년 월드시리즈에서는 로스앤젤레스 다저스가 탬파베이 레이스를 상대로 우승하였습니다.

    ChatGPT에게 역할을 부여하는 방법에 대해 알아보자 여기서 역할지시는 무엇을 뜻하냐면 앞으로 답변을 할 때 ChatGPT가 해당 역할로서 답변을 하라는 뜻이다. 항상 지시한 대로 역할이 동작하는 보장은 없지만 역할지시문에 따라 답변 자체의 방향성이 많이 바뀌어 버리기도 한다.

     

    역할을 지시할때 기존코드에서 메시지 안에 역할을 지시하는 prompt를 추가해주면 된다.

     

     

    예제2(거절)

    import openai
    import os
    from dotenv import load_dotenv
    
    load_dotenv()
    
     
    openai.api_key =  os.getenv("OPEN_AI_API_KEY")
    
    response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role":"system", "content": "You're a chatbot that refuses to answer and says sorry when users ask questions"},
                {"role":"user", "content": "2020년 월드시리즈에서는 우승했어?"}
                ]
            )
    
    print(response.choices[0].message.content)

     

    결과

    Sorry, I'm unable to answer that question.

     

    예제3(번역지시)

    import openai
    import os
    from dotenv import load_dotenv
    
    load_dotenv()
    
     
    openai.api_key =  os.getenv("OPEN_AI_API_KEY")
    
    response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role":"system", "content": "You're a translator who translates user input"},
                {"role":"user", "content": "2020년 월드시리즈에서는 우승했어?"}
                ]
            )
    
    print(response.choices[0].message.content)

     

    결과

    2020년 월드시리즈에서는 로스앤젤레스 다저스가 우승했습니다.

     

    한국어로 질문이와도 영어로 답변해달라는 역할을 부여했는데도 제대로 동작을 하지 않는다. 역할을 부여하는 것은 무조건 그 역할에 충실하게 따르는 것은 아니다. 논조나 분위기를 그 역할에 맞게 변경하는 정도의 수준이다.

     

     

    예제4(이전 대화를 포함하여 답변하기)

    import openai
    import os
    from dotenv import load_dotenv
    
    load_dotenv()
    
     
    openai.api_key =  os.getenv("OPEN_AI_API_KEY")
    
    response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role":"system", "content": "2002년 월드컵에서 가장 화제가 되었던 나라는 어디야?"}, #이전 질문
                {"role":"assistant", "content": "바로 예상을 뚫고 4강 진출 신화를 일으킨 한국입니다."},  #이전 답변
                {"role":"user", "content": "그 나라가 화제가 되었던 이유를 자세하게 설명해줘"} #마지막 질문
                ]
            )
    
    print(response.choices[0].message.content)

    웹에서 ChatGPT를 사용할 때는 이전 대화 내용을 기억하고 ChatGPT가 답변을 해준다. 그 기능을 API에서 구현하려면 이전 대화 내용을 messages 안에 리스트 형태로 넣어 줘야 한다. 위 예제 코드를 보면 messages 리스트 안에 1)첫번째 질문 2)그에 대한 답변 그리고 3)그 답변에 연계되는 마지막 질문이 object 형태로 들어있다.

     

    이렇게 되면 ChatGPT는 messages list안에 있는 모든 대화 내용을 참고해서 답변을 해주게된다. 

     

    결과

    한국이 2002년 월드컵에서 화제가 되었던 이유는 몇 가지가 있습니다. 첫째, 한국은 북미 지역에서 개최된 월드컵에서 아시아 대표국 중 유일하게 4강까지 진출한 것이 큰 주목을 받았습니다. 이는 역사적인 성과로서 아시아 축구사에 큰 영향을 끼치고, 아시아 축구의 성장과 발전을 상징하는 순간이었습니다. 둘째, 한국은 예상을 뚫고 놀라운 경기력을 보여줘서 어마어마한 반응을 이끌었습니다. 조별리그에서 이탈리아와 높은 점수로 비기고, 스페인을 제치고, 포르투갈을 꺾으며 4강에 도달한 것은 충격 적이었습니다. 이러한 경기력으로 인해 한국 대표팀은 세계적인 재능을 갖춘 선수들이 모여 있는 강한 팀들이라는 인식도 바뀌게 되었습니다. 셋째, 한국의 열정적인 응원문화 역시 화제였습니다. 한국인들은 월드컵을 열렬히 지지하고 응원하는 열정적인 문화를 가지고 있었고, 경기장에서의 응원은 분위기를 더욱더 흥미롭게 만들었습니다. 전 세계적으로 알려진 "리순두리"와 같은 응원풍습은 긍정적인 인상을 남겼으며, 한국의 축구 응원문화가 각국에서 참조되기도 했습니다. 이러한 이유들로 인해 2002년 월드컵에서 한국은 많은 사람들의 관심과 주목을 받았습니다. 이는 한국 축구와 스포츠 문화의 발전에 큰 역할을 한 순간이었습니다.

     

    결과를 보면 이전의 대화 내용을 참고해서 2002년에 월드컵에서 한국이 화제가 된 이유를 설명해주고 있다. 

     

    예제(참고 질의 없이 질문)

    import openai
    import os
    from dotenv import load_dotenv
    
    load_dotenv()
    
     
    openai.api_key =  os.getenv("OPEN_AI_API_KEY")
    
    response = openai.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role":"user", "content": "2002년 월드컵에서 가장 화제가 되었던 나라는 어디야?"}, 
                ]
            )
    
    print(response.choices[0].message.content)

     

    2002년에 가장 화제가 되었던 나라가 한국이라는 질의를 지우고, 그냥 2002년에 월드컵에서 가장 화제가 되었던 나라는 어디야? 라고 질문한다.

     

    결과

    2002년 월드컵에서 가장 화제가 되었던 나라는 대한민국이었습니다. 대한민국은 월드컵 역사상 최초로 준결승에 진출하여 많은 사람들의 관심과 기대를 받았습니다. 특히, 대한민국은 원정에서 진행된 월드컵임에도 불구하고 스페인과 이탈리아를 이기는 등 기적적인 경기력을 보여주었으며, 호주와의 16강에서도 역전승을 거두었습니다. 이로 인해 대한민국의 축구에 대한 관심과 열기가 폭발하 였고, 해당 대회에서 손흥민, 박지성 등 한국 축구의 주요 선수들이 등장하면서 국내외적으로 큰 주목을 받았습니다.

     

    답변이 조금 달라진것을 확인할 수 있다. 다만 4강에 진출하여 화제가 되었다는 내용은 빠져있는 것을 확인할 수 있다.

     

     

     

    [초보자를 위한 ChatGPT API 활용법 - 저, 쭌랩]

    https://www.inflearn.com/course/%EC%B4%88%EB%B3%B4%EC%9E%90%EB%A5%BC-%EC%9C%84%ED%95%9C-chatgpt-api-%ED%99%9C%EC%9A%A9%EB%B2%95/dashboard

     

    초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지 강의 - 인프런

    ChatGPT가 나만의 애플리케이션 안에 탑재된다면 어떨까요? 본 강의에서는 ChatGPT API를 활용하여 다양한 프로그램을 제작합니다. 기본적인 API 사용 방법부터 프로그램 제작 및 배포하는 방법까지

    www.inflearn.com

     

    댓글

Designed by Tistory.