누구나 만들 수 있는 ChatGPT 웹 서비스

반응형

이 글은 5분 안에 ChatGPT 웹 서비스를 구축하는 방법을 설명합니다. 이를 위해 LangChainOpenAI, 그리고 Streamlit 파이썬 패키지를 사용합니다.

Streamlit은 몇 줄의 Python 스크립트로 공유 가능한 웹 앱을 쉽게 구축할 수 있는 도구입니다. Streamlit를 시작하는 방법은 Streamlit로 첫 번째 앱 만들기 문서를 참고하세요.

필요한 파이썬 패키지 설치하기

먼저, 필요한 파이썬 패키지를 설치합니다. 터미널에서 다음 명령어를 입력하세요.

pip install streamlit langchain openai

Streamlit으로 웹앱 만들기

이제 Streamlit 웹 앱을 만들기 위해 main.py 파일을 생성하고, 아래 코드를 작성합니다. 다음 코드에는 자세한 주석이 포함되어 있으며, 간단하게 구성되어 있습니다.

import streamlit as st
from langchain.chat_models import ChatOpenAI
from langchain.schema import HumanMessage, SystemMessage

# OpenAI API key 설정
OPENAI_API_KEY = "your-api-key"

# ChatOpenAI 챗봇 모델 생성
chat = ChatOpenAI(
  temperature=0.7, 
  model_name="gpt-3.5-turbo", 
  api_key=OPENAI_API_KEY
)

# 사용자 입력과 챗봇의 시스템 메시지를 리스트에 추가
def send_click(chat, prompt):
    messages = [
        # SystemMessage를 사용하여 "철학 선생님처럼 행동"하도록하는 프롬프트를 입력
        SystemMessage(content='I want you to act as a philosophy teacher. I will provide some topics related to the study of philosophy, and it will be your job to explain these concepts in an easy-to-understand manner. This could include providing examples, posing questions or breaking down complex ideas into smaller pieces that are easier to comprehend. My first request is "I need help understanding how different philosophical theories can be applied in everyday life."'),
        # HumanMessage 클래스를 사용하여 사용자가 요청한 프롬트를 입력
        HumanMessage(content=prompt)
    ]

    # 챗봇에게 질문을 전달하고 응답을 반환
    response = chat(messages).content
    return response

# Streamlit 앱 생성
def main():
    # Streamlit 앱 제목 설정
    st.title('Ask ChatGPT')
    # 사용자 입력을 받는 텍스트 입력 위젯 생성
    user_input = st.text_input("Question: ", key='prompt')
    # Send 버튼을 눌렀을 때 send_click() 함수 실행
    if st.button("Send"):
        response = send_click(chat, user_input)
        # 응답을 출력하는 서브헤더와 성공 메시지 위젯 생성
        st.subheader("Answer: ")
        st.success(response, icon= "🤖")

if __name__ == '__main__':
    # 앱 실행
    main()

위 코드에서 OPENAI_API_KEY 변수에는 여러분의 OpenAI API 키를 사용해야 합니다. OpenAI API 키를 얻는 방법은 OpenAI의 API 문서를 참고하시면 됩니다.

이 ChatGPT 모델은 "철학 선생님"로 행동하길 원하는 프롬프트를 사용하고 있습니다. 더 다양한 프롬프트는 awesome-chatgpt-prompts에서 참고할 수 있습니다.

또한, langchain.chat_models 모듈의 ChatOpenAI 클래스를 사용하면 다양한 프롬프트를 활용하여 ChatGPT 모델을 쉽게 구현할 수 있습니다. ChatOpenAI 클래스는 OpenAI API를 사용하는 데 필요한 모든 복잡한 작업을 처리하며, 쉽게 이용 가능합니다. ChatOpenAI 클래스의 자세한 사용 방법은 여기에서 확인할 수 있습니다.

ChatGPT 웹 서비스 실행하기

ChatGPT 웹 서비스를 실행하려면 먼저 아래의 명령어를 실행해야 합니다. 이 명령어를 실행하면 Streamlit 앱이 실행됩니다.

python -m streamlit run main.py

위 명령어를 실행하면 콘솔에 URL이 표시됩니다. 이 URL을 브라우저에서 열면 ChatGPT 웹 서비스를 사용할 수 있습니다.

웹 서비스를 실행하면 아래와 같은 화면이 나타납니다. 텍스트 입력란에 자신이 하고 싶은 질문을 입력하고 “Send” 버튼을 클릭하면, ChatGPT 모델이 그에 대한 응답을 생성해줍니다.

마치며

이렇게 몇 줄의 코드로 ChatGPT 웹 서비스를 간단하게 구축할 수 있습니다. Streamlit을 사용하면 정말 쉽게 웹 서비스를 구축할 수 있어서 매우 유용합니다. 다양한 프롬프트를 활용하여 여러분만의 ChatGPT 앱을 만들어보세요.


or

[카카오페이로 후원하기] [토스페이로 후원하기]

반응형