반응형

Chat Completion API란?

Chat Completion API는 대화형 AI 모델과 상호작용할 수 있게 해주는 API입니다.

이 API는 기본적으로 사용자가 입력한 메시지에 맞는 응답을 생성하는 역할을 합니다.

 

간단히 말해, 사용자가 질문을 하면 AI 모델이 답변을 생성하는 대화 구조를 만들 수 있는 도구입니다.

이 API를 이용하면 사용자는 대화의 흐름을 관리하고, 시스템 명령을 통해 AI의 동작 방식을 세밀하게 제어할 수 있습니다.

예를 들어, AI에게 특정 역할을 부여하거나, 대화의 주제를 설정하는 등 다양한 방식으로 활용 가능합니다.

Chat Completion API의 핵심 구성 요소

  1. Messages: 사용자가 AI 모델에게 전달하는 메시지입니다. 사용자는 이 메시지를 통해 질문이나 명령을 내리고, AI는 이를 바탕으로 응답을 생성합니다.
  2. System (시스템 명령): 대화의 전반적인 흐름을 설정하는 명령어입니다. 예를 들어, 시스템 명령으로 AI에게 "당신은 친절한 도우미입니다"라는 역할을 부여할 수 있습니다. 이 명령을 바탕으로 AI는 응답할 때 더욱 친절하고 도움이 되는 방향으로 답변을 생성하게 됩니다.
  3. User (사용자): 이 부분은 대화에서 사용자가 직접 입력하는 메시지입니다. 예를 들어 "오늘 날씨가 어때?"와 같은 질문을 던지면 AI는 이 메시지를 받아서 응답을 생성합니다.
  4. Assistant (AI 모델): 사용자의 메시지에 응답하는 역할을 담당합니다. AI 모델은 이전에 입력된 시스템 명령과 사용자 메시지를 바탕으로 최적의 답변을 생성합니다.

Chat Completion API의 동작 과정

1. 시스템 초기화 (System)

시스템 명령은 대화에서 매우 중요한 역할을 합니다. 시스템 명령을 통해 대화의 톤과 성격을 설정할 수 있습니다.
예를 들어, AI에게 특정 상황을 상상하도록 지시하거나, 특정 지침을 제공할 수 있습니다.

  • 예시: "You are a helpful assistant." (당신은 친절한 도우미입니다.)

이 문장은 AI 모델이 대화에서 어떤 역할을 할지를 결정해 줍니다. 이 설정을 통해 AI가 응답할 때 더 도움 되는 방향으로 답변을 생성합니다.

2. 사용자의 메시지 (User)

사용자는 직접 대화의 흐름을 이끌어가는 메시지를 입력합니다.
예를 들어, 사용자가 "안녕, 오늘 날씨가 어때?"라고 질문을 입력하면, 이 메시지가 AI에게 전달되어 응답이 생성됩니다.

  • 예시: "안녕, 오늘 날씨가 어때?"

3. AI의 응답 (Assistant)

AI 모델은 사용자가 보낸 메시지와 시스템 명령을 참고하여 적절한 응답을 생성합니다.
예를 들어, 시스템 명령에서 "친절한 도우미"라는 설정이 있었다면, AI는 그 설정에 맞춰 더 친절하고 유용한 응답을 생성합니다.

  • 예시: "안녕하세요! 오늘 날씨는 맑고 따뜻해요."

Python을 이용한 Chat Completion API 예제

이제 실제로 Python 코드를 통해 Chat Completion API를 어떻게 사용할 수 있는지 예시를 보여드릴게요.
이 코드는 API를 호출하고, 사용자와 AI 간의 대화를 구성하는 방식입니다.

Python 코드 예시

import openai

# OpenAI API 키 설정
openai.api_key = 'your-api-key'

# 대화 메시지 설정
messages = [
    {"role": "system", "content": "You are a helpful assistant."},  # 시스템 명령: AI의 역할을 지정
    {"role": "user", "content": "안녕, 오늘 날씨가 어때?"},          # 사용자의 질문
    {"role": "assistant", "content": "안녕하세요! 오늘 날씨는 맑고 따뜻해요."}  # AI의 미리 설정된 응답
]

# Chat Completion API 호출
response = openai.ChatCompletion.create(
  model="gpt-4",  # GPT-4 모델 사용
  messages=messages  # 메시지 전달
)

# AI의 응답 출력
print(response['choices'][0]['message']['content'])

코드 설명

  1. API 키 설정: 먼저, OpenAI API를 사용하기 위해 API 키를 설정해야 합니다. 이 키는 OpenAI에서 발급받은 개인 키를 사용해야 합니다.
  2. Messages 리스트: messages는 시스템 명령, 사용자 메시지, AI 응답을 모두 포함하는 대화의 흐름을 정의한 리스트입니다. 각각의 메시지에는 역할(role)과 내용(content)이 포함됩니다.
    • System: AI에게 역할을 설정하는 명령입니다.
    • User: 사용자가 입력한 메시지입니다.
    • Assistant: AI가 생성한 응답을 나타냅니다.
  3. ChatCompletion API 호출: openai.ChatCompletion.create 함수를 이용해 모델에게 메시지를 보내고, AI가 그에 맞는 응답을 생성하게 됩니다.
  4. 응답 출력: API로부터 받은 응답은 response['choices'][0]['message']['content']를 통해 출력할 수 있습니다. 이 응답은 AI가 사용자에게 제공하는 답변입니다.

