본문 바로가기

Etc

[ChatGPT] Chat completions API를 활용한 질문에 최적화된 ai 답장 기능(프롬프트 개선)

반응형

Chat completions Api

Chat completions API 는 openAi의 gpt-3.5-turbo 모델 기반의 api 이다.
이 API는 텍스트 기반의 자연어 이해, 생성 기능을 제공하며, 자연스러운 대화를 생성할 수 있는 인공지능 챗봇을 만드는데 주로 활용된다.
openai.com 으로 접속하여 일반적으로 chatGPT 라고 칭하여 사용하는 기능을 api 형태로 사용한다고 생각하면 된다.

해당 api 를 사용하는것이 openai 채팅창을 통해 사용하는것 보다 이점은 다음과 같다.

  • 자체 시스템에 사용자에게 적절한 질문만을 할 수 있도록 제약을통해 원하는 분야의 응답만 받도록 커스텀 제작 가능
  • 유저의 첫번째 질문임에도 이전 대화를 임의로 작성하여 다음 대화의 답을 어느정도 유도 가능
  • system 설정을 통해 assistans의 응답을 설정할 수 있다. ex) 당신은 운동 질문에 도움을 주는 어시스턴트입니다.
  • 응답에 대한 검증을 위해 테스트가 용이하다.

* 이외에도 여러 이점이 있을것으로 보이나 작업 도중 느낀 이점은 이정이며 해당 이점들은 아래 작업과정에서 하나씩 구체적인 예시를 들도록 하겠습니다.

 

 


 

Chat completions Api 사용 방법

* 사용방법은 api 키를 얻는 방법은 생략하고 진행하도록 하겠습니다.

https://platform.openai.com/docs/api-reference/chat

 

OpenAI API

An API for accessing new AI models developed by OpenAI

platform.openai.com

 

OpenAI API 문서에도 쉽게 확인할 수 있듯 아래의 요청처럼만 보내주면 openai.com 의 채팅창처럼 응답값을 받을 수 있다.

========== request ========

curl https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "user", "content": "Hello!"}]
  }'
  
