2023. 11. 9. 17:50

youtube CodingTheSmartWay - YouTube 를 보면서 해보고 있다.

한국어로 이론적인 설명은 여기 참조

파이썬 OpenAI API 접속하기, text completion create - 파이썬 OpenAI (1) (tistory.com)

 

파이썬 OpenAI API 접속하기, text completion create - 파이썬 OpenAI (1)

파이썬으로 OpenAI의 API에 접속하는 방법은 다음과 같습니다. 우선 OpenAI 계정(account)를 만들어야 합니다. 계정이 없는 경우 아래 문서의 OpenAI 가입방법을 참고합니다. chatGPT 가입하고 시작하기 / ch

digiconfactory.tistory.com

 

0. 개발환경 설정

 사실 개발환경 설정이 가장 어려운 분야이기도 하다. 어떤 컴에서는 되고 어떤 컴에서는 안되고 하니...

 하지만, 자신만의 개발환경을 구축하면 그다음부터는 열심히 코딩만 하면 되니 참 편하다

 우선, 좋은 컴퓨터가 있어야 한다. 꼭 비싼 컴퓨터일 필요는 없지만, 윈도우나 맥으로 컴퓨터/마우스/키보드는 필수이다.

 다음 파이썬을 설치해야 한다. 사실 여기가 가장 어려울 수 있는데, 챗GPT만을 위한 환경이라면, Anaconda를 추천한다.

  다음 편집기를 설치해야 한다. 메모장으로 충분할 수 있지만, 저는 Pycharm을 추천한다. 인텔리제이와 비슷한 환경이라

 자바 개발자에게도 친숙한 환경이다. 그밖에 VS Code, 쥬피터 노트북등을 이용할 수 있겠다.

1. OpenAI에 들어가서 키 발급하기

 여기는 돈이 든다. 소위 현금질이라고도 할수 있는데, 커피 몇잔 아낀다고 생각하고 과감히 결제한다. 일단 10달러 정도로 시작하면 될 듯 하다. 필자도 현재 9.98달러 남았는데, 예제 2개 돌려보니 이정도 빠지니까, 진짜 열심히 하면 한달내에 아니면 3~4개월은 갈 듯하다.

2. Hello World

import openai
import os

API_KEY = os.environ.get('OPENAI_API_KEY')
openai.api_key = API_KEY


# 되는 코드
model_engine = "text-davinci-003"
prompt = "오라클에 대해 설명해줘"

completion = openai.Completion.create(
engine=model_engine,
prompt = prompt,
max_tokens=1024,
n=1,
stop=None,
temperature=0.5,
)

response = completion.choices[0].text
print(response)
 
이렇게 하면 결과는
C:\Users\a\anaconda3\python.exe C:\Users\a\PycharmProjects\pythonProject2\chat.py 


오라클은 오라클 코리아에서 개발한 데이터베이스 관리 시스템(DBMS)입니다. 오라클은 관계형 데이터베이스를 사용하여 데이터를 저장하고 관리하는 데 사용됩니다. 오라클은 데이터베이스 관리 시스템 중 가장 널리 사용되는 관계형 데이터베이스 시스템 중 하나입니다. 오라클은 인간이 이해할 수 있는 사용자 친화적인 쿼리 언어를 제공하고, 데이터베이스 백업 및 복구, 보안, 관리 및 관리 등의 기능을 제공합니다. 또한 다양한 플랫폼에서 실행되며, 네트워크 기반의 데이터베이스 관리 시스템을 제공합니다.

Process finished with exit code 0
 
이렇게 나옴.
 

 

3. 스트리밍 방식으로 응답 처리 접근

 

터미널에서 pip install requests
pip install sseclient-py
2개의 라이브러리를 설치한다.
 
import requests
import json
import sseclient

# import openai
import os

API_KEY = os.environ.get('OPENAI_API_KEY')
# openai.api_key = API_KEY

def performRequestWithStreaming():
reqUrl = 'https://api.openai.com/v1/completions'
reqHeaders = {
'Accept': 'text/event-stream',
'Authorization': 'Bearer ' + API_KEY
}
reqBody = {
"model": "text-davinci-003",
"prompt": "파이썬은 무엇인가?",
"max_tokens": 1024,
"temperature": 0,
"stream": True,
}
request = requests.post(reqUrl, stream=True, headers=reqHeaders, json=reqBody)
client = sseclient.SSEClient(request)
for event in client.events():
if event.data != '[DONE]':
print(json.loads(event.data)['choices'][0]['text'], end="", flush=True)

if __name__ == '__main__':
performRequestWithStreaming()

 

 

결과는 다음과 같다.

C:\Users\a\anaconda3\python.exe C:\Users\a\PycharmProjects\pythonProject2\chat2.py 


파이썬은 객체지향 프로그래밍 언어로, 인터프리터 언어로 만들어진 고급 프로그래밍 언어입니다. 파이썬은 다양한 응용 분야에서 사용되며, 웹 개발, 시스템 스크립트, 데이터 분석 및 인공 지능 분야에서 널리 사용됩니다. 파이썬은 다양한 플랫폼과 운영 체제에서 실행되며, 다양한 프로그래밍 스타일을 지원합니다.
Process finished with exit code 0

Posted by 다만사