오늘은 ChatGPT API를 사용하는 방법과 ChatGPT API 결과의 질을 높이기 위한 프롬프트 최적화 팁을 정리 해보려고 합니다. gpt-3.5-turbo이 지원되면서 성능 가격면에서도 많이 좋아졌는데요 API를 사용하는 방법과 역할(Role), 온도(temperature), 텍스트의 최대 길이(max_tokens)활용해서 프롬프트 최적화 방법에 대해 알아보겠습니다.
1. ChatGPT API 사용방법
먼저 ChatGPT API 사용방법에 대해 알아보겠습니다. ChatGPT API 사용은 간단하게 아래의 순서로 진행 됩니다.
- OpenAI 회원 가입 및 API Key 발급
- 개발환경 설정 및 Python openai 라이브러리 설치
- 예제 실행 하기
1) OpenAI 회원 가입 및 API Key 발급
먼저 Openai API 사이트에 들어가신후 회원 가입을 합니다. 회원 가입이 완료되면 아래 그림 처럼 View API Keys 를 누르셔서 API Key를 발급 받을 수 있습니다. 발급 받으신 키는 추후 중요하게 사용될 예정이라 꼭 저장 해두시길 바랍니다.
발급 받으신 키는 아래와 같이 확인 가능 합니다.
참고로 API사용은 유료이며 ChatGPT 프로와 별개로 가입시 무료 Credit 사용량을 초과하면 사용량에 따라 과금이 되니 참고 부탁 드립니다.
2) 개발환경 설정 및 Python openai 라이브러리 설치
이부분 부터는 개발 지식이 없으면 조금 어려우실수 있지만 그래도 코드 작성 순서를 정리해보겠습니다. API Key 발급을 잘 받으셨다면 개발환경을 설정하고 Python OpenAI 라이프러리를 설치 하여 코드 작성할 준비를 마칩니다.
Python에서 OpenAI API를 사용하여 애플리케이션을 개발하려면 다음이 필요합니다. 컴퓨터에 Python 3.6 이상이 설치되어 있어야 합니다.
- PyCharm, Visual Studio Code(VSCode) 또는 Jupyter Notebook과 같은 IDE 또는 코드 편집기.
OpenAI API 작업을 위한 편리한 인터페이스를 제공하는 openai Python 패키지 라이브러리의 설치가 필요 합니다. 먼저 개발환경의 경우 마이크로소프트에서 만든 Code(VSCode) 라는 개발 도구를 사용 합니다. 아래 링크에서 다운 받아 설치 하실수 있습니다.
그 다음으로 openai 패키지를 설치하려면 Python 패키지 관리자인 pip를 사용할 수 있습니다. 명령 프롬프트 또는 터미널 창을 열고 다음 명령을 실행합니다.
pip install openai
그러면 openai 패키지와 모든 종속 항목이 다운로드 및 설치됩니다.
openai 패키지를 설치하면 이를 Python 코드로 가져와서 OpenAI API 사용을 시작할 수 있습니다. 위에서 API 키와 함께 ChatGPT API 로 개발을 시작 할수 있습니다.
3) 예제 실행 하기
이번에는 Python에서 ChatGPT API를 사용한 코드의 예제를 보여드리도록 하겠습니다.
다음은 ChatGPT API를 사용하는 Python코드의 예입니다.
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": "Who won the world series in 2020?"},
{"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."},
{"role": "user", "content": "Where was it played?"}
]
)
output_text = response.choices[0].message.content
print(output_text)
응답 예시
The 2020 World Series was played at a neutral site due to the COVID-19 pandemic. The games were held at Globe Life Field in Arlington, Texas.
위 예를 하나 하나 살펴 보면 저 api_key 변수를 API 키로 설정하여 인증을 설정합니다. 그런 다음 사용할 모델을 지정해줍니다. ChatGPT에서 사용된 API를 사용하기 위해서는 얼마전에 발표된 gpt-3.5-turbo를 모델명으로 지정 해줘야 합니다.
그리고 openai.ChatCompletion.create을 통해 ChatGPT API를 호출합니다. 이때 messages에는 사용자의 입력과 ChatGPT의 출력이 들어가게 됩니다. messages에 들어가는 구체적인 내용은 아래 'ChatGPT API 프롬프트 활용 방법'에서 추가로 정리 해보겠습니다.
2. ChatGPT API 프롬프트 활용 방법
지금까지 ChatGPT API를 사용하기 위한 기본적인 환경 설정과 예제 코드를 보여드렸습니다. 이번에는 API에서 새롭게 추가된 파라미터들에 대해 자세히 설명 드리도록 하겠습니다.
역할(Role)을 지정 해줍니다. 역할은 이번에 공개된 ChatGPT API 에서 공개된 중요한 기능중 하나로서 용도에 따라 시스템(System), 보조자(Assistant), 사용자(User)로 구분 됩니다. 각 역할에 대해서 간단히 설명을 드려보겠습니다.
시스템(System)역할은 ChatGPT에게 어떻게 행동을 할지 지정하는 기능이라고 생각하시면됩니다. 위의 예제에서 처럼 xxx를 입력 했다면 ChatGPT에서 상황을 설정할때 주로 사용하는 Act as a ___ 와 유사한 명령을 내릴때 사용됩니다.
보조자(Assistant)역할은 질문을 요청 하기 보다는 이전 대화를 저장하고 연속성을 유지하기 위해 사용되며 이어지는 답변에 영향을 줄수 있습니다. 이전 내용을 바탕으로 프롬프트를 요청 하고자 할때 사용 하실 수 있습니다.
사용자(User)의 역할은 chatGPT에 일반적으로 질문하는 질문 내용입니다. 사용자의 역할은 보조자(Assistant)와 마찬가지로 이전 대화를 저장하고 연속성을 유지하기 위해 사용되며 이어지는 답변에 영향을 줄수 있습니다.
시스템(System), 보조자(Assistant), 사용자(User)역할에 대한 자세한 설명은 Open API 문서를 참고해주세요.
사용자 역할 말고도 중요하게 사용되는 입력 값으로 온도(temperature), 텍스트의 최대 길이(max_tokens) 를 활용하는 방법이 있습니다.
온도값의 경우 다양성(degree of diversity) 정도를 나타내며 높을수록 창의적인 결과물을 만들어줍니다.
온도(temperature)값이 높을수록 모델이 생성하는 문장이 더 다양해지고, 값이 낮을수록 더 일관성 있는 문장이 생성 됩니다. 조금더 자세히 말씀 드시면 온도(temperature)값이 높은 경우, 다양한 선택지를 고려하여 텍스트를 생성합니다. 반면에, temperature 값이 낮은 경우, 모델은 가능한 선택지 중에서 가장 확률이 높은 것을 선택하게 됩니다. 그래서 온도 값이 낮을 셩우 일관성 있는 텍스트 결과가 만들어지고 일반적이거나 예상 가능한 결과를 만들 수도 있습니다.
온도(temperature)값의 범위는 0에서 무한대이지만 일반적으로 0.5 ~ 1.0 사이의 값이을 주로 사용 한다고 합니다. 정보성 글일때는 낮은 온도를 사용하고 창의성이 필요한 경우에는 높은 온도로 설정하여 사용하면 됩니다. 참고로 지정 안했을 때의 기본 값은 0.7입니다.
텍스트의 최대 길이(max_tokens)는 생성되는 텍스트의 최대 길이를 지정하는 값입니다. 기본값은 256이며 최대값은 2048입니다.
3. Playground에서 ChatGPT API 사용 해보기
지금까지 python 예시와 함께 주요 요청 파라미터들에 대해 설명 드렸는데요 코딩을 모르시더라도 위에서 설명한 요청 값들을 코드 없이도 OpenAI Playground에서 직접 테스트 해볼 수도 있습니다.
아래처럼 보조자 역할로 2022년 LA다저스가 우승 했다는 내용을 입력 해주고 사용자 프롬프트를 입력 해주면 보조자 역할에 작성한 내용을 기반으로 결과 값을 작성해줍니다. 온도값도 조금더 창의 적으로 작성해보라고 0.7에서 0.8로 변경 했고 최대길이도 기본값 256에서 700으로 늘려보았습니다.
요청한 결과 값은 다음과 같습니다.
이렇게 ChatGPT API 사용법과 프롬프트 최적화 방법을 정리 해봤는데요 코딩 관련 내용이 있어 처음 접하신 분들은 어려우셨겠지만 도움이 되었으면 좋겠습니다.
그리고 ChatGPT를 활용하여 ChatGPT API 를 사용한 Python 라이브러리 코드 작성 하기와 ChatGPT API를 사용한 FastAPI API 서버 만들기를 통해서 필요한 라이브러리 코드와 API 서버 코드도 작성 해볼 수 있으니 참고 할수 있습니다.
4. 일상 생활에서 적용 될 수 있는 ChatGPT API 활용 및 개발 사례
ChatGPT API는 일상 생활에서 다양한 방법으로 활용될 수 있습니다. 예를 들어, 고객 서비스 분야에서는 AI 기술을 활용해 고객 응대를 자동화하거나 AI 상담 서비스를 제공하는 데 활용될 수 있습니다. 콘텐츠 생성 분야에서는 자동 컨텐츠 작성이나 소셜 미디어 포스트 생성에 활용될 수 있습니다. 교육 분야에서는 개인화된 학습 도구나 가상 튜터 시스템 개발에 활용될 수 있습니다. 이러한 활용 사례들은 일상 생활에서 적용 될 수 있는 ChatGPT API 활용 및 개발 사례 글에서 자세히 확인 해 볼 수 있습니다.