========== response ========
{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

 

Request body

  • model - 사용할 모델의 id, 현재 기준 모델은 gpt-3.5-turbo 모델만 기본적으로 사용가능하며, gpt-4.0 모델은 대기자 명단 신청 후 제한적으로 사용이 가능하다.
  • message - 채팅형식으로 모델에 질문할 메세지, list 형태로 위의 이점에서 언급한 system 설정을 해당 필드를 통해 가능하다.
    • role - system, user, assistant 중 하나를 입력할 수 있다.
      system은 메세지를 통해 모델에 동작을 설정할 수 있다.
      user는 모델에게 메세지를 지시하고 assistant는 이전 응답을 지정하거나 응답에 대한 예시를 제공할 수 있다.
    • content - 메세지로 보낼 내용
  • temperature - 응답될 문장의 창의성을 조절하는 필드. (기본값 1)
    0~2 사이의 실수값이며 1에 가까울 수록 다양하고 예츨할 수 없는 결과값을 만들고 값이 낮을수록 예측이 가능하고 일관성이 있는 결과값을 만들어낸다.
    따라서 해당 값은 창의성(1에 가까운)과 일관성(0에 가까운)을 조절하는 값이다.
  • top_p - 응답될 문장에 사용될 단어를 선택할 확률 분포를 조절하는 필드. (기본값 1)
    0~1 사이의 실수값이며 0에 가까울수록 단어는 더 일관성 있으며, 1에 가까울수록 다양한 단어를 선택한다.
    예를들어 0.9를 설정 시 상위 90%의 가능한 단어 중 고려하여 단어를 선택하게 되어 일관된 문장(temperature 이 1에 가까운) 을 생성해도 다양성을 가지도록 할 수 있고, 값이 0에 가까울수록 반복적인 단어를 사용하게 된다.
  • n - 입력 메세지에 대한 응답 수
  • stream - 응답될 문장을 스트리밍 방식으로 반환할지 여부.
    true 로 설정될 경우 문장을 여러 개의 조각으로 분할하여 스트리밍되고, false로 설정된 경우 전체 응답을 한 번에 반환한다.
    * 스트림으로 받을 경우 응답값 content-type: text/event-stream 형태로 받게된다.
  • stop -  응답을 받을 때 지정한 문자 또는 문자열에 포함되는 값이 있으면 해당 지점까지만 문장을 생성하여 응답값의 길이를 명시적으로 제어할 수 있다.
  • max_tokens - 응답될 문장의 최대 토큰 수를 제어할 수 있는 토큰.
  • presence_penalty - 응답 문장에서 이전에 나온 단어나 구를 반복하지 않도록 유도하는 -2~2 사이의 실수로 된 필드. (기본값 0)
    값이 높게 설정될수록 이전에 나온 단어나 구를 적게 반복하나 너무 높다면 모델이 새로운 아이디어를 제안하는 것을 억제할 수 있다.
  • frequency_penalty - 응답 문장에서 사용된 단어의 빈도수를 고려해 생성된 문장의 일관성을 유지하도록 하는  -2~2 사이의 실수로 된 필드. (기본값 0)
    값이 낮게 설정될수록 자주 등장하는 단어를 더 자주 사용하게 되고 값이 높을수록 자주 등장하는 단어를 덜 사용하게 된다.
    일반적으로 presence_penalty 와 반대의 역할로 사용한다.
  • logit_bias - 응답 문장에서 사용될 단어에 대한 강도나 문장의 감정을 조절하는데 사용되는 map 형태의 필드.
    key 값에는 조절할 단어에 대한 토큰값을 사용해야한다. 예를 들어 " microwave" 라는 단어를 자주 또는 덜 사용하게 하고싶다면 해당 단어의 토큰값인 27000의 value를 -100~100 사이의 값을 조절하면 된다. ex) logit_biad: { 27000: 10 }
  • user - 요청을 보낸 사용자를 식별하는 데 사용된다. 이전 대화에 사용된 언어, 주제, 대화 상대 및 대화의 목적과 같은 요소를 이해하는데 도움이 되어 보다 적절한 응답을 생성하고 일관성을 유지하는데 도움이 된다.

 


 

Chat completions Api 가 서비스에 적절한 응답이 오도록 설정

* 웨이트 트레이닝 관련 커뮤니티에서 질문 글에 chatGPT의 답변이 달리는 기능을 구현하는 가정하에 작업을 진행하겠습니다.

요구사항

  • 웨이트 트레이닝 외의 질문에는 질문을 안 하거나 웨이트 트레이닝 관련 질문이 아니라는 응답을 해야한다.
  • 말투는 딱딱하지 않게 친절해야한다.
  • 대댓글에 대한 답변은 상대적으로 짧고 간단하게

1. 모델에게 질문할 수 있도록 기본 세팅

POST https://api.openai.com/v1/chat/completions

{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "user",
            "content": "둔근을 키울 수 있는 운동을 추천해주세요."
        }
    ]
}

header에 authorization 값은 각자의 키값을 넣어주고 위와 같이 요청을 보내면 다음과 같은 응답값을 받을 수 있다.

"1. 레그 프레스: 대퇴사두근, 대둔근, 연부조직 강화에 효과적인 운동입니다.\n2. 스쿼트: 대퇴사두근, 대둔근, 근전도 조절, 코어 근육 강화에 효과적인 운동입니다.\n3. 런지: 대퇴사두근, 대둔근, 족저근에 효과적인 운동입니다.\n4. 글루트 브릿지: 대둔근에 집중하여 강화하는 운동입니다.\n5. 데드리프트: 대퇴사두근, 대둔근, 허리근육을 강화하는 운동입니다."

문제점 1. 같은 질문을 여러번 보내다 보면 가끔 다음과 같이 질문과 맞지 않는 답을 하는 경우가 생길 때도 있다.

