สวัสดีครับสำหรับ Ep.3 เราจะนำ Chatbot ของเรา Deploy ขึ้น Server ให้ Chatbot ของเราสามารถออนไลน์ ได้ตลอดเวลาโดยไม่ต้องเปิดตัว NGROK ทุกครั้ง โดยครั้งนี้เราจะมาใช้ ตัว Server ฟรีที่ชื่อว่า Heroku ซึ่งเป็น Platform as a Service โดยถึงแม้จะเป็นตัวฟรี แต่ Heroku แบบฟรีก็มีข้อจำกัด อยู่ที่หากไม่มีการใช้งานหรือการส่ง request เข้ามายัง server นานเกิน 30 นาที จะให้ server มีการ sleep ซึ่งเมื่อมีการส่ง request เข้ามาอีกรอบ จะต้องใช้เวลาสักครู่ในการ run server อีกครั้ง
บทความแนะนำ (Deploy แบบละเอียด)
ทำการ Download และตั้งให้เรียบร้อย ตามเครื่องที่เราใช้งาน
เริ่มต้นให้เราไปที่ https://id.heroku.com/login
ทำการสมัครสมาชิก และ login ให้เรียบร้อย
ก่อนที่เราจะทำการ Deploy โปรเจคของเราขึ้นไปยัง Heroku นั้นเราต้องเตรียมไฟล์ต่าง ๆ ก่อนโดยสิ่งที่ต้องทำคือ ให้เราทำการสร้างโฟลเดอร์สำหรับ Deploy ก่อนเพื่อความสะดวก
อย่างแรกที่ต้องการคือ ไฟล์โปรเจคท์ .py ของเรา ในที่นี้ก็คือไฟล์ app.py ที่เราได้ทำมาใน Ep ก่อนหน้านี้
ต่อมาคือไฟล์ requirements.txt ให้คลิกขวาสร้างจาก Notepad ได้เลย
ให้ทำการเปิดไฟล์ requirements.txt ขึ้นมาและพิมพ์ตามนี้ ซึ่งในที่นี้ก็ชื่อชื่อและเวอร์ชั่นต่างๆของ library ที่เราต้องการนั้นเอง
requirements.txt
Flask==1.1.2
line-bot-sdk==1.17.0
gunicorn==20.0.4
ต่อไปเป็นไฟล์ชื่อ Procfile ซึ่งสำหรับไฟล์นี้เป็นไฟล์ที่มีนามสกุลเป็น File เลยซึ่งเราสามารถใช้ตัว IDE ในการช่วยสร้างได้
จากนั้นนำไฟล์ที่ได้มาเก็บไว้ในโฟลเดอร์แล้วให้ทำการเปิดไฟล์ Procfile ด้วย Notepad
Procfile
web:gunicorn app:app
เท่านี้ก็พร้อมสำหรับการ Deploy แล้ว
เริ่มต้นให้เรากลับไปที่ Heroku ของเรา https://dashboard.heroku.com/apps
กด Create new app ได้เลย
ใส่ชื่อตามที่เราต้องการแล้วกด Create app ได้เลย
เท่านี้เราก็พร้อม Deploy กันแล้ว ให้ไปที่โฟลเดอร์ของเราพิมพ์ CMD ในช่อง address ของโฟลเดอร์เพื่อทำการ run CMD ในตำแหน่งที่เก็บไฟล์ได้เลย
เราจะได้หน้าต่าง CMD ขึ้นมาสำหรับพิมพ์คำสั่งเพื่อ Deploy แล้ว
คำสั่งแรกให้เราพิมพ์ heroku login เพื่อทำการ login ก่อน
ขึ้นแบบนี้ให้กด Enter ได้เลยจากนั้นตัว Heroku จะเด้งหน้า Browser ขึ้นมาให้ login ให้เรากด login ให้เรียบร้อย
เมื่อกด login แล้วให้เรากลับไปดูที่ CMD ของเราจะขึ้นหน้าต่างประมาณนี้ก็ถือว่าผ่านครับ
จากนั้นพิมพ์คำสั่งตามลำดับได้เลย
1. git init
2. heroku git:remote -a xxxxx (xxxxx แทนชื่อโปรเจค Heroku ที่เราสร้างโดยของผมจะเป็น heroku git:remote -a chat-bot-test-flask)
3. git add .
4. git commit -am "make it better"
จากนั้นกด SAVE ก็เรียบร้อย
และคำสั่งสุดท้าย git push heroku master จากนั้นให้รอตัว cmd ทำการ run ให้เรียบร้อย
ถ้าไม่เกิด Error อะไรก็เสร็จเรียบร้อยแล้วที่ให้เรานำ URL ที่ได้จาก Heroku ไปผูกกับ Dialogflow ได้เลยโดย URL ของเราจะเป็น https://xxxx.herokuapp.com/
(xxxx แทนชื่อโปรเจค Heroku ที่เราสร้างโดยของผมจะเป็น https://chat-bot-test-flask.herokuapp.com/)
ทำการเปลี่ยนชื่อเว็บหรือโดเมนเนมของเราเข้าไปแทนตัว NGROK ที่ใช้ทดสอบก่อนหน้า โดยไปที่ https://dialogflow.cloud.google.com
ใส่ URL ของ Heroku ให้เรียบร้อย กด SAVE แล้วไปลอง Chatbot ของเราได้เลย
เท่านี้เราก็ได้ chat bot ที่สามารถใช้งานได้จริงแล้วซึ่งหากเราต้องการใช้งาน Heroku แบบเต็มประสิทธิภาพเราสามารถดูรายละเอียดค่าใช้จ่ายต่างๆ ได้ที่นี้เลย https://www.heroku.com/pricing
สำหรับ Ep.3 ซึ่งเป็น Ep สุดท้าย ผมก็ขอจบลงเท่านี้ก่อน และหวังว่าทุกคนจะได้โปรเจคท์ Python Line Chatbot ไว้ใช้งานและ deploy เสร็จสรรพเรียบร้อยกันแล้วนะครับ ติดตามซีรีย์ที่เกี่ยวข้องกับ Chatbot ในโอกาสหน้ากันได้เลยยังมีอะไรให้ศึกษากันอีกเพียบครับ ถ้าชื่นชอบบทความนี้ ซัพพอร์ตเราได้โดยการกด Response หรือคอมเมนต์ด้านล่างบทความนี้ได้เลยนะครับ ขอบคุณครับ
📒ประชาสัมพันธ์
ตอนนี้เรามีเปิดอบรมรอบสดคลาส Python Line Chatbot แบบจับมือทำ (ใกล้เต็มแล้ว รีบทักด่วน)
กิจกรรมที่กำลังจะมาถึง
ไม่พลาดกิจกรรมเด็ด ๆ ที่น่าสนใจ
Event นี้จะเริ่มขึ้นใน April 25, 2023
รายละเอียดเพิ่มเติม/สมัครเข้าร่วมคอร์สเรียนไพธอนออนไลน์ที่เราได้รวบรวมและได้ย่อยจากประสบการณ์จริงและเพื่อย่นระยะเวลาในการเรียนรู้ ลองผิด ลองถูกด้วยตัวเองมาให้แล้ว เพราะเวลามีค่าเป็นอย่างยิ่ง พร้อมด้วยการซัพพอร์ตอย่างดี