ChatGPT clone with Python

สร้าง ChatGPT Bot App ด้วย Python และ Streamlit

Generative AI, Headline By ก.ย. 15, 2023 No Comments

วันนี้จะมาสอนสร้าง Web App ด้วย Python Streamlit นะครับ เป็นการเขียนใช้ ChatGPT เป็น Backend ในการตอบคำถามลูกค้า โดยจะส่งคำถามของ User ผ่าน API ของ ChatGPT และตอบกลับจากทางหน้าเว็บ ซึ่งสะดวกและง่ายมากๆ เลยนะครับ มาลองทำกันเลยครับ ไม่นาน

สิ่งที่ต้องมีก่อนเขียนโปรแกรม

  1. Python environment / Anaconda (Download)
  2. Visual Studio Code (Download)
  3. OpenAI API Key (วิธีขอ API Key)

ถ้าพร้อมกันแล้วก็เริ่มกันได้เลยครับ

เขียน Python สร้าง ChatGPT

สร้างไฟล์ .streamlit/secrets.toml ตัวเก็บ API Key ของ ChatGPT ครับ จากนั้นในไฟล์เพิ่ม Code และใส่ OpenAI API Key เข้าไปนะครับ แก้ เป็น API Key ของเราที่ได้จากขั้นตอนการขอ API Key นะครับ

OPENAI_API_KEY = 'sk-XXXXXXXXXXXXXXXXXXXXXXXXXX'จากนั้นสร้างไฟล์ app.py แล้วใส่เขียน Code ด้านล่างครับ

import openai
import streamlit as st

# Load OpenAI API key
openai.api_key = st.secrets["OPENAI_API_KEY"]

# Introduction
st.title("🧑‍💻 Data-Espresso 💬 Bot")
"""
สวัสดีครับ ผมคือ Data-barista Bot ☕️ . 
ยินดีที่ได้รู้จักนะครับ มีหลายอย่างที่ผมรู้ และผมตอบได้ อยากรู้อะไรถามมาได้เลยครับ แต่อย่าถามกวนนะ เดี๋ยวจะหาว่าไม่เตือน อิๆ 😀
"""

# Set the role of the chat
if "messages" not in st.session_state:
    st.session_state["messages"] = [
    {"role": "system", "content": "You are a data analytics expert called Data-Barista, you love to use emojis. You are professional on data analytics and data science"}
    ]

# Parse user input to the chartGPT API
if prompt := st.chat_input():
    st.session_state.messages.append({"role": "user", "content": prompt})
    st.chat_message("user").write(prompt)
    response = openai.ChatCompletion.create(model="gpt-3.5-turbo-0613", messages=st.session_state.messages)
    msg = response.choices[0].message
    st.session_state.messages.append(msg)
    st.chat_message("assistant").write(msg.content)

จากนั้นไปที่ Terminal แล้ว Run command

streamlit run app.py

ตัวระบบจะเปิดหน้าเว็บ Browser เราก็สามารถ Chat คุยกับเจ้า Bot ของเราได้แล้วครับ

ChatGPT Clone with Streamlit and Python

ลองทำดูนะครับ ถ้าติดคำถามตรงไหนถามมาได้เลยนะครับ

Author

Data Engineer, Data Strategist, Data Analyst, Data Scientist

No Comments

Leave a comment

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *