สร้าง ChatGPT Bot App ด้วย Python และ Streamlit
วันนี้จะมาสอนสร้าง Web App ด้วย Python Streamlit นะครับ เป็นการเขียนใช้ ChatGPT เป็น Backend ในการตอบคำถามลูกค้า โดยจะส่งคำถามของ User ผ่าน API ของ ChatGPT และตอบกลับจากทางหน้าเว็บ ซึ่งสะดวกและง่ายมากๆ เลยนะครับ มาลองทำกันเลยครับ ไม่นาน
สิ่งที่ต้องมีก่อนเขียนโปรแกรม
- Python environment / Anaconda (Download)
- Visual Studio Code (Download)
- 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 ของเราได้แล้วครับ
ลองทำดูนะครับ ถ้าติดคำถามตรงไหนถามมาได้เลยนะครับ