Python/Open Source

ChatGPT를 이용한 간단한 Web App 만들기 (python, streamlit)

상쾌한기분 2023. 3. 14. 11:02
반응형

Python Streamlit을 통해서 간단한 ChatGPT Web App 만들어보기

우선, Streamlit 이란?

  • https://docs.streamlit.io/
  • streamlit는 주로 데이터 사이언스, 머신 러닝 등에서 사용되는 커스터 마이징 가능한 간단하고 쉽게 웹앱을 만들어주는 오픈 소스이다.

사용할 ChatGPT SDK, Reverse Engineered ChatGPT API

revChatGPT repo는 abandod or deprecated 되었습니다.
python OpenAI sdk 사용을 권장 합니다.

Python 패키지 설치

pip install revChatGPT
pip install streamlit

chatgpt_with_streamlit.py 생성 및 실행

  • streamlit run chatgpt_with_streamlit.py
import random

import streamlit
from streamlit.commands.page_config import RANDOM_EMOJIS

streamlit.set_page_config(page_title="Raynor ChatGPT", page_icon=random.choice(RANDOM_EMOJIS), menu_items={})
streamlit.title("Demo ChatGPT with Streamlit")
streamlit.sidebar.header("Chatting")
streamlit.sidebar.info("Chat")


def app_main():
    user_query = streamlit.text_input("Enter").strip()

app_main()

reversed ChatGPT SDK 연동

import logging
import random

import streamlit
from revChatGPT.V1 import Chatbot
from streamlit.commands.page_config import RANDOM_EMOJIS

streamlit.set_page_config(page_title="Raynor ChatGPT", page_icon=random.choice(RANDOM_EMOJIS), menu_items={})
streamlit.title("Demo ChatGPT with Streamlit")
streamlit.sidebar.header("Chatting")
streamlit.sidebar.info("Chat")

logger = logging.getLogger()
logger.setLevel(logging.DEBUG)
element = streamlit.empty()


# https://chat.openai.com/api/auth/session
def request_to_rev_openai(query):
    chatbot = Chatbot(config={
        "access_token": "token"
    })

    prev_text = ""
    for data in chatbot.ask(prompt=query):
        prev_text = data["message"]
        element.write(prev_text, unsafe_allow_html=True)

def app_main():
    user_query = streamlit.text_input("Enter").strip()
    if user_query is not None and user_query and user_query != "":
        request_to_rev_openai(user_query)


app_main()

728x90
반응형