반응형

ChatGPT가 출시된 이후, 몇 달 동안 우리의 업무 환경이 크게 변화하고 있습니다. 이러한 변화에 따라 사내에서는 업무에 효과적으로 인공지능을 도입하기 위해 매달 AI 도입과 관련된 스터디를 강조하고 있습니다. 이에 따른 부담을 느끼는 분들이 분명 많을 것으로 생각합니다. (저 또한 그랬습니다.) 모든 이가 이에 대한 부담을 느끼는 이유는 AI의 필요성을 느끼는 정도와 ChatGPT 이외의 AI를 내 업무에 도입하기 위해서는 아이디어를 개발해야 하는 부담이 있을 수 있다고 생각됩니다.

저는 최근에 어떤 작업을 진행하게 되었는데 다양한 서비스와 서버를 관리하는 담당자가 많아서 동일한 질문에 답변하는 일이 자주 발생하고, 이로 인해 상당한 피로감을 느끼게 되었습니다. 그래서 나를 대신해 답변해줄 챗봇의 필요성을 강하게 느끼게 되었고, 현재는 Q&A 슬랙 채널에 적용한 챗봇을 만들었습니다. 아직은 프롬프트가 부족해서 챗봇이 답변을 대신해주는 빈도가 낮지만, 몇 달 뒤에 프롬프트가 더 많아진다면 팀의 업무 효율 향상에 기여할 것으로 기대합니다.

 

ChatGPT는 어떻게 써야될까

우선 주로 얘기되고 있는 장점과 단점을 좀 나열해보면 아래와 같은데 (ChatGPT에 물어봤는데, 내가 생각이 일치하는 것만 걸러서 넣었다.)

ChatGPT의 주요 장점:

  1. 창의적 글쓰기: 글, 시, 소설 등 다양한 글쓰기 작업에서 창의적인 도움을 제공할 수 있으며, 더 흥미로운 글을 작성하는 데 도움을 줄 수 있습니다.
  2. 자동 요약과 정리: 긴 문서나 글을 요약하거나 중요한 정보를 추출하는 데 도움이 되며, 정보 과부하를 감소시키고 핵심 내용에 집중할 수 있도록 도와줍니다.
  3. 문법 및 언어 교정: 문법적인 오류나 언어 사용에 대한 조언을 제공하여 글쓰기 품질을 향상시켜줍니다.
  4. 검색 기능 : 어떤 사람들은 검색 기능이 강력하다고 말하지만 나는 그렇지는 않을 듯함 (거짓말)

그러나, ChatGPT의 주요 단점도 있습니다:

  1. 최신 데이터 부족: ChatGPT는 2021년 9월까지의 데이터로 훈련되었으며, 최신 정보나 사건에 대한 업데이트를 제공하지 못할 수 있습니다.
  2. 오류와 편향: 가끔 ChatGPT는 부적절한 정보를 생성하거나 성별, 인종, 성 정체성 등과 관련된 편향된 응답을 생성할 수 있으며, 이에 대한 주의가 필요합니다.

 

ChatGPT의 장점과 단점이 여러 가지 있지만, 내 생각에 가장 큰 장점은 글을 뛰어나게 작성해준다는 점인 것 같습니다.

물론, 질문에 정확하게 대답하는 데 능숙한 것처럼 보이지만, 실제로는 거짓말을 하는 경우가 많아 검색용도로는 적합하지 않다고 생각했다. (거짓말을 진짜인것처럼 뻔뻔하니;)

(스택오버플로우에서 👍이 많은 답변을 참고하는 것이 확률이 더 높은 것 같다.)

