IT world

[GPT] 24.01.25 GPT 프롬프트 및 API 실습 본문

모두의 연구소(오름캠프)/AI 모델 활용 백엔드 개발 과정

[GPT] 24.01.25 GPT 프롬프트 및 API 실습

엄킹 2024. 1. 25. 16:59

오늘은 Chat GPT의 사용 방법과 API를 사용하여 실습을 했다.

 

Chat GPT

Chat GPT란? OpenAI에서 개발한 인공지능 모델로, 대화 기반의 자연어 처리를 수행한다. 즉 대화형 인공지능 챗봇을 뜻한다. 이 모델은 사람과 대화하는 것처럼 자연스럽게 응답을 생성하는 능력을 가지고 있다. 

 

Chat GPT는 GPT(Generative Pre-trained Transformer) 모델을 기반으로 대규모의 텍스트 데이터를 사전 훈련한 후, 다양한 자연어 처리 작업에 활용할 수 있도록 설계된 모델이다.

 

Chat GPT를 사용할 때 가장 중요한건 입력하는 대화의 작성이라고 생각한다. 프롬프트 엔지니어라는 직업이 주목받고 있을 정도로 어떻게 입력하느냐에 따라 대답의 질이 달라지기 때문이다. 어떻게 하면 조금이라도 정확하고 명확한 답변을 받을 수 있는지 작성해보겠다.

 

1. 주제 분리의 중요성

효과적인 대화를 위해 한 번에 한 주제에 집중하는 방법을 적용하기. 여러 주제에 대해 논의하고 싶은 경우, 각 주제를 별도의 대화로 구분하는 것이 좋다. 

2. 역할(페르소나) 지정의 중요성

Chat GPT와 대화에서 특정 역할을 지정하는 것도 중요하다.

예를 들어 '전문적인 음식 평론가' 역할을 설정하고 질문할 경우 세부적이고 전문적인 음식 리뷰를 얻을 수 있다. 즉 목적과 상황에 맞는 적절한 역할 지정은 답변의 품질과 대화의 질을 향상 시킨다.

3. 컨텍스트의 중요성

세부적인 컨텍스트를 제공함으로써 명확하고 관련성 높은 출력을 얻을 수 있다.

예를 들어 후카츠 프롬프트 기법을 활용하여 템플릿을 사용하여 역할, 제약조건, 입력문을 명확히 제시하고 원하는 출력 요청을 정의할 수 있다. 

4. 말투 지정의 중요성

대화에서 특정한 말투를 지정하여 원하는 톤과 스타일을 반영하여 답변을 얻을 수 있다. 

말투는 대화의 느낌과 전달 방식에 큰 영향을 미치고 대화의 목적과 청중을 고려하여 적절한 말투를 선택해야한다. 공식적인 말투, 설득력있는 말투 등 상황에 맞게 지정하여 내용을 전달해야한다.

5. 대상 지정의 중요성

특정 대상을 세밀하게 지정하여, 그 대상에게 맞는 언어와 정보를 제공하는 답변을 얻어야한다. 

대상에 맞는 언어 사용, 정보의 깊이, 예시의 선택 등은 효과적인 의사소통을 위해 조정되어야한다. 어린이에게 전문가의 용어와 복잡한 개념을 설명할 수 없는 것처럼 대상의 연령, 전문성, 배경 지식을 고려하여 적절한 수준의 정보를 제공해야한다. 대화의 목적에 따라 대상을 세분화함으로써 명확하고 효과적으로 메시지가 전달된다.

7. 단계별 지침의 중요성

복잡한 작업을 위한 단계별 지침을 제공하여, 체계적인 결과물을 얻어야한다. 

단계별로 복잡한 작업을 나누어 목표달성을 위한 명확한 경로를 제공하고, 각 작업의 특정 부분에 초첨을 맞추어 품질과 효율성을 개선한다.

8. 사례와 예제의 중요성

사례와 예제를 제공하여 추론과 외부지식이 필요한 경우 더 나은 결과물을 얻도록 해야한다.

예시는 Chat GPT가 주어진 상황이나 문제에 대해 추론하는데 도움을 주며 감성 분석, 주제 분류, 언어 번역 등 추론이 필요한 작업에 유영하게 활용된다.

  • Zero-shot: 아무런 예시 없이 질문에 대한 답변을 요청하는 경우.
  • One-shot: 하나의 예시를 제공하여, 그 예시를 통해 답변을 유도.
  • Few-shot: 두 개 이상의 예시를 제공하여, 그 예시들을 바탕으로 보다 정확한 답변을 유도.

9. 구조화된 출력 지정의 중요성

구조화된 형식을 지정하여 데이터와 정보를 명확하고 읽기 쉬운 형태로 출력해야한다.

구조화된 출력은 정보를 표, 리스트, 코드 블록, 마크다운 등의 형식으로 표현하는 방식으로 이를 통해 데이터를 체계적이고 직관적으로 전달할 수 있으며, 가독성과 이해도를 높일 수 있다.

10. 점진적 확장의 중요성

대화에서 점진적으로 요청을 확장하여, 복잡한 문제를 해결하거나 큰 프로젝트를 수행해야한다.

점진적 확장은 큰 목표를 작은 단위로 나누어 순차적으로 해결하는 방법이다. 복잡한 요청을 관리 가능한 부분으로 분할하여 집중하여 처리할 수 있게 한다.


openai API 실습1

openai API을 호출하여  실습하기 위해선 openai에 가입을 해야하고, 최초 가입시 일정 부분을 무료로 사용할 수 있게 해주고 사용량이 끝나면 유료 사용으로 전환해야한다. 

 

API Key 생성은 잘 보관해야하며, 최초 생성 이후에 확인이 안되기 때문에 꼭 기록해두자.

API key를 발급했다면, 실습을 해보자.

 

1. openai 라이브럴 설치

OpenAI의 API를 사용할 수 있게 해주는 라이브러리 설치.

    !pip install openai

2. 실습

OpenAI API 클라이언트의 인스턴스 client를 생성하고 대화형 챗봇을 생성한다.

사용자가 Hello world라는 메시지를 입력한 것으로 설정했고 답변을 출력하는 예제이다.

    from openai import OpenAI  # OpenAI 모듈 불러오기

    # OpenAI API 키 설정
    client = OpenAI(api_key='your-api-key')  # 사용자의 API 키로 대체해야 함

    # ChatGPT를 사용한 텍스트 생성 요청
    response = client.chat.completions.create(
        model = "gpt-3.5-turbo",
        messages = [{"role" : "user", "content" : "Hello World!"}]
    )
    # API 응답에서 마지막 메시지의 내용을 출력
    print(response.choices[0].message.content)

    # 나의 content를 보고 gpt 답변을 해줌 -> hello world에 대한 답을 출력

 

[결과]

  • chat.completions.create(): 대화형 챗봇을 생성하는 함수
  • model: 사용할 GPT-3 모델을 지정
  • messages: 대화의 맥락을 나타내는 메시지 목록. 각 메시지는 사용자 또는 시스템의 발언을 나타낸다.
  • role: 메시지의 발신자
  • content: 메시지의 실제 내용
Comments