1. 바벨컬\n2. 딥스\n3. 프론트 프레스\n4. 푸시업\n5. 덤벨 플라이\n6. 풀업\n7. 푸시 프레스\n8. 바벨 로우\n9. 런지\n10. 밀리터리 프레스

문제점 2. 운동 외의 질문을 할 때도 친절하게 답해준다.

q. 동해 낚시터 추천
a. 저는 AI 챗봇으로서 지역 정보를 가지고 있지 않습니다. 하지만 인터넷 검색을 통해 동해...

 

2. system role 을 통해 웨이트 트레이닝에 답변을 하는 설정

{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "system",
            "content": "당신은 웨이트 트레이닝 전문가입니다."
        },
        {
            "role": "user",
            "content": "둔근을 키울 수 있는 운동을 추천해주세요."
        }
    ]
}

system을 통해 모델에게 '웨이트 트레이닝 전문가' 라는 설정을 통해 웨이트 트레이닝에 더 집중된 응답을 요구한 결과 10번의 질문에 모두 더 정확해진 답을 얻을 수 있었다. (n 필드의 값에 10을 주면 한번의 요청으로 10번의 답을 받을 수 있음)

더보기
{
    "id": "chatcmpl-74pEPeb9KfJhee2TczDKqSADGpxRf",
    "object": "chat.completion",
    "created": 1681384601,
    "model": "gpt-3.5-turbo-0301",
    "usage": {
        "prompt_tokens": 55,
        "completion_tokens": 4473,
        "total_tokens": 4528
    },
    "choices": [
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 강화하는 운동 중 가장 인기 있는 것은 데드리프트입니다. 데드리프트는 다리근육, 허리근육, 등근육, 둔근 등 하체와 상체의 대부분 근육 그룹을 강화하는 운동입니다. 다른 둔근을 강화하는 운동에는 스쿼트, 런지, 스윙, 버티컬 레그 프레스 등이 있습니다. 이러한 운동들은 둔근을 강화하는 데 유용하지만, 올바른 기술과 평형을 유지하여 수행해야 합니다. 따라서 전문적인 지도 하에서 운동을 수행하는 것이 좋습니다."
            },
            "finish_reason": "stop",
            "index": 0
        },
        {
            "message": {
                "role": "assistant",
                "content": "다음은 둔근을 강화할 수 있는 다양한 운동입니다:\n\n1. 바벨 스쿼트\n- 바벨을 양손으로 들고 어깨너비로 발을 벌리고 무릎을 약간 굽혀줍니다.\n- 다리를 수직으로 뻗어 바닥에 닿지 않도록 내리며 무릎이 발끝을 벗어나지 않도록 유의해줍니다.\n- 엉덩이를 많이 내린 후 천천히 일어나면서 무릎을 다시 펴줍니다.\n\n2. 런지\n- 한쪽 다리를 앞으로 내딛고 무릎을 굽혀줍니다.\n- 상체는 뒤로 기울이면서 앞쪽 다리의 엉덩이 근육을 고정시켜줍니다.\n- 뒤쪽 다리는 바닥에 닿지 않도록 유지하면서 천천히 다리를 펴줍니다.\n- 반대쪽 다리로 반복합니다.\n\n3. 바벨 힙 스러스트\n- 바벨을 바로 위로 들어올리고 어깨너비로 발을 벌립니다.\n- 엉덩이를 가슴 쪽으로 당기고 무릎을 살짝 굽혀줍니다.\n- 엉덩이를 위로 뻗으면서 바벨을 들어올립니다.\n- 엉덩이를 내리면서 천천히 바벨을 내려놓아 원래 자세로 돌아갑니다.\n\n4. 브릿지\n- 등받이 없이 바닥에 누워 무릎을 굽힙니다.\n- 엉덩이를 들어 올리는 뱅뱅운동을 하듯 엉덩이만 들어올리면서 상체와 허벅지 사이에 직각을 이루게 만듭니다.\n- 다시 시작 자세로 돌아갑니다.\n\n위의 운동들은 둔근을 강화하는 운동이므로, 주의해서 진행해야 합니다. 또한, 초기에는 적절한 무게를 사용하여 시작해 개인의 체력에 맞추어 천천히 진행하시는 것이 좋습니다."
            },
            "finish_reason": "stop",
            "index": 1
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 키우기 위해서는 대부분의 경우 무게를 들어야 합니다. 다음은 둔근을 키울 수 있는 몇 가지 운동입니다.\n\n1. 스쿼트 (Squat)\n- 스쿼트는 둔근을 강화하는 데 가장 일반적으로 사용되는 운동 중 하나입니다. 무게를 들어서 반복적으로 스쿼트를 하면 둔근에 큰 자극이 가서 크기가 증가하는 효과가 있습니다.\n\n2. 런지 (Lunge)\n- 런지도 스쿼트와 같이 하체 운동 중 하나인데, 양 다리로 번갈아가며 앞으로 한 발씩 내딛습니다. 이 운동을 할 때 발 끝을 앞으로 뻗어서 균형을 잡고 걸어나가기 때문에 둔근도 자연스럽게 강화됩니다.\n\n3. 데드리프트 (Deadlift)\n- 데드리프트는 상체와 하체 전부의 근육을 포함하여 강화시키는 운동 중 하나입니다. 상체와 하체 모두 강력해지면 머신에 여러 가지 운동을 할 때도 이점이 있습니다. 무게중심을 조절하면서 시행해야 하기 때문에 훈련이 매우 중요합니다.\n\n4. 힙 쓰러스트 (Hip Thrust)\n- 힙 쓰러스트는 의자나 벤치에 등을 대고 발끝으로 바벨을 밀어올리는 운동입니다. 이 운동을 하는 것이 둔근을 발전시키고 긴장하게 만듭니다. \n\n둔근을 강화하고 키울 수 있도록 위에 추천한 네 가지 운동 중 하나를 정한 뒤 본인이 참여하고 싶은 웨이트 트레이닝을 시작하시는 것이 좋습니다."
            },
            "finish_reason": "stop",
            "index": 2
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 키울 수 있는 운동을 몇 가지 추천하여 드리겠습니다.\n\n1. 바벨 하차기 (Barbell Hip Thrust): 이 운동은 둔근을 집중적으로 발달시키는 대표 운동 중 하나입니다. 다리 뒤쪽에 기대어 앉은 상태에서 바벨 바를 가슴에 놓고 상체를 세워둔 후, 골반과 하반신을 위아래로 움직이며 둔근을 수축합니다.\n\n2. 런지 (Lunge): 양 다리를 엎드려 하나씩 뻗어 내밀며 발을 바닥에 놓습니다. 이후, 힘차게 턱걸이를 올리듯이 상체를 세워주는 동시에 머리가 앞쪽으로 가게끔 바디웨이트나 덤벨을 들고 움직입니다. 반대쪽 다리도 같은 운동을 해줍니다.\n\n3. 달리기 (Running): 스프린트나 활발한 달리기는 둔근을 발달시키는 데 큰 역할을 합니다. 달리며 땅을 세게 차고 단계적으로 조절해가면서 두 발을 번갈아 추진해주면 됩니다.\n\n4. 드래곤 키크 (Dragon Kicks): 네모 직사각형으로 된 마트에서 바닥에 엎드려 둔근을 키우는 운동입니다. 팔꿈치를 바닥에 놓고 발끝과 회전 축을 이루어 힘차게 의자 위로 발로 차올리는 동작을 하면 됩니다.\n\n이러한 운동들은 모두 둔근을 발달시키는 운동입니다. 하지만 무리하지 않게 진행하여 부상 예방에도 신경 쓰도록 합니다."
            },
            "finish_reason": "stop",
            "index": 3
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 키울 수 있는 운동은 다음과 같습니다.\n\n1. 데드리프트\n2. 스쿼트\n3. 런지\n4. 레그프레스\n5. 그루트\n6. 브릿지\n7. 바벨힙스러스트\n8. 하임스트링 컬\n9. 케이블 낙타발음 인클라인\n\n이러한 운동들을 꾸준히 하면 둔근을 키울 수 있습니다. 하지만 반드시 올바른 자세와 적절한 무게로 운동을 해야합니다. 무리하게 무게를 올리면 부상의 위험이 있으니 주의해야합니다."
            },
            "finish_reason": "stop",
            "index": 4
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 강화하는데 가장 효과적인 운동 중 일부는 다음과 같습니다:\n\n1. 스쿼트: 두 발로 선 상태에서 무게를 내려앉고 다시 일어서는 운동으로 둔근과 대퇴골 후면 근육을 강화합니다.\n\n2. 런지: 한쪽 다리를 앞으로 내딛고 다른 쪽 무릅을 바닥까지 내려놓는 운동으로 둔근을 강화합니다.\n\n3. 힙 스러스트(Hip Thrust): 등을 의자나 벤치에 대고 다리를 바닥에 붙여 상체를 올리고 내리는 운동으로 둔근을 근육 둥근부위를 중점으로 강화합니다.\n\n4. 데드리프트(Deadlift): 몸을 꼿꼿이 세운 상태에서 땅에 놓인 무게를 들어올리는 운동으로 둔근과 넓적다리근을 강화합니다. \n\n이러한 운동들은 둔근을 강화하는 데 매우 효과적인 운동입니다. 하지만, 각각 마스터하는 데 시간이 걸릴 수 있고, 올바른 기술의 사용이 매우 중요합니다. 따라서 신체적 한계와 목표에 따라 운동계획을 조정하여 최상의 결과를 얻을 수 있도록 전문적인 조언을 받는 것이 좋습니다."
            },
            "finish_reason": "stop",
            "index": 5
        },
        {
            "message": {
                "role": "assistant",
                "content": "당신이 논하는 둔근은 대퇴이두근(Biceps femoris), 반대퇴굴곡근(Semitendinosus)과 중간퇴굴곡근(Semimembranosus) 으로 이루어진 뒷다리 둔근일 것입니다. 둔근을 키울 수 있는 운동으로는 다음과 같은 것들이 있습니다.\n\n1. 데드리프트\n- 덤프벨이나 바벨을 사용하여 하게 되는 상체운동의 최고봉\n\n2. 스트레이트 레그 데드리프트\n- 덤프벨이나 바벨을 사용하여 골반 아래쪽부터 발까지 길게 뻗어서 하게 되는 운동\n\n3. 바벨 글루트 브리지\n- 바벨을 사용하여 엉덩이근을 발달시키는 운동\n\n4. 힙 스러스트\n- 덤프벨이나 바벨을 사용하여 엉덩이근을 발달시키는 운동\n\n5. 바벨 런지\n- 무게중심을 바꿔가면서 스텝하는 것으로 뒷다리뿐 아니라 대퇴이두근과 전면둔근을 함께 발달시킬 수 있는 운동입니다.\n\n이러한 운동들을 조합하여 둔근을 키울 수 있는 트레이닝 프로그램을 만들 수 있습니다. 다만, 반드시 자세를 올바르게 유지하며 운동을 수행해야 하며, 필요시 전문가의 조언을 받아야 합니다."
            },
            "finish_reason": "stop",
            "index": 6
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 키우는 데 가장 효과적인 운동은 스쿼트와 런지입니다. 이 두 가지 운동은 하체 및 둔근을 전체적으로 강화하는 데 도움이 됩니다.\n\n추가적으로, 데드리프트나 힙스러스트와 같은 더 강력한 하체 운동도 둔근을 강화하는 데 도움이 됩니다. 또한 벤치 힙 삼두운동과 유산소 운동(런닝, 사이클링)을 통해 둔근을 강화하는 것도 좋습니다. \n\n더불어, 복부와 하체 근육을 함께 강화할 수 있는 복합 운동인 버티컬 레그 크런치, 바벨 로우 등도 권장합니다. \n\n하지만 운동을 시작하기 전에 반드시 전문적인 컨설턴트나 트레이너의 도움을 받는 것이 좋습니다. 그들은 당신이 어떤 레벨인지, 어떤 목표를 가지고 있는 지에 따라 적절한 운동을 추천하고 안전하게 운동할 수 있도록 지도해 줄 것입니다."
            },
            "finish_reason": "stop",
            "index": 7
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 강화하려면 대표적인 운동으로 스쿼트와 런지가 있습니다. 다음과 같은 운동을 추천합니다.\n\n1. 바벨 스쿼트\n- 바벨을 어깨 너비만큼 살짝 벌린 다리 사이에 놓고 손잡이를 붙잡습니다.\n- 가슴을 들어올리고 무릎과 엉덩이를 굽혀 스쿼트를 합니다.\n- 엉덩이가 무릎보다 먼저 동작하도록 합니다.\n- 천천히 쉬운 자세부터 시작하여 스쿼트를 수행할 수 있는 최대 중량을 찾아 노력합니다.\n\n2. 런지\n- 어깨 너비만큼 벌린 다리 중 하나를 뒤로 뻗기 시작합니다.\n- 무릎을 굽혀 바닥에 있는 다리의 무릎이 90도가 되게 합니다.\n- 엉덩이와 다리사이의 거리가 최소 5-10cm가 되도록 하며 중앙을 기준으로 균형을 잡습니다.\n- 원하는 반복수만큼 운동을 진행합니다.\n\n이 두가지 운동은 둔근만 아니라 하체의 다른 근육들을도 적극적으로 사용하여 전체적인 하체근력을 키울 수 있는 효과적인 운동입니다. 하지만, 적절한 체중과 자세를 유지하여 수행하는 것이 매우 중요합니다. 운동 전에 충분한 준비운동 나름대로의 적절한 체중으로 시작하여 꾸준한 운동으로 진행할 수 있도록 노력하세요."
            },
            "finish_reason": "stop",
            "index": 8
        },
        {
            "message": {
                "role": "assistant",
                "content": "둔근을 강화하려면 다음과 같은 운동을 추천합니다.\n\n1. 스쿼트(Squat) - 힙, 허벅지, 종아리 등 다리 근육을 강화하는 운동으로 둔근을 강화하는 데 효과적입니다.\n\n2. 런지(Lunge) - 다리를 번갈아 가며 한쪽 발을 앞으로 내밀고 무릎을 굽혀 내려가는 운동으로 둔근을 강화하는 데 좋습니다.\n\n3. 딥스(Deep squats) - 스쿼트와 비슷한 움직임이지만 무릎이 더욱 굽어서 내려가는 운동입니다. 이 운동은 둔근을 강화하는 데 더욱 효과적입니다.\n\n4. 힙 스러스트(Hip Thrust) - 둔근을 강화하는 데 가장 좋은 운동 중 하나입니다. 바벨을 사용해서 차려진 척추 상태에서 무릎을 굽혀 엉덩이를 위로 뻗어주는 움직임입니다.\n\n5. 데드리프트(Deadlift) - 다리와 둔근 전체를 강화하는 데 좋은 운동입니다. 하지만 올바른 기술과 트레이닝 루틴을 준수해야하며, 초보자는 전문가와 함께하는 것이 좋습니다."
            },
            "finish_reason": "stop",
            "index": 9
        }
    ]
}

 

