카테고리 없음

ChatGPT API를 파이썬에서 사용하는 방법과 샘플 예제

_Blue_Sky_ 2024. 7. 26. 18:45
728x90


1. API 키 얻기:

먼저, OpenAI 웹사이트(https://openai.com)에서 계정을 만들고 API 키를 발급받아야 합니다. API 키는 비밀번호와 같은 역할을 하므로 안전하게 보관해야 합니다.

 

2. 필요한 라이브러리 설치:

파이썬에서 OpenAI API를 사용하기 위해 openai 라이브러리를 설치해야 합니다. 터미널이나 명령 프롬프트에서 다음 명령을 실행하세요:

 

```

pip install openai

```

 

3. 기본 사용법:

다음은 ChatGPT API를 사용하는 기본적인 파이썬 코드입니다:

 

```python

import openai

 

# API 키 설정

openai.api_key = "your-api-key-here"

 

# API 호출

response = openai.ChatCompletion.create(

    model="gpt-3.5-turbo",  # 또는 "gpt-4" 등 사용 가능한 모델

    messages=[

        {"role": "system", "content": "당신은 도움이 되는 AI 조수입니다."},

        {"role": "user", "content": "안녕하세요, 오늘의 날씨는 어떤가요?"}

    ]

)

 

# 응답 출력

print(response.choices[0].message['content'])

```

 

이 코드는 API를 호출하여 간단한 대화를 시작합니다. system 메시지는 AI의 역할을 정의하고, user 메시지는 사용자의 입력을 나타냅니다.

 

4. 대화형 채팅봇 만들기:

다음은 사용자와 지속적으로 대화할 수 있는 간단한 채팅봇 예제입니다:

 

```python

import openai

 

openai.api_key = "your-api-key-here"

 

def chat_with_gpt(messages):

    response = openai.ChatCompletion.create(

        model="gpt-3.5-turbo",

        messages=messages

    )

    return response.choices[0].message['content']

 

messages = [{"role": "system", "content": "당신은 친절하고 도움이 되는 AI 조수입니다."}]

 

print("AI와의 대화를 시작합니다. 종료하려면 '종료'를 입력하세요.")

 

while True:

    user_input = input("사용자: ")

    if user_input.lower() == '종료':

        print("대화를 종료합니다.")

        break

    

    messages.append({"role": "user", "content": user_input})

    ai_response = chat_with_gpt(messages)

    print("AI:", ai_response)

    messages.append({"role": "assistant", "content": ai_response})

```

 

이 예제는 사용자의 입력을 계속 받아 AI와 대화를 이어갑니다. 대화 내용은 messages 리스트에 저장되어 컨텍스트를 유지합니다.

 

5. 고급 사용 예제:

다음은 특정 주제에 대한 요약을 생성하는 더 복잡한 예제입니다:

 

```python

import openai

 

openai.api_key = "your-api-key-here"

 

def generate_summary(topic):

    prompt = f"다음 주제에 대해 300자 내외로 간단히 요약해주세요: {topic}"

    

    response = openai.ChatCompletion.create(

        model="gpt-3.5-turbo",

        messages=[

            {"role": "system", "content": "당신은 전문적이고 객관적인 요약을 제공하는 AI입니다."},

            {"role": "user", "content": prompt}

        ],

        max_tokens=500

    )

    

    return response.choices[0].message['content']

 

# 사용 예

topic = "인공지능의 윤리적 고려사항"

summary = generate_summary(topic)

print(f"주제: {topic}")

print("요약:")

print(summary)

```

 

이 예제는 주어진 주제에 대해 AI가 요약을 생성하도록 합니다. max_tokens 매개변수를 사용하여 응답의 길이를 제한할 수 있습니다.

 

6. 오류 처리:

API 호출 시 발생할 수 있는 오류를 처리하는 것도 중요합니다. 다음은 오류 처리를 포함한 예제입니다:

 

```python

import openai

import time

 

openai.api_key = "your-api-key-here"

 

def chat_with_retry(messages, max_retries=3):

    for attempt in range(max_retries):

        try:

            response = openai.ChatCompletion.create(

                model="gpt-3.5-turbo",

                messages=messages

            )

            return response.choices[0].message['content']

        except openai.error.RateLimitError:

            if attempt < max_retries - 1:

                time.sleep(2 ** attempt)  # 지수 백오프

            else:

                raise

        except openai.error.APIError as e:

            print(f"API 오류 발생: {e}")

            return None

 

# 사용 예

messages = [

    {"role": "system", "content": "당신은 도움이 되는 AI 조수입니다."},

    {"role": "user", "content": "인공지능의 발전이 사회에 미치는 영향은 무엇인가요?"}

]

 

response = chat_with_retry(messages)

if response:

    print("AI 응답:", response)

else:

    print("응답을 받지 못했습니다.")

```

 

이 예제는 rate limit 오류가 발생했을 때 재시도를 하며, 다른 API 오류에 대해서도 적절히 처리합니다.

 

이러한 예제들을 바탕으로 ChatGPT API를 다양한 방식으로 활용할 수 있습니다. API의 기능을 최대한 활용하기 위해서는 OpenAI의 공식 문서를 참조하고, 다양한 매개변수(예: temperature, top_p 등)를 조절해보는 것이 좋습니다. 또한, API 사용량과 비용을 모니터링하고, 필요에 따라 사용량을 제한하는 것도 중요합니다.

 

마지막으로, API를 사용할 때는 항상 OpenAI의 사용 정책을 준수하고, 개인정보 보호와 윤리적 사용을 고려해야 합니다.

728x90