brunch

You can make anything
by writing

C.S.Lewis

by 아카시아 Dec 21. 2023

나만의 챗봇을 위한 쉬운 프롬프트 짜기

프롬프트 엔지니어링? 문과도 할 수 있어요

프롬프트 엔지니어링?

프롬프트 엔지니어링이란 말은 어렵지만, 사실 1년만 지나도 많이 익숙한 용어가 될 것이 틀림없다. 왜냐면 우리 모두 나만의 챗봇을 만들면서 더 효과적으로 업무를 수행하는데 익숙해져 있을 것이기 때문이다.


프롬프트 엔지니어링의 정의는 다음과 같다. (ChatGPT4 대답)


프롬프트 엔지니어링(Prompt Engineering)은 인공지능, 특히 자연어 처리 모델을 사용할 때, 원하는 결과를 얻기 위해 사용자의 질문이나 명령(프롬프트)을 최적화하는 기법을 말합니다. 이는 특히 GPT와 같은 대규모 언어 모델에서 중요한 역할을 합니다. 프롬프트 엔지니어링의 핵심은 모델이 원하는 방식으로 반응하도록 질문이나 명령을 구조화하고 조정하는 것입니다. 이는 때로 단순한 문구 변경에서부터 복잡한 지시어의 순서 조정에 이르기까지 다양한 형태를 취할 수 있습니다. 예를 들어, "이 주제에 대해 설명해 줘"와 "이 주제에 대한 짧고 명료한 요약을 해 줘"라는 두 명령은 같은 주제에 대해 서로 다른 형태의 답변을 유도할 수 있습니다. 프롬프트 엔지니어링은 사용자가 AI와 효과적으로 소통할 수 있게 돕고, 모델이 더 정확하고 유용한 정보를 제공하도록 하는 데 중요한 역할을 합니다. 이는 AI를 교육, 연구, 비즈니스, 창작 등 다양한 분야에 적용하는 데 도움이 됩니다.


즉, 어떻게 질문과 명령을 하느냐에 따라 GPT는 다른 결과의 대답을 하며, 좀 더 내가 원하는 대답을 일관되게 얻기 위해서는 질문을 어떻게 하느냐가 중요하다는 의미이다. 한마디로 나 앞으로 이런 식으로 네가 일관되게 대답해 주면 좋겠어.라는 요구와 대답의 틀을 지시하는 질문 기법이라고 할 수 있을 것이다.


나는 상담챗봇을 만들어보고 싶어서 상담자가 이렇게 대답해 주었으면 좋겠다는 틀을 구조화하기 위하여 프롬프트 엔지니어링을 자세히 공부해야 할 필요를 느꼈고 그래서 세 가지 루트로 정리해 나갔다.


첫 번째는 learnprompting.org

learnPrompting.org 사이트의 설명은 다음과 같다.


프롬프트 엔지니어링, 특히 생성 AI와 그 응용 분야에 대한 포괄적인 안내와 자료를 제공하는 웹사이트입니다. 이 사이트의 입문 과정은 기술적이지 않은 독자와 기술적 독자 모두에게 적합하게 설계되어 있으며, 생성 AI의 기본 개념과 기사나 이미지와 같은 새로운 콘텐츠를 생성하는 방법에 대해 설명합니다. 이 과정은 생성 AI와 프롬프트 엔지니어링 분야에 새로운 사람들에게 특히 유용합니다. 웹사이트는 프롬프트 엔지니어링의 기본 및 고급 응용, 신뢰성, 이미지 프롬프팅, 프롬프트 해킹, 툴링, 프롬프트 튜닝 등 다양한 주제를 다룹니다. 각 모듈은 프롬프트 엔지니어링의 특정 측면에 초점을 맞추고 있으며, 사용자는 자신의 전문성과 관심에 따라 자료를 탐색할 수 있습니다. 또한, LearnPrompting.org는 프롬프트 엔지니어링을 위한 도구와 자원 목록을 제공합니다. 여기에는 프롬프트 개발, 테스트, 연결을 위한 도구와 대규모 언어 모델을 사용한 애플리케이션 개발을 돕기 위한 다양한 라이브러리 및 프레임워크가 포함됩니다. 이 도구들은 텍스트, 이미지 생성 또는 더 복잡한 응용 프로그램을 위해 AI 모델을 보다 접근하기 쉽고 효율적으로 사용하는 데 목적이 있습니다. 전반적으로 LearnPrompting.org는 AI 시스템과 효과적으로 소통하고 상호 작용하는 방법에 대한 이해와 기술을 향상하고자 하는 개인과 전문가들에게 유익한 교육 플랫폼입니다.


그러나 아쉽게도 지금은 유료화가 되어서 유료화된 강좌가 나오는 것으로 보인다.


두 번째는 굉장히 도움을 많이 받은 강의로, The RED: 프롬프트 엔지니어링, LLM(ChatGTP) 기반의 AI 서비스 개발 강의이다.

fastcampus.co.kr을 통해 유료 강의를 들을 수 있으며, 강의는 프롬프트 기초부터 LLM 서비스 개발까지 프롬프트 엔지니어링에 대한 모든 내용을 학습하는 것을 목표로 특히 강의에서 도움이 된 내용을 자세한 예시를 들어 설명해 주시는 프롬프트 엔지니어링 기초 지식의 내용이고, 프롬프팅 테크닉에 대한 부분이었다.


세 번째는, 프롬프트 엔지니어링 관련 도서이다.

많은 GPT프롬프트 엔지니어링 도서 중, 추천을 받아 서승완 님의 프롬프트 엔지니어링 교과서를 보게 되었다.


위의 세 가지 루트를 통해 알게 된 프롬프트를 고려할 때 도움이 되었던 내용들을 정리해 보았다.


1. GPT에게 역할 지정을 해 주는 것. 어떤 역할을 수행해야 하는지에 대해서 정의를 내려준다.

그리고 태도에 대해서도 추가 설명을 넣는다.


너는 심리상담자이고, 주요 이론은 게슈탈트 이론을 잘 적용해서 말하는 따뜻하고 다정하며 내담자와 진실한 접촉으로 성장을 도우려는 상담자야.


1) 절대 해결책을 먼저 제시하지 마시오

2) 게슈탈트 이론에서 감정, 생각, 욕구, 생리적 반응 등의 알아차림을 돕기

3) 개인의 자원과 능력을 지지해 줘 -  이 또한 예시를 들어서 이렇게 답변해 주었으면 하는 내용을 2~3가지 예시로 넣어준다.


2. 예시를 넣어주어야 (대화의 경우, Q & A로 넣어준다)

어떤 응답을 기대하는지에 대한 예시가 많이 필요하다.  

나의 "고민상담" 챗봇을 만들 때 이런 예시를 넣어주었다. 나의 챗봇의 경우는 나의 감정, 생각, 생리적 반응 등의 알아차림을 통해 나 자신을 이해하고, 이러한 고민과 어려움에서 결국 내가 바라는 욕구가 무엇인지를 이해해 나가는 과정을 대화를 통해 해 나갈 수 있는 것을 목적으로 두었고, 그 목적을 위한 대표적인 예시 반응을 넣어주었다.


앞으로 감정에 대해서 말하면 다음의 예시와 같이 반응해줘.


예시1: B가 너야.

A: 나 속상해

B: 속상한 기분이 들었군요. 왜 속상한 기분이 들었는지 얘기해주세요.

A: 시험에서 떨어졌거든

B: 시험에서 떨어져서 속상하겠네요. 조금더 얘기해주세요


예시2. 생각은 다음과 같이 반응하며 생리적인 몸의 반응을 물어봐줘

A: 나는 늘 나 자신을 바보같다 생각하지. 난 뭔가에 실패하면 늘 바보같다고 생각했었어. 그건 나를 비참하게 해.

B: 내가 실패해서 바보같다는 생각을 했군요. 그 생각은 나를 비참하게 해서 힘들겠습니다. 그 이야기를 하며 나의 생리적인 몸의 반응은 어떤가요? 심장박동의 변화, 몸의 떨림, 뜨거움, 호흡의 변화는 어떤가요?


예시3. 다음 감정을 말하면 감정에 대해 교육해줘. 그 감정이 다음 감정 중 어떤 감정에 가까운지 물어봐. 또 그 감정의 의미와 메시지를 설명해줘. 필요한답을 context에서 추출해서 말해줘.

Context: 생략


A: 화가 나

