본문 바로가기
개발&코딩/AI

Open AI API 사용법과 기본적인 예제

by 우동이 2023. 2. 6.
300x250

작업환경

  • Visual Studio Code 1.74.3
  • Python 3.11.1
  • openai 0.26.4

 

들어가기 전에 적는 몇 자..

영어가 안되니 문서를 봐도 정확히 이해가 안 되는 부분이 많아서 외국 유튜버 코드를 보면서 

클론 코딩 했습니다. API Key도 만료된 걸 몰라서 그거 해결하는데도 시간을 좀 썼네요


>>  OpenAI QuickStart Code 사용법

git clone https://github.com/openai/openai-quickstart-python.git

cd openai-quickstart-python
cp .env.example .env

pip install -r requirements.txt
flask run

 

코드 설명

  • quickstart code를 git에서 복사해 옵니다.
  • . env 파일은 API Secret Key를 입력해 두는 파일입니다.
  • python 프로젝트는 flask로 작동합니다.

 

여기서 물론 API Key는 발급받은 상태로 자신의 Key값을. env파일에 입력해주어야 합니다.

 

.env

QuickStart 코드는 개와 고양이의 이름에 대한 간단한 작명 기능을 제공하는 OpenAI 라이브러리의

기능을 간단히 맛볼 수 있습니다.

 


>>  OpenAI 기초 예제 - prompt, model, max_tokens, temperature, response

import openai

API_KEY = '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'
openai.api_key = API_KEY

prompt= '''How big is the moon?
What's the Chicago's population?

'''

response = openai.Completion.create(
    prompt = prompt,
    model = 'text-davinci-003',
    max_tokens=1000,
    temperature=0.9,
    n=3,
    stop=['---']
)
#print(response)
#print(response.usage.total_tokens)
for result in response.choices:
    print(result.text)

 

문법 설명

  • prompt : 질문할 텍스트 값
  • model : 사용할 openai 모델(text-davinci...)
  • max_tokens : 완료 시 생성할 최대 토큰 수 즉 질문의 응답 길이가 이 토큰을 초과할 수 없다.
  • temperature : 온도, 샘플링에 대한 온도이며 온도의 높낮이에 따라 질문 응답의 차이가 존재합니다.
    • 통상적으로 더 위험을 감수한 창의적인 대답을 원하면 0.9
    • 정의된 답이 있는 경우를 상정하면 0을 사용합니다.
  • n : 정수, 프롬포트에 대한 완료 여부에 대한 제어 매개변수입니다.
  • stop : API가 토큰 생성을 중지, 즉 정지값

 

이 문법에 대한 설명이 좀 애매모호하다는 느낌이어서 사용해 보고 이해한 느낌으로 적었습니다.

 

즉 모델을 선정해 prompt로 질문을 하여 그에 대한 응답을 받는 것이 이 API의 핵심적인 역할이며

max_tokens으로 최대 prompt 토큰을 제한하며 (모델마다 max_tokens값이 존재합니다.)

temperature로 응답의 수준을 조절합니다.

n, stop으로 응답을 제어합니다.

 

위 코드는 davinci-003 모델에게 달의 크기와 시카고의 인구수를 물어보는 코드이며

결과를 for문으로 돌려받습니다.

 

 

 

prompt : 달의 크기, 시카고 인구

3개의 답이 각 prompt 두 개에 맞게 6개의 결괏값이 출력되었습니다.

 

response

 

응답구조를 확인하고 싶으면 response를 출력하는 것으로 확인가능합니다.

print(response)

response에서는 각 어떤 값이 사용되는지 확인할 수 있었습니다.

 


참고

 

다른글

 

iptables 방화벽 총정리 

 

 

보안 인프라 구축

 

 

TwitterAPI V2 사용법

 

300x250

댓글