[OpenAI] openai.chat.completions.create 파라미터

김민석·2025년 6월 12일
post-thumbnail

요금제 추천 챗봇에 필요한 openai.chat.completions.create 파라미터를 최적화하고 각 파라미터의 역할에 대해 알아보자!

요금제 추천 챗봇의 특징과 목표

  • 정확성 및 신뢰성: 잘못된 정보나 과장된 추천은 사용자에게 불이익을 줄 수 있어 정확한 정보를 기반으로 제공하도록 해야한다.
  • 일관성: 동일한 질문에 대해 예측 가능하고 일관된 답변을 제공하도록 해야 한다.
  • 명확성: 요금제 정보는 복잡하고 이해하기 어려울 수 있으므로 쉽고 명확하게 설명하도록 해야합니다.
  • 관련성: 사용자의 특정 요구사항(사용량, 통화량, 데이터 등)에 가장 적합한 요금제를 추천해야 합니다
  • 제한된 창의성: 불필요한 이야기나 창의적인 대답보다는 사실 기반의 정확한 정보를 제공하도록 해야합니다.
  • 주제 이탈 방지: 요금제 추천이라는 본래 목적에서 벗어나지 않도록 해야 합니다. 벗어날 시 에러처리? 응답이 불가하다 처리해주기

openai.chat.completions.create 파라미터

필수 파라미터

  • model: "gpt-4o-mini-RealTime" 또는 "gpt-4o-mini"
    => 실시간으로 오디오 및 텍스트 입력에 응답할 수 있는 GPT-4o-mini Realtime을 쓸 것 같다.
  • messages: messages
    설명: 이는 사용자와 챗봇 간의 대화 기록 배열 system 메시지를 통해 챗봇의 역할과 추천 원칙을 명확히 정의하는 것이 매우 중요함.

선택적 파라미터

  • temperature: 응답의 창의성(?) 조절 사실을 기반한 내용을 낮을수록낮을수록
    권장: 0.2 또는 0.3 (매우 보수적으로)
    설명: temperature는 응답의 무작위성/창의성을 조절합니다.요금제 추천 챗봇은 정확하고 일관된 답변이 중요하므로, 낮은 값으로 설정하여 예측 가능하고 사실에 기반한 응답을 유도해야 합니다. 높은 값은 창의성을 기반해 일관된 답변이 아닌 같은 질문을 해도 다른 대답을 하는 현상을 유발하여 잘못된 정보를 제공할 위험이 있습니다.

  • max_tokens: 챗봇의 답변 최대길이(최대 토큰)
    권장: 200~300
    설명: 챗봇의 답변 최대 길이를 제한합니다.요금제 설명은 너무 길 필요는 없지만 충분히 상세해야 합니다. 너무 길면 불필요한 정보가 포함될 수 있고 토큰제한이 있기 때문에 좋지 않습니다 또한, 너무 짧으면 설명이 부족할 수 있습니다.

  • top_p: 토큰 선택 시 누적 확률의 상한선을 설정
    권장: 0.9 또는 1.0
    설명: top_p는 토큰 선택 시 누적 확률의 상한선을 설정 temperature와 유사하게 응답의 다양성에 영향을 주지만 다른 방식으로 작동한다.

    • 일반적으로 temperature와 top_p 중 하나만 주로 사용하고, 다른 하나는 기본값으로 두는 경우가 많다.
  • frequency_penalty: 동일한 단어나 구문을 반복하는 것을 억제
    권장: 0.5
    설명: 모델이 동일한 단어나 구문을 반복하는 것을 억제합니다. 요금제 설명 시 특정 용어(예: '데이터', '통화')가 반복될 수 있으므로, 약간의 양수 값을 주어 답변이 좀 더 다양한 어휘로 구성되도록 돕는다.

  • presence_penalty: 새로운 주제나 기존 대화에 없던 아이디어를 도입하는 것
    권장: 0.2
    설명: 모델이 새로운 주제나 기존 대화에 없던 아이디어를 도입하는 것을 장려합니다. 요금제 추천 챗봇은 주제를 벗어나지 않는 것이 중요하지만 사용자가 미처 언급하지 않은 관련 요금제 정보(예: 결합 할인)를 제시하는 데 도움이 될 수 있습니다.

  • n: 1
    권장: 1
    설명: 생성할 응답의 개수입니다.

  • stop: [] (빈 배열) 모델이 답변 생성을 중단해야 하는 시퀀스입니다
    권장:
    설명: 챗봇의 답변이 특정 문자열에서 강제로 끊겨야 하는 특별한 경우가 아니라면, 기본값인 빈 배열을 사용하는 것이 좋습니다. \n\n은 때때로 응답을 너무 일찍 잘라낼 수 있습니다. 챗봇은 완전한 문장으로 응답하는 것이 중요하므로 굳이 사용할 필요는 없다.

챗봇 구현 시 중요사항

  • 프롬프트 엔지니어링: 단순히 파라미터를 조정하는 것보다 system 메시지와 user 메시지(프롬프트)를 얼마나 잘 구성하느냐가 챗봇의 성능에 가장 큰 영향을 미치기 때문에. 명확하고 구체적인 지시를 주어야한다.
  • 에러 핸들링: API 호출이 실패하거나, 모델이 예상치 못한 답변을 할 경우에 대한 에러 핸들링 로직을 잘 구현해야 합니다.
  • 테스트: 다양한 사용 시나리오와 질문에 대해 충분히 테스트하여 챗봇의 응답 품질을 확인하고 파라미터를 미세 조정하는 것이 중요.
profile
나만의 기록장

0개의 댓글