개발/ChatGPT

6. ChatGPT 사용법 - 파이썬 개발 초간단 예제(1)

디앤서관리자 2023. 5. 26. 21:48

ChatGPT API 사용하는 법 초간단 예제를 아래 순서로 포스팅 합니다.

내용이 유익하셨다면, 구독/댓글/좋아요 부탁드립니다.

  1. Simple Tutorial 만들기
  2. ChatGPT 와 연속적인 대화 만들기
  3. 사전 Prompt 적용하기

Chatgpt 파이썬 개발 예제 1

해당 포스팅은 1. Simple Tutorial 만들기 관련 한 글입니다.

아래 코드를 IDE 에 복사/붙여넣기 하셔서 사용하시면 됩니다.

 

import os
import openai

openai.api_key = os.getenv('OPENAI_KEY')

def generate_response(prompt):
    response = openai.Completion.create(
        engine='text-davinci-003',
        prompt=prompt,
        max_tokens=1024,
        temperature=0.7,
        n=1,
        stop=None,
    )
    return response.choices[0].text.strip()

# 대화 시작
prompt = "사용자: 안녕하세요!"
while True:
    user_input = input("사용자: ")
    prompt += "\n사용자: " + user_input
    response = generate_response(prompt)
    print("ChatGPT:", response)

 

위와 같이 입력한 후 실행시키면 된다.

비전공자를 위해 추가적인 설명까진 못하더라도,

아래 개발환경을 검색하다보면 수 많은 자료들이 존재하니 참고하시길..

 

개발환경은 다음과 같다.

IDE: Pycharm

Language: Python

 

실행화면은 아래와 같은데, 문제가 보인다.

chatgpt 개발 결과1

위와 같이 대화간에 문맥을 기억(memory) 하지 못하는 현상이 발생한다.

 

위 문제 해결법은 다음 포스팅에서 설명 예정이다.

 

비개발자를 위해 위 코드를 간략히 설명하자면,

openai.Completion.create 함수를 호출했다.

함수 호출은 명령을 내렸다고 생각하면 되고, 명령에 대한 Setting 들을 상세히 할 수 있게 된다.


engine (문자열, 필수): 사용할 GPT 엔진을 지정합니다. 예를 들어, "text-davinci-003"와 같은 엔진 ID를 사용할 수 있습니다. 이 매개변수는 필수입니다.

prompt (문자열, 필수): GPT 모델에 전달되는 텍스트로, 사용자의 입력 또는 대화의 시작점을 나타냅니다. GPT 모델은 이전 텍스트를 기반으로 다음 텍스트를 생성합니다. 이 매개변수는 필수입니다.

max_tokens (정수): 생성된 응답에서 반환할 최대 토큰 수를 제한합니다. 이를 통해 응답의 길이를 제어할 수 있습니다.

temperature (부동소수점 수): 응답의 창의성을 조절하는 데 사용되는 매개변수입니다. 값이 낮을수록 더 일관된 응답이 생성되며, 값이 높을수록 더 다양하고 창의적인 응답이 생성됩니다.

top_p (부동소수점 수): 응답에서 선택할 토큰의 최소 누적 확률 임계값을 설정합니다. 이를 통해 응답의 다양성을 조절할 수 있습니다. 예를 들어, 0.9로 설정하면 상위 90%의 확률을 가진 토큰만 고려됩니다.

n (정수): 생성할 응답의 수를 지정합니다. 여러 개의 응답을 생성하여 다양한 선택지를 제공할 수 있습니다.

stop (문자열 또는 배열): 응답을 생성하는 데 사용되는 중지 문자열입니다. 이 문자열이 나타나면 응답 생성이 중단됩니다. 기본값은 None이며, 중지 문자열이 없음을 의미합니다.

temperature, top_p, n, stop은 모두 응답 생성의 성격과 품질을 조절하는 데 사용되는 매개변수입니다. 이러한 매개변수를 조정하여 원하는 결과를 얻을 수 있습니다.

비개발자분들은 이해가 어려울 수 있다. 이래서 개발능력이 필수라고 하는 것이다.

내용이 어렵다면 이것만 기억해도 쓸 곳이 있다.

인간이 쓴 것과 같은 효과를 주기 위해선 Temperature 값과, Top_P 값을 각 1 로 Setting 해주면 된다.

 

ChatGPT 는 결국 인간의 언어를 이용하기 때문에, 굳이 코드가 아니더라도 ChatGPT 첫 명령에 Temperature=1, Top-P=1 로 세팅해줘, 라고 해도 동일한 효과가 있기 때문이다.

 

 

결과값은 response 에서 받아오게 되는데, 그 중 우리가 필요한 부분만 출력한 것이다.

출력되지 않은 response 값들을 확인해보자.

chatgpt API 결과

위와 같은 결과가 나오는 것을 알수 있는데, 블로그 자동화에 사용할 수 있는 값들이 보인다.

ex) 'finish_reason' 를 이용하여, 정상적인 return 이 발생했는지 확인 가능.

 

그럼 위에서 발생한 ChatGPT 대화간에 흐름이 끊기는 문제를 해결하기 위해 다음 포스팅으로 가보겠다.