개발

[개발] ChatGPT API를 활용한 가장 간단한 Python 예제 코드

성민석 2023. 7. 20. 09:00

평소에도 가장 애용하고 있는 서비스 중 하나인 ChatGPT.

 

제가 이걸 웹이나 앱과 같은 플랫폼이 아니라 직접 API를 이용하여 개발할 때 어떻게 해야하나 의문이 드는 경우가 있었습니다.

 

그래서 오늘은 정말 간단하게 사용할 수 있는 Python 핵심 코드만 가져왔습니다.

 

이걸 응용하여 입맛에 맞게 개발하시면 될 것 같습니다.

 

import openai

# 여기에 발급하신 API KEY를 넣으세요
# https://platform.openai.com/account/api-keys
YOUR_API_KEY = 'sk-XXXXXXXXXXXXXXXXXXXXXXX' 

def chatGPT(prompt, API_KEY=YOUR_API_KEY):
    
    # set api key
    openai.api_key = API_KEY

    # Call the chat GPT API
    completion = openai.Completion.create(
        engine='text-davinci-003',  # 'text-curie-001'  # 'text-babbage-001' #'text-ada-001'
        prompt=prompt,
        temperature=0.5,
        max_tokens=1024,
        top_p=1,
        frequency_penalty=0,
        presence_penalty=0
    )

    return completion['choices'][0]['text']

prompt = input("질문: ")

result = chatGPT(prompt).strip()

print('\대답: {}'.format(result))

 

아래는 ChatGPT API를 이용한 예시입니다.

 

처음에 시스템 트레이딩을 입문하시는 분들이 참고하여 공부하시면 정말 좋을 것 같습니다. :)

(물론 대답해주는 내용이 항상 맞지 않으니 이 부분은 주의해야할 것 같습니다.)

 

질문: "Binance API를 이용해서 실시간 데이터를 수신하여 변동성 돌파 전략을 수행시키는 Python 코드를 제시해줘."

대답:

import time
import pandas as pd
from binance.client import Client

# Binance API 접속 정보
api_key = 'YOUR_API_KEY'
api_secret = 'YOUR_API_SECRET'

# Binance API 접속
client = Client(api_key, api_secret)

# 실시간 데이터 수신
while True:
    # 실시간 데이터 수신
    klines = client.get_historical_klines("BTCUSDT", Client.KLINE_INTERVAL_1MINUTE, "1 day ago UTC")
    df = pd.DataFrame(klines, columns=['Open time', 'Open', 'High', 'Low', 'Close', 'Volume', 'Close time', 'Quote asset volume', 'Number of trades', 'Taker buy base asset volume', 'Taker buy quote asset volume', 'Ignore'])
    last_close = df.iloc[-1]['Close']

    # 변동성 돌파 감지
    if last_close > df.iloc[-2]['Close']:
        print('변동성 돌파 감지!')

    time.sleep(60)

 

더 많은 모듈이나 구체적인 인자와 관련된 부분은 공식 홈페이지를 확인해보시면 될 것 같습니다.

https://platform.openai.com/docs/guides/gpt

 

OpenAI Platform

Explore developer resources, tutorials, API docs, and dynamic examples to get the most out of OpenAI's platform.

platform.openai.com

 

728x90
반응형