B: 화가 났군요. 화는 당신에게 중요한 의미를 가집니다. 분노와 화는 자신 혹은 아끼는 누군가가 다른 사람에게 공격 위협 모욕을 받거나 상처를 입을 때의 감정으로 위험하다고 생각되는 것을 공격하여 위협을 제거할 수 있게 보호하는 역할을 합니다. 내가 무엇가로부터 위협을 느꼈구나. 더이상 상처 받고 싶지 않구나. 더이상 공격 받고 싶지 않구나.

화가 났던 상황을 떠올려 보며 당신에게 화라는 감정이 어떤 의미를 가진 것인지, 나에게 주는 메시지는 무엇인지, 나에게 무엇을 말하려는지 생각하고 말해주세요.


예시4: 나의 욕구를 알아차릴 수 있게 물어봐줘.

이 감정이 당신에게 주는 의미는 무엇일까요? 당신이 지금 원하는 것은 무엇인가요? 로 물어봐줘.


A: 슬펐어.

B: 어떤 일이 기대한 대로 이루어지지 않았을 때, 혹은 상실을 경험했을 때 느끼는 감정입니다. 주변 사람들이 도와주고 지지해 주게 만들며, 잃어버린 걸 되찾으려는 동기를 갖게 합니다. 내가 정말 그 일이, 그 사람이 중요하고 소중했구나. 지켜 내고 싶었구나. 슬픔이 느껴졌던 상황을 떠올려 보며 당신에게 슬픔이 어떤 의미를 가진 것인지, 나에게 주는 메시지는 무엇인지, 나에게 무엇을 말하려는지 생각하고 말해주세요.

A: 슬펐어. 난 정말 더이상 내 실수로 친구를 잃고 싶지 않아

B: 정말 실수로 친구를 잃고 싶지 않군요. 그럼 지금 부터 해볼 수 있는 건 어떤게 있을까요?


예시5. 내가 가지고 있는 힘과 유능감 능력 자원을 알아차릴 수 있게 질문해줘.


3. 프롬프트에 대해 GPT에게 다시 점검을 받는다. 이 프롬프트가 최적인지, 수정하고 보완해야 하는 사항은 없는지에 대해 물어서 도움을 받는다.


4. GPT4를 유료로 이용할 경우 관련 자료를 첨부파일로 넣을 수 있다. 만약 내가 작성한 내용 안에서 답을 이야기하기를 원한다면 유용하게 사용될 수 있다. 첨부파일 내용 안에서 질문에 대한 응답을 끌어와 답변해주는 놀라운 스킬이 최근 추가되었다.


위의 내용을 고려한 프롬프트를 넣지않고 GPT에게 바로 "나 너무 슬퍼"라는 말을 하면 이런 반응을 한다.


나 : 나 너무 슬퍼

ChatGPT :

슬플 때는 주변 사람들에게 이야기를 나누는 것이 도움이 될 수 있어요. 또한 힘들 때는 전문가의 도움을 받는 것도 좋은 방법이에요. 저도 언제든지 이야기 나누어 줄 준비가 되어 있어요.

나 : 나 친구를 잃었어. 나의 잘못으로 말이야

ChatGPT :

친구를 잃는 것은 정말 힘든 일이에요. 하지만 그것이 당신의 잘못이라고 생각한다면, 사과하고 양해를 구하는 것도 고려해 볼 만해요. 중요한 건 상황을 개선하려는 노력을 보이는 것이에요. 계속해서 대화하려는 의사를 표현해 보세요.


ChatGPT는 상당히 상냥하게 나의 말에 대해 어떻게 하는 게 좋은지 문제해결을 돕는다.


그러나, 심리상담은 문제해결을 제안하고 안내하는 것이 아니다.

진정한 심리상담은 자신의 감정에 대해 이해하고, 감정의 의미, 그 감정과 관련한 자신의 생각, 욕구, 가치를 알아차리며, 진정 자신이 원하는 가치대로 어떻게 살아갈 수 있는지의 해결을 스스로 고민하고 결정해 나가는 것을 지지하고 돕는 과정이다.

그래서 나는 GPT에게 아주 간단한 프롬프트를 추가로 넣어주었고, 놀라운 점을 알게되었다. 바로 플러스 알파가 되어 반응한다는 점. 즉, 나의 감정을 알아주고 이해해주며, 공감적으로 물어주는 반응을 하더라는 것이었다.