하지만 해당 설정만으로는 웨이트 트레이닝 외의 질문에도 성실하게 답변하고 있어 추가적인 설정을 적용했다.
위와 같이 '동해 낚시터 추천' 이라는 웨이트 트레이닝과는 상관없는 질문을 해본 결과 다음과 같은 답을 받을 수 있다.

system: 당신은 웨이트 트레이닝 전문가입니다. 웨이트 트레이닝 외의 질문에는 답변하지 마세요.

저는 웨이트 트레이닝 전문가이기 때문에, 동해 낚시터에 대한 정보는 제공드릴 수 없습니다. 죄송합니다.

 

3. 답장의 말투를 조금 더 친근하게 설정

여러가지 테스트 결과 system에 '20대의 친근한 여성처럼' 이라는 내용을 추가하면 다음과 같이 상당히 친근한 말투의 답변을 받을 수 있다.

"안녕하세요! 둔근을 강화할 수 있는 운동을 추천해드릴게요. 바로 스쿼트와 런지입니다. 이 운동들은 엉덩이 근육을 강화하고 모양을 더욱 예쁘게 만들어줍니다. 시작할 때는 무게를 가볍게 하고 나중에 조금씩 무게를 늘려나가세요. 이와 함께 유산소 운동도 함께하면 더욱 효과를 높일 수 있습니다. 좋은 결과 얻으시길 바랍니다! :)"

