개발자를 위한 ChatGPT 프롬프트 엔지니어링 (4) 챗봇 만들기

Jiwon Kang·2023년 5월 24일
2
post-thumbnail
  • 아래 내용은 DeepLearning.AI의 <ChatGPT Prompt Engineering for Developers> 강의를 정리한 포스트입니다.
  • 공식 강의 페이지에서 듣는 것을 추천합니다(무료). 한국어는 지원되지 않습니다. 그러나 강의 비디오 옆에 쥬피터 노트북이 함께 제공되며, OpenAI API Key도 무료로 제공됩니다. 로컬에서 실행하고 싶은 경우 아래 포스트를 참조하여 OpenAPI Key를 발급받으세요.
  • 오류나 추가 사항이 있으면 언제든 댓글로 알려주세요 🤗

Chatbot (Official Link)

OpenAPI의 API를 통해 챗봇 만들기

  • 이번 강의에서는 챗봇을 만들어봅니다. 여태까지의 강의에서는 나(user)의 프롬프트에 ChatGPT(assistant)가 답을 출력해주는 형태를 만들어주는 방식으로 실습을 해봤습니다.

  • 이제 한발자국 더 나아가서

    • ChatGPT에 특정 페르소나를 입히거나
    • 나와 ChatGPT 사이에서 여러번 대화가 오고가도록 설정해봅시다
  • 먼저 API에서 입력값으로 들어가는 messages 변수를 살펴볼게요
    • messages 딕셔너리는 role키와 content키로 구성됩니다
    • rolesystem, user, assistant로 분류되요

  • 그림을 보면서 정리해볼까요

    • system: 챗봇의 전역설정값으로 챗봇의 목적이나 성격을 규정합니다
    • user: 사용자의 입력값입니다
    • assistant: ChatGPT의 출력값입니다
  • 이제 챗봇을 위해 우리가 할 일은 messages 배열을 준비하는 것 뿐입니다

    1. 챗봇의 봇의 성격, 목적에 대해 설명해주세요
      {"role": "system", "content": "입력부분"}
    2. 챗봇에게 원하는 메시지를 입력해보세요
      {"role": "user", "content": "입력부분"}
    3. 실습 코드 예시
messages =  [  
messages =  [  
{'role':'system', 'content':'You are friendly chatbot.'},    
{'role':'user', 'content':'Hi, my name is Isa'}  ]
response = get_completion_from_messages(messages, temperature=1)
print(response)
# > Hello Isa! It's nice to meet you. How can I assist you today?
  • 여러번 대화를 하기 위해서는 messages에 새로운 대화 데이터를 추가하기만 하면 됩니다
messages =  [  
{'role':'system', 'content':'You are friendly chatbot.'},
{'role':'user', 'content':'Hi, my name is Isa'},
{'role':'assistant', 'content': "Hi Isa! It's nice to meet you. \
Is there anything I can help you with today?"},
{'role':'user', 'content':'Yes, you can remind me, What is my name?'}  ]
response = get_completion_from_messages(messages, temperature=1)
print(response)

Conclusion

  • 마무리는 조그만거라도 당장 실현하라는 것!

  • 마지막 말이 자신감을 길러주는데, 이제 당신들은 "이 과정을 마치셨으니 이제 여러분은 오늘날 소수의 사람만이 할 수 있는 일을 구축할 수 있는 풍부한 지식을 갖추게 될 것입니다. (And now that you've finished this course, I think you now have a wealth of knowledge that let you build things that few people today know how to.; translated by DeepL)"

  • 자 아무거나라도 좋으니 실천해보자

profile
도파민 중독

0개의 댓글