기타

OpenAI completion endpoint 맛보기

한땀코딩 2023. 5. 21. 23:07

chatGPT, 나도 활용해볼 수 있을까?

업무와 업무 외적으로도 최근에 chatGPT를 굉장히 잘 사용하고 있습니다. 코드를 물어보기도 하고, 무엇보다 아이디어를 얻기 위해서 많이 사용하고 있었는데요, 정작 직접 Open API를 호출해 본 적이 없다는 걸 깨달았습니다. 이제는 이런 생성형 AI가 활성화되면서 내가 직접 백지부터 창조해 내는 것보다 AI를 활용하여 모든 것을 만들어가는 방향으로 변화할 거 같다는 생각이 듭니다.

그래서 일단 시작을 해보자는 마음으로 간단하게 ‘긍정 확언’을 자동으로 생성하는 페이지를 만들어보았습니다. (매번 유튜브에서 긍정 확언 영상들을 찾다가 그냥 새롭게 생성해주는 사이트가 있으면 좋겠다 싶었습니다 😂) 코드는 공식 예제에서 제공하는 레포에서 config와 프롬프트만 간단하게 고쳐보는 방향으로 작업했습니다.

이런 식으로 매번 생성할 때마다 결과가 조금씩 다르게 나옵니다

openAI Introduction

OpenAI API

openAI에서는 단순히 chatGPT 같은 채팅 형태만이 아니라 다양한 AI 기반 기능을 제공하고 있는데, 그 중에서 생성(generation)과 관련이 있는 것이 text completion 엔드포인트입니다. 공식 사이트에서 제공하고 있는 예시처럼 ‘동물 이름을 지어줘’ 나 ‘아이스크림 가게 슬로건을 만들어줘’ 같은 프롬프트를 입력하면 이름과 슬로건을 실제로 생성해 줍니다.

openAI는 결과가 deterministic 하지 않습니다. 즉, 매번 조금씩 결과가 다르게 나오는데, 좀 더 랜덤성을 높이고 싶다면 temperature 값을 높이는 방법이 있습니다.

프롬프트 디자인

결국 openAI 생성 모델에게는 프로픔트를 정확히 입력하는 것이 중요한데, 공식 가이드는 다음 세 가지 방법을 제시하고 있습니다.

  1. 원하는 결과의 형태를 정확히 설명하고 보여줄 것. 예시를 제공하면 좋습니다.
  2. 정확한 데이터를 넘길 것
  3. 설정을 정확히 확인할 것. 창조적인 걸 원한다면 tempearturetop_p값을 높여야겠지만, 정확도가 중요하다면 반대로 낮춰야 할 수도 있습니다.

활용 가능한 영역

단순 생성 외에도 Completion 모델이 활용될 수 있는 영역은 다양합니다.

  • Classification - 예) 특정 트윗의 감정을 분류
  • Generation - 예) VR과 피트니스를 섞은 아이디어
  • Conversation - 지시한 톤앤매너와 행동 가이드를 기반으로 대화
  • Transformation - 한 가지 형태로 쓰인 내용을 다른 형태로 변형. 번역도 여기에 포함
  • Summarization - 요약
  • Completion - 중간에 끊긴 문장 등을 마저 이어서 마무리
  • Factual Responses - 실제 같지만 사실은 가공된 답안을 생성
  • Inserting Text - 뒷부분을 마저 채우는 느낌이나, suffix 설정 등을 통해 끝 문장 등을 제공하여 중간 내용을 생성
  • Editing Text - 제공된 텍스트를 안내한 가이드 대로 수정

다음 스텝

OpenAI API 호출 자체는 굉장히 간단해서 테스트로 만들어본 이 사이트를 디자인과 코드를 다듬어서 배포를 해볼 계획입니다. 긍정 확언은 지금은 굉장히 범용적이고 표현들도 추상적인데, 사용자가 원하는 카테고리를 고를 수 있도록 프롬프트도 수정해보려고 합니다.