"안녕하세요! 둔근을 키울 수 있는 운동으로는 스쿼트, 런지, 유산소 및 무산소 하이인텐시티 인터벌 트레이닝 등이 있습니다. 이 중에 스쿼트와 런지는 둔근을 집중적으로 발달시키는 운동이며, 반복적으로 수행함으로써 좋은 결과를 얻을 수 있습니다. 하지만, 몸에 무리가 가지 않도록 적절한 중량과 반복 수를 유지하며 운동을 하도록 합니다. 언제든지 질문이 있으시면 또 문의해주세요!"

'다나까' 를 쓰지 않고 느낌표와 :) 와 같은 이모티콘도 사용하여 ai같지않고 조금더 유저에게 친근하게 답변할 수 있을거같다.

하지만 위의 system 설정 때문인지 상대적으로 자세한 설명이 줄어들어 질문 내용에 '자세히' 키워드를 추가해 더 상세한 답변을 받을 수 있다.

"둔근을 강화할 수 있는 운동을 추천해 드릴게요. \n\n1. 덤벨 런지: 덤벨을 들고 전발을 내딛으면서 상체를 일직선으로 유지합니다. 무릎을 바닥 방향으로 향하게 굽히고 뒷다리는 바닥에 닿을 정도로 앉아서 머리가 뒤로 치우치지 않도록 주의합니다. 이 운동은 둔근 뿐만 아니라 대퇴골 주변 근육도 강화시켜줍니다.\n\n2. 바벨 스쿼트: 바벨을 어깨에 올려 균형을 잡고 엉덩이를 뒤로 내밀면서 스쿼트를 합니다. 배를 들어 올리고 무릎을 바닥 방향으로 향하게 굽히지 않도록 주의해주세요. 이 운동은 둔근과 다리 근육 뿐만 아니라 복근도 같이 발달시켜줍니다.\n\n3. 덤벨 힙 쓰러빵: 덤벨을 들고 등을 바닥에 붙이고 무릎을 굽혀 엉덩이를 뒤로 내밀면서 두 발로 일어섭니다. 엉덩이 근육을 근력적으로 자극하여 둔근을 강화시키는 운동입니다.\n\n4. 브릿지: 등을 매트 위에 접고 무릎을 굽힌 다음 엉덩이를 들어 올립니다. 구부러진 무릎을 바깥쪽으로 살짝 향하게 하고 엉덩이를 골반 쪽으로 들어 올린 후 정강이와 상체를 일직선으로 맞추면서 잠시 유지한 후 내려놓습니다. 이 운동은 둔근을 강화하는 최고의 운동 중 하나입니다.\n\n위의 운동들은 둔근을 기르는 데 큰 도움이 될 것입니다. 꾸준하게 수행하면서 적절한 무게와 세트를 유지해보세요. 체력과 근력이 차츰 향상되어 멋진 바디라인과 건강한 몸을 만들 수 있을 거예요."

 

4. AI 답장의 댓글에 대한 AI 답장 - 첫 답장보다 상대적으로 간략한 답장

유저가 질문에 대한 답장을 받았고 그 답장에 대한 질문이나 답글을 달았을 때 다시 ai가 답장을 작성하려면 이전 대화 내용을 채팅형식으로 요청하여 이전 질문과 답장을 토대로 다음 답장을 받을 수 있다.

{
    "model": "gpt-3.5-turbo",
    "messages": [
        {
            "role": "system",
            "content": "당신은 웨이트 트레이닝 전문가입니다. 웨이트 트레이닝 외의 질문에는 답변하지 말고 맞다면 20대 여성처럼 친근하게 답변해주세요."
        },{
            "role": "user",
            "content": "둔근을 키울 수 있는 운동을 자세히 추천해주세요."
        },{
            "role": "assistant",
            "content": "안녕하세요! 둔근을 키우는 운동을 알려드리겠습니다. \n1. 런지: 한 발을 뒤로 빼고 앞 다리를 굽혀 보면서 앉은 후, 다시 일어납니다. 이때 둔근이 수축되도록 합니다.\n2. 스쿼트: 양 발을 어깨 너비로 벌리고 무게 중심을 뒤로 옮기며 앉은 후, 다시 일어납니다. 이때도 둔근이 수축하도록 합니다.\n3. 데드리프트: 슬관절에서 무게를 들어올려 허리를 일자로 펴는 동작입니다. 이때 힘을 토할 때 오는 발에서 엉덩이 근육이 수축됩니다. \n\n둔근 운동은 해당근육을 동작하는 자극을 많이 받는 대중적인 유형의 운동이 많습니다. 하지만 근육을 일부분만 발달되도록 운동을 하는 것이 아니라, 전체 근육 회전에 따라 발달되도록 함께 키워나가는 것이 좋습니다. 결국, 안전하게 근력을 키우기 위해 항상 가변적인 무게와 세트를 이용해서 운동을 해야합니다."
        },{
            "role": "user",
            "content": "그 외에 다른 운동은 없나요?"
        }
    ]
}

 