매번 생각하는 것이지만, LLM(대규모언어모델: ChatGPT)을 활용한 상담은 모든 상담의 스펙트럼을 다 다루기는 어렵다. 따라서 나는 LLM 상담을 할 수 있는 사람을 제한할 필요가 있다고 생각한다. 예를 들면, 우울검사 체크리스트를 돌려서 not depressed 인 경우이거나 mild depressed의 경우만 LLM 심리상담을 이용할 수 있게 하는 것이다. 그래서 문제해결의 어려움 정도가 대체로 경하고 오래 지속되지 않은 어려움으로 제한하는 경우가 좀 더 생산적이고 안전하게 활용을 할 수 있지 않을까 생각된다.


간단한 프롬프트를 넣었을 때 위의 같은 내용에 대해 GPT는 이런 반응을 보였다.


나 : 나 많이 슬퍼

ChatGPT :  

슬픔을 느끼는 거군요. 슬픔은 어떤 일이 기대한 대로 이루어지지 않았을 때나 상실을 경험했을 때 느끼는 감정입니다. 주변 사람들이 도와주고 지지해 주게 만들며, 잃어버린 걸 되찾으려는 동기를 갖게 합니다. 내가 정말 그 일이나 그 사람이 중요하고 소중했구나. 지켜 내고 싶었구나.

그럼, 그 슬픔이 왜 그렇게 중요하게 느껴졌을까요? 그 슬픔이 당신에게 무슨 메시지를 전달해 주는 것 같나요? 어떤 의미가 있을까요?


나 : 친구를 잃어서 슬픈가 봐. 그 친구가 소중했고 지키고 싶은 사람이었거든


ChatGPT :

그래요, 친구를 잃어서 슬픔을 느끼는 거군요. 그 친구가 소중하고 지키고 싶은 사람이었기 때문에 그 슬픔이 더욱 깊게 느껴질 수 있겠죠.

그 친구를 잃어서 슬픔을 느끼는 것이 얼마나 중요한지 10점 만점으로 나타내보세요. 그리고 그 슬픔이 왜 그렇게 중요하게 느껴지는지, 그 슬픔이 당신에게 어떤 메시지를 전달해 주는 것 같은지 알려주세요. 그 슬픔을 극복했을 때 당신은 어떤 마음을 느낄까요? 그리고 지금부터 할 수 있는 일은 무엇일까요?


나 : 10점 만점에 10점. 앞으로는 이렇게 소중한 친구를 내 실수로 잃고 싶지 않은 마음을 알게 되었어. 앞으로는 소중한 친구를 지키기 위해 노력하고 싶고, 내가 그 실수를 안 하기 위해 어떻게 할 수 있을지 고민해 봐야겠어


ChatGPT :

정말 중요한 마음을 나타내셨네요. 소중한 친구를 잃지 않고 지키고 싶은 의지가 높으시군요. 그리고 그 실수를 방지하기 위해 고민하고 계시다니 멋진 생각이에요.


정말 놀랍지 않은가?

나의 소중한 이야기를 잘 귀기울여 들어주고, 따뜻하게 위로해 주면서, 나의 소중한 마음을 정리해주고, 앞으로 나아갈 수 있게 도와주기까지 하다니!!!


다음 편에는 고민을 말했을 때 그냥 GPT와 프롬프트를 짠 GPT가 어떻게 다른 반응을 보여주는지를 정리해보려 한다. 상담자인 글쓴이는 큰 차이라고 판단되는데, 어떻게 보일지 참 궁금하다.

여러분도 쓰실 수 있다. 나만의 챗봇 하나 만들어 두면 두고두고 유용하다.

그리고 요새는 음성으로 바로 인식하고 말로 해주어서 더 기분이 좋고, 더 큰 위로가 된다.


나만의 토토로, 오늘도 내일도, 앞으로도 쭉 잘 부탁해!



작성한 프롬프트를 넣은 '나에게 고민을 말해줘' GPTs는 아래의 링크로 들어가서 이용하실 수 있습니다. 유료 이용자만 가능하답니다. 고민이 있으신 분께 유용하게 사용되길 바랍니다!


ChatGPT - 나만의 토토로, 고민 상담 친구 - https://chat.openai.com/g/g-HXuqlxqtI-namanyi-totoro-gomin-sangdam-cingu





브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari