본문으로 건너뛰기
  1. Posts/

Open AI API 응용 (2) - Open AI API 사용을 위한 등록 방법과 Request 구성 방법 및 Response 분석 방법

·3 분· loading · loading ·
Sseung
Techtopic Chatgpt Openai Api
InnoFactory
작성자
InnoFactory
스마트팩토리, 산업자동화, Digital Transformation, 디지털팩토리, PLM, ALM, Digital Manufacturing, Visualization, 3D CAD, Digital Twin, Big Data, IIoT 솔루션 전문업체
작성자
SeungHyeon Lee
R&D Center Developer
Open AI API 응용 - 이 글은 시리즈의 일부입니다.
부분 2: 이 글

본 포스팅 시리즈에서는 최근 트랜드였던 ChatGPT에 대한 개요와 OpenAI에서 제공하는 AI 언어모델 API를 이용한 응용 사례들, OpenAI에서 제공하는 각종 모델의 특징들에 대해 안내하고 더 나아가 OpenAI에서 제공하는 AI 언어모델 API 사용법, 인공지능 모델에 목표를 부여하고 특정 방향성으로 응답하도록 하는 인공지능 튜닝방법 까지 소개할 예정입니다.

이번 포스트는 두번째 시리즈로서, 실질적인 Open AI API 사용을 위한 사전 준비 방법과 Request/Response 구성/분석 방법에 대해 소개하겠습니다.

Open AI API 사용을 위한 사전 준비
#

계정 등록
#

OpenAI 사이트에 접속해 우측 상단의 Sign up 버튼을 통해 회원가입을 진행합니다.

계정 설정
#

우측 상단의 프로필을 클릭해 뜨는 컨텍스트 메뉴에서 Manage account메뉴를 통해 계정 관리로 접근할 수 있습니다.

image-20231031105112833

Manage account메뉴의 Settings에서 Organization setting > Organization name을 변경해 주는것이 좋습니다.

추후 모델 튜닝 시 튜닝된 모델명에 Organization name이 들어가게 됩니다.

Usage메뉴에서 토큰의 기간 별 사용량을 추적할 수 있으며, Billing 메뉴에서 요금 충전과 자동 충전 설정이 가능합니다.

API keys 메뉴에서 API 키를 발급받고 관리할 수 있습니다.

모델 선정
#

Manage account메뉴 > Organization - Rate limits 메뉴에서 API에서 사용가능한 모델의 목록과, 모델 별 속도 제한에 대한 정보를 확인할 수 있습니다.

image-20231031184951694

Open AI API Request/Response 구성/분석 방법
#

Open AI에서 제공하는 API는 Text 처리 모델 뿐만 아니라, 이미지, 오디오 특화 모델 또한 있지만, 본 시리즈에서는 가장 기본적인 Text 처리 모델을 기준으로 소개하겠습니다.

API Test 툴 Postman을 사용해 Open AI Request / Response 구조 예시를 테스트 해보겠습니다.

사용 모델은 gpt-3.5-turbo-0613로 이노팩토리 챗봇용으로 파인 튜닝한 모델을 사용해 보겠습니다.

Request 구성
#

먼저 API 사용을 위해 API keys 메뉴에서 발급한 API 키를 Authorization에 Bearer 토큰 타입으로 세팅하고, 헤더에 Content-Type을 application/json로 설정합니다.

다음은 Postman으로 구성한 Request body입니다.

이 중 필수 필드는 model과 messages로, 사용 모델에 따라 messages의 구성 형태가 상이 할 수 있습니다.

아래의 예제에서 사용한 이노팩토리 챗봇용으로 파인 튜닝한 모델인 gpt-3.5-turbo-0613은 messages에 role과 content로 구성된 메시지를 담아서 사용하며, role을 달리해 모델의 방향성을 결정할 수 있는 정보를 추가 할 수 있습니다.

예를 들어, 아래의 예제에서는 system role을 사용하여 모델에게 이노팩토리 회사 챗봇의 역할을 부여하여 사용자가 “안녕하세요” 라고 대화를 시도했을 때, 적절한 역할에 따른 답변을 하도록 조정하는 조정어를 줄 수 있습니다.

그 외에도 assistant role을 사용하여 모델의 답변에 도움이 되는 정보를 추가할 수 있습니다.

image-20231031121647026

아래는 Request body에 설정되는 속성들의 세부 내용입니다.

속성명 타입 설명 비고
messages array 메시지 목록 필수
model string 사용할 모델의 ID 필수
frequency_penalty number or null 동일한 말을 반복할 가능성, 빈도를 조정하는 옵션 Defaults to 0
function_call string or object 모델이 함수를 호출하는 방법을 제어하는 옵션
functions array 모델이 JSON 입력을 생성할 수 있는 함수 목록
logit_bias map 특정 지정 토큰이 대답으로 사용될 가능성 조정값 Defaults to null
max_tokens integer or null 대화 시 생성할 최대 토큰 수 제한
n integer or null 각 입력 메시지에 대한 응답 선택 개수 Defaults to 1
presence_penalty number or null 동일한 주제를 반복할 가능성을 조정하는 옵션 Defaults to 0
stop string / array / null API가 추가 토큰을 생성하는 것을 강제 중지하는 종료단어 Defaults to null
stream boolean or null 이전 대화를 기억하고 그 내용을 토대로 대화를 이어 나가는지에 대한 여부 Defaults to false
temperature number or null 답의 정확도와 핵심내용 집중 여부를 결정하는 수치 Defaults to 1
top_p number or null 모델이 응답하기 위한 토큰 후보들에 할당되어있는 확률질량 제한 수치 Defaults to 1
user string 사용자를 나타내는 고유 식별자

Response 구성
#

위의 내용을 토대로 요청을 보내 Response 받을 수 있습니다.

응답은 Chat Completion 객체를 반환받으며, stream 옵션이 활성화 되어있던 경우에는 Chat Completion chunk를 반환받습니다.

image-20231031133117213

Open AI API 라이브러리
#

Open AI 에서는 API 사용을 위한 라이브러리를 제공하고 있으나, Python과 Node.js, Azure 라이브러리만 제공되고 있습니다.

API 응용을 위한 Java 라이브러리는 Community libraries가 공식 문서에 안내되어있습니다.

자세한 내용은 Open AI API Libraries에서 확인할 수 있습니다.

다음 포스팅에서는 Open AI API를 사용한 챗봇 만들기 예시를 통해 AI 모델의 파인 튜닝 방법과 응용법에 대해 소개하겠습니다

연관된 글
#

Open AI API 응용 - 이 글은 시리즈의 일부입니다.
부분 2: 이 글

관련 글

Open AI API 응용 (1) - Open AI에서 제공하는 Chat GPT 서비스 소개와 API 사용법 개요
·4 분· loading · loading
Sseung
Techtopic Chatgpt Openai Api
OpenAI에서 개발한 대화형 인공지능 챗봇인 ChatGPT가 공개된 이후 상세하고 정교한, 자연스러운 답변으로 많은 주목을 받았고 AI 챗봇의 가능성 및 응용법에 대한 관심이 높아졌습니다.