Chat Completion API 사용 시 유용한 팁

  1. 시스템 명령을 잘 활용하기: 시스템 명령을 통해 AI의 톤이나 역할을 세밀하게 조정할 수 있습니다. 예를 들어, AI에게 "친절한 선생님처럼 행동하라"라고 설정하면, AI는 더 설명이 풍부하고 친절한 답변을 제공할 것입니다.
  2. 대화의 흐름 관리: messages 리스트에 다양한 사용자 메시지와 AI 응답을 포함시킬 수 있습니다. 이를 통해 대화의 맥락을 유지하면서 복잡한 대화 흐름을 만들 수 있습니다.
  3. 모델 선택: model="gpt-4"은 최신 모델인 GPT-4를 사용하는 예시입니다. GPT-4는 대화에서 더 정교한 응답을 생성할 수 있습니다. 필요에 따라 다른 모델을 사용할 수도 있습니다.

 

Openai Playground 실습

0. 동작 프로세스 이해하기

-> 이 경우는 Instruction으로 주었는데, 가끔 json 형식이 아닌 방식으로 발생할 가능성도 있다. (name : BTS)

 

-> 그래서 이렇게 Output Mod 설정으로 항상 json 형태로 출력해주게 한다!

 

1. API 키 추가

 

* API 이용 시 비용이 발생하니 주의!

 

2. 사용 가능한 모델 확인

https://platform.openai.com/docs/models/gpt-4o

 

3. Chat Completions API 파라미터 가이드

Chat Completions API는 다양한 파라미터를 통해 AI의 응답을 더욱 세밀하게 제어할 수 있습니다.

그 중 대표적인 파라미터인 temperature, top_p, n에 대해 설명하고, 실전 예시를 통해 어떻게 활용할 수 있는지 소개합니다.


1) Temperature 파라미터

  • Temperature는 모델이 응답을 생성할 때 얼마나 무작위적일지를 조절하는 파라미터입니다.
    이 값을 높이면 답변이 더 창의적이고 다양하게 나옵니다.
    • 예: temperature=0.8 → 답변이 창의적이고 무작위적
    • 예: temperature=0.2 → 답변이 집중적이고 예측 가능

사용 예시

temperature=0.2

위의 값처럼 temperature를 낮게 설정하면, 모델이 보다 정확하고 일관된 답변을 생성하게 됩니다.

이를 통해 사용자는 더욱 구체적이고 예측 가능한 응답을 받을 수 있습니다.


2) Top_p 파라미터

  • Top-p는 모델이 응답을 생성할 때 누적 확률을 기반으로 상위 몇 퍼센트의 토큰(단어)을 고려할지를 결정합니다.
    이는 temperature와 함께 사용할 때 더욱 유용합니다.
    • 예: top_p=0.1 → 상위 10% 확률의 단어들만 고려하여 응답 생성

이 파라미터는 API 요청에서 응답의 다양성을 더 조정하고 싶을 때 사용합니다.


3. n (생성할 선택지 수)

  • n 파라미터는 한 번의 요청에서 몇 개의 응답을 생성할지를 결정합니다.
    기본적으로 하나의 응답만 생성하지만, 여러 개의 응답을 받고 싶을 때 n 값을 조정할 수 있습니다.

사용 예시

n=2

이 설정은 2개의 응답을 생성하도록 합니다.

여러 개의 응답을 받고 싶거나, 비교를 통해 가장 적합한 응답을 선택하고자 할 때 유용하게 사용할 수 있습니다.


4) 실전 코드 예시

아래는 gpt-3.5-turbo 모델을 사용해 temperature와 n 파라미터를 설정한 Chat Completion API 호출 예시입니다.

이 코드는 각 질문에 대해 2개의 응답을 생성하고, 이를 비교해 볼 수 있습니다.

completion = client.chat.completions.create(
  model="gpt-3.5-turbo",    # GPT-3.5 모델 사용
  temperature=0.2,          # 응답의 무작위성을 낮추어 집중적이고 예측 가능한 응답 생성
  n=2,                      # 2개의 응답 생성
  messages=[
    {"role": "system", "content": "당신은 유용한 조력자입니다."},  # 시스템 명령
    {"role": "user", "content": "잔잔한 드라마 줄거리를 작성해줘"},  # 사용자의 질문
    {"role": "assistant", "content": "어떤 느낌의 줄거리를 원하시나요?"},  # AI의 응답
    {"role": "user", "content": "시골 동네 이야기를 작성해줘"}  # 사용자의 두 번째 질문
  ]
)

print(completion.choices[0].message.content)  # 첫 번째 응답
print("\n")
print(completion.choices[1].message.content)  # 두 번째 응답

 

Chat Completions API는 다양한 파라미터를 통해 AI의 응답을 세밀하게 조정할 수 있습니다.

temperature로 응답의 창의성과 예측 가능성을 제어하고, n 파라미터로 여러 선택지를 생성하여 다양한 답변 중 가장 적합한 것을 선택할 수 있습니다.

이 파라미터들을 잘 활용하면 더 창의적이고, 상황에 맞는 AI 응답을 얻을 수 있습니다.

API를 사용해 대화를 설계할 때는 이 파라미터들을 적절히 사용해 보세요!

 

 

반응형

'IT 기술 > AI' 카테고리의 다른 글

[AI] AI 모델 테스트 및 레드팀의 필요성  (4) 2024.09.17
[AI] RAG  (5) 2024.09.13
[AI] ChatGPT, Bard, Claude, LLaMA 비교  (8) 2024.09.12
[AI] OpenAI Playground  (2) 2024.06.05
[AI] 대규모 언어 모델(LLM)을 알아보자  (0) 2024.06.05

+ Recent posts