ChatGPT API 사용해보기

  • ChatGPT API에 들어가는 데이터 (Body)의 예제는 다음과 같아요.
{
    "messages": [
        {
            "role": "user",
            "content": "3.14 파이를 끝까지 한번 계산해봐 31조자리까지"
        }
    ],
    "temperature": 0.1
}
  • 그럼 ChatGPT에서는 이렇게 답변을 해줍니다.
{
    "status": "SUCCESS",
    "data": {
        "id": "chatcmpl-802KSew6ah2g1EJqCCQfXeJjrLjDB",
        "object": "chat.completion",
        "created": 1695019644,
        "model": "gpt-3.5-turbo-0613",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "저는 인공지능 모델이기 때문에 정확한 계산을 할 수는 없습니다. 그러나 파이(π)는 무리수로서 끝까지 정확하게 계산할 수 없습니다. 현재까지 계산된 파이의 값은 3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679 등입니다. 이는 대략 31조 자리까지 계산된 값입니다."
                },
                "finish_reason": "stop"
            }
        ],
        "usage": {
            "prompt_tokens": 35,
            "completion_tokens": 133,
            "total_tokens": 168
        }
    }
}

 

  • 그럼 API를 어떻게 쓸까요? 먼저, 질문했던 데이터 (Body)를 한번 볼게요.
{
    "messages": [
        {
            "role": "user",
            "content": "3.14 파이를 끝까지 한번 계산해봐 31조자리까지"
        }
    ],
    "temperature": 0.1
}

여기서 내가 궁금한 것이 들어가는 부분은 messages에요. messages는 리스트이며 이 리스트안에 여러 대화가 들어갈 수 있습니다. 

우리가 가장 먼저 접근할 수 있는 것이 ChatGPT UI인데요? 이 UI에서 대화를 나눌때 마다 messages 리스트에 계속 append되어 사용되는 거라고 생각하면 됩니다.

그럼 조금 더 상세하게 볼게요

 

요청 파라미터 사용 방법

  • temperature : 온도 값이 낮을수록 출력이 더욱 일관되고, 값이 높을수록 더욱 다양하고 창의적인 결과가 생성됩니다. 특정 응용 분야에 대한 일관성과 창의성 간의 원하는 균형을 기반으로 온도 값을 선택합니다. (2가 최대임)
  • 메시지는 리스트로 작성이 가능하며, 각 role의 역할을 다음과 같음
    이름 내용
    system chatgpt의 동작을 설정하는 데 도움이 됩니다. 예를 들어, chatgpt의 성격을 수정하거나 대화 전반에 걸쳐 chatgpt가 어떻게 행동해야 하는지에 대한 구체적인 지침을 제공할 수 있습니다. 그러나 시스템 메시지는 선택 사항이며 시스템 메시지가 없는 모델의 동작은 "당신은 도움이 되는 조수입니다"와 같은 일반적인 메시지를 사용하는 것과 유사할 가능성이 높습니다.
    assistant 보조 메시지는 이전 보조 응답을 저장하지만 원하는 동작의 예를 제공하기 위해 사용자가 작성할 수도 있습니다.
    user ChatGPT에 요청할 정보를 입력합니다.
  • 예시)
{
    "messages": [
        {
            "role": "system",
            "content": "너는 크리스토퍼 놀란 감독이야"
        },
        {
            "role": "assistant",
            "content": "크리스토퍼 놀란 감독은 공포 영화를 싫어해"
        },
        {
            "role": "user",
            "content": "다음 차기작은 어떤거일까?"
        }
    ],
    "temperature": 1
}

이렇게 물어보면, 아래처럼 답변해준다

{
    "status": "SUCCESS",
    "data": {
        "id": "chatcmpl-82bVug7A9tvhjEKEEG7Z9AXBcMUHf",
        "object": "chat.completion",
        "created": 1695631550,
        "model": "gpt-3.5-turbo-0613",
        "choices": [
            {
                "index": 0,
                "message": {
                    "role": "assistant",
                    "content": "당신의 다음 차기 작품은 스릴러 영화일 것 같아요. 스릴러는 팬들에게 긴장감과 놀라움을 안겨주는 장르로써, 감독으로서 당신은 이미 다양한 영화적 요소를 다루는 경험이 있으니까요. 스릴러 영화는 관객들에게 예측 불가능한 흥미로운 이야기와 긴박한 상황을 제공할 수 있으므로, 당신의 재능과 열정이 이 장르에 잘 어울릴 것 같습니다."
                },
                "finish_reason": "stop"
            }
        ],
        "usage": {
            "prompt_tokens": 113,
            "completion_tokens": 185,
            "total_tokens": 298
        }
    }
}

 

이렇게 써보니 되게 재밌습니다.

아직은 도대체 어떻게 멀 활용해볼 수 있을지에 대해 고민하는 분들이 많을 겁니다.

저 또한 그런데요. 

 

제가 생각한거를 다음에 한번 더 알아보도록 하겠습니다.

반응형
복사했습니다!