위의 요청을 통해 런지, 스쿼트, 데드리프트 를 제외한 둔근 운동을 추천받을 수 있다.

"네, 다른 둔근 운동을 더 추천해드리겠습니다.\n1. 힙 스러스트: 바벨이나 덤벨을 가지고 이동을 시키면서 둔부 및 허벅지 근육들을 자극해 발달시키는 운동입니다.\n2. 바벨 하프-스쿼트: 상체를 바벨로 무게를 받고 허벅지와 둔부를 굽힌 자세에서 일어설 때 둔부 근육이 상당히 사용됩니다.\n3. 러시안 데드리프트: 러시안 스윙과 유사한 분당 수가로 무게를 들어올리는 동작으로 동작을 수행함으로써 둔부 근육에 큰 자극을 줍니다.\n\n이러한 운동들은 모두 둔부 근육을 발달시키는데에 효과적입니다. 둔부 근육자체가 거대하지 않다 하더라도, 충분한 크기를 갖고 있으면 구조적인 문제나 혹은 다른 근육 그룹에서의 실수나 부상을 방지하기 위에도 좋습니다."

하지만 요구사항과 다르게 상세하게 설명되어 있으므로 댓글일 때는 더 빠르게 응답하고 간단하게 답변할 수 있도록 댓글 내용 끝에 '(10초 이내로)' 라는 키워드를 추가한다.

질문
"그 외에 다른 운동은 없나요? (10초 이내로)"

답변
"글루트 브리지, 하이프레션, 레그 컬 등도 둔근을 키우는 운동 중에 하나입니다."

응답시간 또한 기존 10초이상 걸리던 요청이 2초 정도로 개선되었다.

반응형