in Blog

กลับมาเขียน ChatBot

มีเหตุบังเอิญที่ได้กลับมาเขียน ChatBot ก็เลยขอ Blog ไว้สักหน่อย เรื่องของเรื่องคือทางเว็บไซต์ติดต่อมา อยากทำ ChatBot แบบตอบข้อความอัตโนมัติผ่าน LINE ก็เข้าใจว่าเป็น ChatBot ล่ะ ให้เสนอราคามาหน่อยว่าจะรับทำเท่าไร ก็เลยขอรายละเอียดงานหน่อย งานก็แนวๆ บอกสถานที่และให้ Bot บอกว่ามีน้องๆ อยู่แถวนั้นกี่คน มีใครบ้างก็แสดงข้อมูลขึ้นมา จริงๆ โปรเจคแบบนี้เคยทำใน DoggyGirl และ PinkyBink ไปแล้ว แนวคิดเหมือนกันเลย เพียงแต่รายนี้ต้องเชื่อมต่อกับฐานข้อมูลของเว็บไซต์ เท่าที่ทราบมีทีมต่างประเทศดูแลเรื่อง Cloud Infra และจัดทำเว็บไซต์ พอคุย scope เรียบร้อย ด้วยความเป็นกังวลเพราะ scope ยังคลุมเครือมาก และข้อจำกัดของ LINE ก็มีมากพอสมควร

เพื่อความชัวร์ เอา database มาดูก่อนได้ไหม หน้าตา table, relation เป็นแบบไหนยังไง ผ่านไป 3 สัปดาห์ เงียบเลย แต่มี requirement มาแบบไม่หยุด ประมาณไอเดียบรรเจิดมาเลยทีเดียว ก้อได้แต่บอกว่าขอดู database ก่อน แต่ก็ได้คำตอบประมาณว่าไม่อยากให้ยุ่งกับ database ของเว็บมากนัก อ้าวแล้วจะทำไงอ่ะ ทำ replication ข้าม Cloud Provider คงไม่ใช่เรื่องที่ดีแน่ๆ ถ้าจะให้ทำก็ขอ access database ไม่งั้นทำไม่ได้ ผ่านไป 1 สัปดาห์ได้ backup database มา 250MB แตกไฟล์ data ออกมาได้ 2.5GB แม่เจ้า database อะไรเนี่ย 300 กว่าตาราง ข้อมูลรวมๆ 3.3M rows … ย้ายไป GCP ด่วนๆ เลย เพราะ run บน Mac ไม่ไม่รอดแน่ พออยู่บน GCP ก็พอจะไล่ข้อมูลใน table ต่างๆ ได้บ้าง

ผ่านไปอีก 1 สัปดาห์ ยังไม่ได้ database access แต่เขียน ChatBot มี feature ครบไปเรียบร้อยแล้ว สุดท้ายถึงมารู้ว่าต้องเขียน issue เข้าไปเพื่อให้ทีมต่างประเทศให้สิทธิ์ในการเข้าถึงฐานข้อมูล ก็เลยถึงบางอ้อ เอ้าเขียนก็เขียน ก็เลยสาธยายร่ายยาวไปนิดนึง ได้คำตอบมายาวๆ ก็อุ่นใจหน่อย พอเชื่อมต่อฐานข้อมูลได้ก็สบายละ ได้ลองทดสอบเวอร์ชั่นแรก ก็ไม่ตรงใจเท่าไร จนต้องรื้อของเดิมใหม่หมด เพราะลักษณะการใช้งานของผู้ใช้ไม่ได้ใช้ ChatBot แบบที่เราใช้ ChatBot กัน จนได้เวอร์ชั่น 2 ที่ดิบมากๆ จากการทดสอบก็ถือว่าออกมาพอใช้ แต่ก็ยังติดปัญหาเรื่องการแสดงผลข้อมูลจากฐานข้อมูลด้วย เพราะข้อมูลในฐานข้อมูลเป็น pigeonhole มีข้อมูลเป็น Null เยอะมาก เรียกได้ว่าข้อมูลมีเป็นหมื่นรายการ แต่ใช้งานได้อยู่ 90 รายการ ซึ่งไม่ใช่ละ ก็ต้องค่อยๆ join table ออกมาให้ได้ข้อมูลมากที่สุด อันไหนได้ Null ก็ต้องไปตามเช็คใน REST API อีกรอบ เหนื่อยกับข้อมูลแบบนี้พอสมควร แต่ก็ผ่านมาได้ สุดท้ายก็ต้องเอางานไป deploy บน Cloud ที่ทีมต่างประเทศดูแลอยู่ดี ซึ่งก็ดีไม่ต้องมาคอยดูแลเอง

ยังไม่หมด first release ก็จะเอา second release แล้ว ไอเดียบรรเจิด เพิ่ม feature อีกเพียบเลย ก็เร่งทำให้จนเสร็จ และออก release 2 อย่างรวดเร็ว ให้ทดสอบแบบเร่งด่วนเพราะไม่น่าจะมีอะไรยุ่งยากละ ขอแค่ดึงข้อมูลมาแสดงผลให้ถูกก็พอ ก็ถือว่าเป็นการกลับมาเขียน ChatBot พร้อม integrate ข้อมูล เพื่อให้บริการลูกค้าแบบจริงจัง ก็สนุกดี

แปะ Video ไว้หน่อย