[번역] .NET에서 ChatGPT 활용하기
이 포스트는 원문을 개인적으로 번역한 내용입니다. 오역이나 개인적인 견해가 포함되어 있을 수 있으니 양해 부탁드리며, 좀 더 정확한 정보는 원문을 참조하시길 바라겠습니다.
OpenAI와 .NET에 대한 블로그 시리즈에 다시 오신 것을 환영합니다!
만약 이 블로그 시리즈에 처음 오신 거라면, 먼저 이 시리즈를 소개하고 .NET에서 OpenAI를 활용하는 방법에 대해 다루는 첫 번째 포스트를 확인하세요.
이번 포스트에서는 .NET을 사용하여 대화형 인터페이스에서 OpenAI 모델을 활용하는 방법과 ChatGPT에 대해서 중점으로 다룹니다. 그럼 시작해 보겠습니다!
ChatGPT는 무엇인가요?
CharGPT는 대화형 인터페이스에 최적화된 언어 모델입니다. 기존 GPT-3 모델과 다르게 ChatGPT를 사용하면 GPT 모델과 여러 차례 대화를 나눌 수 있기 때문에 더 쉽게 후속 질문을 할 수 있습니다.
다른 GPT 모델과 마찬가지로 ChatGPT 모델 또한 다음과 같은 작업에 활용할 수 있습니다:
- 비즈니스 관련 질문에 답변하는 디지털 어시스턴트(챗봇) 생성
- 문서에 대한 주요 인사이트 추출 및 질문
- 문서의 정보 요약
- 코드 디버그
- 기타 등등...
ChatGPT 프롬프트 및 컴플리션
이전 포스트에서 프롬프트와 컴플리션의 개념에 대해 소개했습니다.
대부분의 경우, 해당 포스트의 지침은 ChatGPT에도 동일하게 적용되며, ChatGPT를 다른 GPT 모델과 구별하는 두 가지 핵심 구성 요소는 역할(Roles)과 대화 기록(Chat history)입니다.
ChatGPT 역할(Roles)
역할은 ChatGPT가 대화의 콘텍스트에서 추가 정보를 제공하는 데 도움이 됩니다. ChatGPT가 사용하는 역할은 다음과 같습니다:
- 시스템(System) : 시스템 메시지는 모델에 대한 초기 콘텍스트와 가이드라인을 제공합니다. 모델이 응답을 생성할 때 참조할 수 있는 콘텍스트, 응답해야 하는 항목과 응답하지 말아야 하는 항목, 그리고 응답 서식 지정 방법에 대한 가이드라인을 제공합니다.
- 어시스턴트(Assistant) : 모델이 생성한 컴플리션 또는 응답이 포함된 메시지입니다.
- 사용자(User) : 사용자가 작성한 메시지로 사용자가 제공하는 태스크나 쿼리입니다.
예를 들어, 특정 지역의 하이킹 코스를 알아보고 추천받기 위해 ChatGPT를 사용하려고 한다고 가정해 보겠습니다.
시스템 메시지
다음은 모델에 대한 초기 가이드라인입니다. 하이킹 어시스턴트를 위한 시스템 메시지 샘플은 다음과 같습니다:
당신은 사람들이 자신의 지역에서 재미있는 하이킹 코스를 찾을 수 있도록 돕는 하이킹 애호가입니다. 당신은 낙관적이고 친절하며, 처음으로 인사할 때 자신을 소개합니다. 사람들을 도와줄 때는 항상 다음과 같은 정보를 요청하여 추천할 하이킹 코스에 반영합니다:
1. 거주하는 위치
2. 원하는 하이킹 강도
요청된 정보를 기반으로 다양한 인근 하이킹 코스 세 가지를 추천합니다. 또한 추천할 때 해당 지역의 자연에 관한 흥미로운 정보도 함께 공유합니다.
어시스턴트 & 사용자 메시지
다음 스크린샷은 ChatGPT 기반 디지털 하이킹 어시스턴트와의 대화 샘플입니다.
상단 메시지는 제가 작성한 메시지로 사용자 역할을 합니다.
하단 메시지는 모델이 생성한 응답으로 어시스턴트 역할을 합니다.
여기서 주목할 점 중 하나는 모델의 응답과 상호작용이 사용자 메시지뿐만 아니라 초기 시스템 메시지에도 영향을 받는다는 것입니다.
대화 기록
일반적으로, GPT-3 모델로 작업할 때 프롬프트와 응답은 일회성입니다. 따라서 후속 질문이나 추가 질문을 하려면 프롬프트의 콘텍스트에 해당 질문을 포함할 방법을 찾아야 합니다. ChatGPT를 사용하면 대화 기록을 추가 콘텍스트로 활용할 수 있습니다.
다음은 동일한 하이킹 어시스턴트 예시를 사용하여 대화 기록을 추가 후속 질문의 콘텍스트로 사용하는 몇 가지 예입니다:
1. 시스템 메시지의 안내에 따라 Hudson Valley 지역 하이킹 코스 추천을 요청하면, 어시스턴트는 보다 개인화된 추천을 하기 위해 추가 질문을 합니다. 이전 메시지인 채팅 기록을 활용하여 거주 지역과 하이킹 강도에 대한 설명을 요청합니다.
2. 채팅 기록에는 최초 추천 목록이 포함되어 있습니다. 목록을 표 형태로 만들어 달라고 요청하면 어시스턴트는 표를 작성하는 데 필요한 정보를 얻기 위해 채팅 기록의 이전 메시지를 활용합니다.
ChatGPT 활용 시작하기
이제 ChatGPT가 무엇인지 알았으니, 독자적인 채팅 솔루션을 생성해 볼 차례입니다. 다음과 같이 시작할 수 있습니다.
- OpenAI 또는 Azure OpenAI Service에 가입하거나 액세스를 요청합니다.
- 자격 증명을 사용하여 OpenAI .NET 샘플을 참고합니다.
다음 주제는 무엇인가요?
다음 포스트에서는 .NET에서 OpenAI 모델을 사용하여 문서와 지식 베이스(knowledge-bases)를 활용하는 지능형 애플리케이션을 구축하는 방법에 대해서 다룰 예정입니다.
여러분의 의견을 듣고 싶습니다.
여러분이 애플리케이션에서 AI를 어떻게 활용하고자 하는지 좀 더 자세히 알고 싶습니다. 잠시 시간을 내어 이 설문조사에 참여해 주시면 감사하겠습니다.
또, 더 자세히 알아보고 싶은 주제가 있다면 댓글로 알려주세요.
추가 팁
시스템 메시지와 채팅 기록은 모두 토큰 한도에 포함되기 때문에 대화에서 얼마나 많은 토큰을 사용하고 있는지 파악해야 합니다. 토큰 수 확인에 대한 가이드는 토큰화 샘플 설명서를 참조하세요.
추가 리소스
ChatGPT에 대해 더 자세히 알고 싶다면, 다음 문서를 참조하세요.
이 포스트 시리즈 전체 보기
3. [번역] 프롬프트 엔지니어링(Prompt Engineering)으로 GPT 게임 레벨 업그레이드하기
2. [번역] .NET으로 OpenAI 컴플리션(Completions) 생성하기