검색
검색
공개 노트 검색
회원가입로그인
ChatGPT 히어로

Chatgpt API 사용법 - 구글 colab 파이썬으로 챗봇 만들기

최근에 나온 chatgpt api를 활용해 보기로 했습니다. 파이썬 코드를 간단하게 사용할 수 있는 구글 colab을 활용해서 실행해 봤습니다. 이렇게 하면 로컬 컴퓨터의 파이썬 환경을 어지럽히지 않고 누구나 쉽게 사용해 볼 수 있습니다.

코드는 amrrs의 github를 참고했습니다. openai 패키지를 사용하는 간단한 파이썬 코드입니다.

먼저 api에 활용할 api키를 만들어 보겠습니다.

OpenAI API 에서 회원 가입 후 우측 상단 계정 클릭하고 View API keys를 누르면 api 키를 만들 수 있는 창으로 갈 수 있습니다. 이곳에서 Create new secret key 버튼을 눌러 새로운 키를 만들어 보세요. sk-의 형식으로 생길 것입니다. 해당 창을 벗어나면 다시 접근할 수 없으므로 api키를 복사해서 안전한 곳에 보관해 두세요. 이 키는 비밀키이기 때문에 공개적인 장소에 공개되면 절대 안됩니다.

두번째로 colab에서 새로운 문서를 만들어 봅시다.

Google Colaboratory - 새로운 문서 만들기 - 제목은 저의 경우 chatgpt api test라고 적어주었습니다.

그 다음은 코드를 한 줄씩 입력하고 따라해 보면 됩니다.

먼저 openai 패키지를 설치합니다.

!pip install -q openai

해당 코드를 노트북에 복사한 후 재생 버튼(쉘 실행 버튼)을 눌러주면 됩니다.

이렇게 설치가 됩니다. 다음은 + 코드를 눌러 다음 코드를 입력하고 실행해 봅시다. 이런 방식으로 코드를 한 줄 한 줄 실행시켜가며 해보면 됩니다.

import openai

openai 패키지를 import 했습니다. 다음은 + 코드를 누르고 api 키를 입력해 봅시다.

openai.api_key='[당신의-API-KEY]'

역시 재생 버튼을 누르면 됩니다.

이 키는 비밀키로 외부로 공개되어서는 안되는 키입니다. 새로 만든 노트북은 나만 볼 수 있습니다. 하지만 공개 설정에서 볼 수 있는 사람을 설정할 수 있으니 유의 합시다. 만약 제가 앱을 만든다면 프론트 환경에서는 사용하지 않을 것이고 서버 환경에서만 안전하게 통신할 수 있게 만들 것입니다.

그 다음은 메시지를 보낼 때 사용할 첫 메시지가 담겨진 배열을 만듭니다. 이 배열에 추가적인 대화를 담아서 openai에 통째로 보내는 방식입니다. + 코드를 눌러 다음의 메시지 배열을 입력하고 플레이 버튼을 눌러줍니다.

messages = [
    {"role": "system", "content": "You are a kind helpful assistant."},
]

마지막으로 실행 부분입니다. + 코드를 눌러 다음 코드를 실행해서 채팅을 해봅시다!

while True:
    message = input("User : ")
    if message:
        messages.append(
            {"role": "user", "content": message},
        )
        chat = openai.ChatCompletion.create(
            model="gpt-3.5-turbo", messages=messages
        )
    
    reply = chat.choices[0].message.content
    print(f"ChatGPT: {reply}")
    messages.append({"role": "assistant", "content": reply})
     

다음은 제가 chatgpt api로 대화를 나눠본 내용입니다. 영어 선생님으로 행동해달라고 하고 카페에 간 상황을 바탕으로 대화를 해봤습니다. chatgpt가 점원입니다.

User : 지금부터 영어 선생님으로 행동해줘. 커피숍에 왔다고 생각하고 대화를 시작해줘. 너는 커피집 점원이야.

ChatGPT: 좋아요! 영어로 대화를 나누도록 할게요. 무엇을 주문하시겠어요?

User : coffee please

ChatGPT: Sure thing! Would you like any particular kind of coffee? We have traditional brewed coffee, espresso, cappuccino, latte, and many other options available.

User : I want vanilla latte.

ChatGPT: Great choice! One vanilla latte coming up. Would you like any pastries or snacks to go along with your drink? We have muffins, croissants, scones, and cookies to choose from.

User : what is the most popular one?

ChatGPT: Our most popular pastry is probably the blueberry muffin. It's freshly baked every morning and has just the right balance of sweetness and tartness. Would you like to give it a try?

User : ok.

ChatGPT: Great, I'll add a blueberry muffin to your order. Your total comes to $6.50. Would you like to pay with cash or card?

User : with cash. here is 10 bucks.

ChatGPT: Thank you very much! Here is your change of $3.50, and your vanilla latte and blueberry muffin. Enjoy your snack and have a great day! If you need anything else, just let me know.

User : thank you!

ChatGPT: You're very welcome! Enjoy your snack and drink, and don't hesitate to ask if you need anything else. Have a great day!

저는 바닐라 라떼를 주문했고 gpt가 저한테 블루베리 머핀을 추천해 줬습니다. 6.5달러가 나왔는데 10달러를 냈더니 3.5달러 거슬러 주는 것까지 완벽하네요...

정지 버튼을 누르면 해당 함수의 실행을 멈출 수 있습니다.

전체 코드는 여기서 확인할 수 있습니다.

chatgpt-api-python/ChatGPT_API_in_Python.ipynb at main · amrrs/chatgpt-api-python

여기에는 파이썬으로 API Endpoint를 사용하는 두 번째 방법도 포함되어 있습니다.

다음에 시간이 된다면 api endpoint를 활용한 간단한 앱도 만들어 보고 싶네요! 감사합니다.


공유하기
카카오로 공유하기
페이스북 공유하기
트위터로 공유하기
url 복사하기