Openai

Sam (토론 | 기여)님의 2023년 10월 30일 (월) 14:42 판

1 개요

Openai의 기능을 사용하기 위한 라이브러리.

ChatGPT API를 쉽게 사용하게 돕는 라이브러리.

2 사전 준비

과정 설명 비고
라이브러리 설치 openai의 기능을 쉽게 사용하게 해주는 라이브러리. pip install openai
API 키 발급 ChatGPT를 사용하기 위한 API키를 발급받는다. https://platform.openai.com/account/api-keys
클라이언트 설정 파이썬에서 가장 처음 시작되는 코드.
import openai

openai.api_key = "API키 넣을 자리"
completion = openai.Completion()
모델 설정 openai.Model.list()

위 코드로 모델 리스트를 볼 수 있다..만, 아래 링크를 참조하자.

https://platform.openai.com/docs/models/overview

요금정보 Fine Tunning도 가능하다. 다양한 모델과 미세조정을 위한 요금은 비고를 참고하자.

결제는 이곳에서.

요금표. https://openai.com/pricing#language-models

3 사용

3.1 기본 형태(채팅)

기본 형태가... 결과물에 따라 천차만별이 된다. https://platform.openai.com/docs/introduction를 보며 만들어가는 게 좋을듯.

과정 설명 비고
기본 형태 일반적으로 웹사이트에서 이용하는 형태의 응답을 주고받기 위한 형태.
import openai

openai.api_key = "API키 넣을 자리"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo"
    messages=[
        {'role':'user', 'content':'작성하고 싶은 프롬프트'}
        ]
    )
    
print(response['choices'][0]['message']['content'])  # 응답 중 답변만 추출한다.
역할 부여. message 안에서 역할을 부여할 수 있다. 다음과 같이 수정한다.
messages=[
    {'role':'system','content':'부여할 역할을 설명해 전달한다.'},
    {'role':'user','content':'물어보고 싶은 내용.'}
    ]
이전 대화 기억. 이전 대화를 기억해 마치 사람과 대화하듯..

이전 대화에 대한 정보를 넣는 데에도 토큰을 사용하니 유의하자.

다음과 같이 수정한다.
messages=[
    {'role':'system','content':'부여할 역할을 설명해 전달한다.'},
    {'role':'user','content':'이전에 물어본 내용.'},
    {'role':'assistant', 'content':'물어본 내용에 대한 답.'},
    {'role':'user','content':'새로이 물어볼 내용.'}
    ]
위처럼 assistant와 user를 추가해 전달하면 이전 대화를 기억하는 것처럼 작동한다.

3.2 기본 형태(채팅이 아닌 단답 문장 완성형)

위와 다른 점만 기입하겠다.

채팅형 단답형
import openai

openai.api_key = "API키 넣을 자리"

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo"
    messages=[
        {'role':'user', 'content':'작성하고 싶은 프롬프트'}
        ]
    )
    
print(response['choices'][0]['message']['content'])  # 응답 중 답변만 추출한다.
  1. openai.ChatCompletion.create 대신 openai.Completion.create을 사용한다.
  2. model이 아닌, engine에 모델명을 기입한다.
  3. messages가 아닌 prompt가 텍스트 형태로 input이 된다.
import openai
openai.api_key = "API키 넣기."
# 조건
model = 'text-davinci-003'  # 선택할 수 있게! ex) gpt-3.5-turbo
max_tokens = 1700  # 입력에 1000정도 사용해서. 출력은 700 이하가 되게끔.

response = openai.Completion.create(
    engine=model,
    prompt='api 사용을 시도해보고 있어. 아무 말이나 해봐~',
    max_tokens=max_tokens
)
print(response)
print('답변')
print(response['choices'][0]['text'])  # 응답 중 답변만 추출한다.
response = response['choices'][0]['text']