artt.dev

NongHed (น้องเห็ด)

ผู้ช่วยส่วนตัวที่จะช่วยคุณค้นหาข้อมูลเศรษฐกิจและการเงินของไทย

น้องเห็ด (NongHed) เป็นแชทบอทน่ารัก ๆ ที่จะมาช่วยคุณค้นหาข้อมูลเศรษฐกิจและการเงินของประเทศไทย ลองดูหน้าเว็บเพจของน้องเห็ดได้เลย

ความเดิม

ตอนเริ่มงานที่แบงก์ชาติใหม่ ๆ สิ่งแรก ๆ ที่สังเกตได้คือในการประชุมต่าง ๆ พี่ ๆ ทุกคนเน้นข้อมูลมากกก ได้เจอคำถามต่าง ๆ เช่น ส่งออกเดือนที่แล้วโตเท่าไหร่ หรือ current account ปีที่แล้วเท่าไหร่ อยู่ตลอดเวลา

คนส่วนใหญ่ที่ทำงานมาซักพักนึงดูเหมือนจะมีญาณหยั่งรู้เลขเหล่านี้ได้ (และ update ได้เรื่อย ๆ อีกแน่ะ) หรืออย่างน้อยก็รู้เลขคร่าว ๆ แต่น้อง ๆ ที่เพิ่งเข้ามาทำงานใหม่จะค่อนข้างมึนมาก พอต้องใช้เลขก็ต้องไล่เปิดแฟ้มหนา ๆ เพื่อหาข้อมูล แม้แต่พี่ ๆ ที่มีประสบการณ์มากแล้ว ถ้าถูกถามข้อมูลที่อาจจะไม่ค่อยคุ้นเคย ก็ต้องนั่งเปิดแฟ้มบ้างเหมือนกัน

วิธีแก้ปัญหาที่มีอยู่แล้ว

เว็บสถิติของแบงก์ชาติ

แบงก์ชาติมีหน้าเว็บที่รวบรวมสถิติต่าง ๆ ที่รวบรวมข้อมูลทั้งหมดที่แบงก์ชาติเผยแพร่เป็นหมื่น ๆ รายการ ตั้งแต่ปริมาณสินเชื่อทั้งหมดในระบบธนาคารไปจนถึงปริมาณการส่งออกสับปะรดในแต่ละเดือน ดังนั้นเว็บนี้ก็เป็นที่ที่นึงที่จะหาข้อมูลที่ต้องการได้เกือบทั้งหมด

แล้วปัญหาคืออะไร ทำไมคนไม่ใช้กันล่ะ? ปัญหาก็คือหน้าเว็บนี้รวบรวมข้อมูลทั้งหมดเป็นหมื่น ๆ รายการนั่นเอง เวลาจะหาข้อมูลอะไร ถ้าไม่รู้ว่าต้องไปดูตารางเลขที่เท่าไหร่แต่แรก ก็อาจจะต้องใช้เวลาพอสมควรกว่าจะหาข้อมูลที่ต้องการเจอ ยิ่งไปกว่านั้น บางทีข้อมูลอาจจะดูคล้าย ๆ กัน ก็ไม่แน่ใจอีกว่าอันไหนคืออันที่เราต้องการจริง ๆ

เพื่อนสนิทมิตรสหาย

ขั้นต่อไปก็ต้องพึ่งพาเพื่อนแล้ว วิธีทำก็แค่หยิบโทรศัพท์มือถือขึ้นมา เปิดแอพส่งข้อความที่ชื่นชอบ ไม่ว่าจะเป็น LINE หรือ Facebook Messenger แล้วก็ส่งข้อความไปหาเพื่อน ๆ พี่ ๆ ที่อาจจะอยู่ในทีมที่เกี่ยวข้องกับข้อมูลนั้น ให้ช่วยหาให้หน่อยเถอะน้าาา วิธีนี้เป็นวิธีที่ใช้กันค่อนข้างเยอะ แต่ปัญหาของวิธีนี้ ก็คือเพื่อนอาจจะไม่อยู่ตอบให้ได้ตลอดเวลานั่นเอง

แล้วน้องเห็ดก็เข้ามา

น้องเห็ดจะเป็นเพื่อนคนนั้นให้คุณเอง! มีน้องเห็ด ก็เหมือนมีเพื่อนอยู่คุยด้วยตลอด 24 ชั่วโมง (เรื่องข้อมูลเศรษฐกิจการเงินนะ) ถ้าอยากรู้ข้อมูลอะไร แทนที่จะถามเพื่อน ๆ พี่ ๆ ก็มาถามน้องเห็ดแทน ผ่านทาง LINE หรือ Facebook ก็ได้ แล้วแต่สะดวกเลย

รูปแบบการทำงาน

เมื่อมีคนคุยกับน้องเห็ด บทสนทนาก็จะถูกส่งผ่าน messaging API ของ platform นั้น ๆ ไปยังบริการ Dialogflow ของ Google จากจุดนั้น คำสนทนาแบบง่าย ๆ เช่น “Hi” หรือ “What’s your name” จะถูกจัดการด้วย Dialogflow โดยตรง ขณะที่คำสนทนาที่ถามถึงข้อมูลจะถูกส่งต่อไปยัง API ที่อยู่บน Heroku

API บน Heroku นี้ใช้ Python เขียนขึ้นมา และทำหน้าที่ทุกอย่างตั้งแต่การ update ข้อมูลไปจนถึงการแปลงวันที่ (Dialogflow ทำได้บางส่วน แต่ยังจัดการกับวันที่แบบไตรมาสไม่เป็น) ไปจนถึงการทำการคำนวณแบบง่าย ๆ

ข้อมูล

ข้อมูลที่น้องเห็ดใช้ถูกรวมขึ้นมาจากหลาย ๆ ที่

API ของแบงก์ชาติ

ตั้งแต่ปี 2560 แบงก์ชาติได้จัดทำ BOT API ขึ้นมาสำหรับให้บริการข้อมูลต่าง ๆ ที่อยู่ในตารางสถิติ ทำให้ผู้ใช้งานสามารถเข้าถึงข้อมูลได้ง่ายขึ้นมาก และเป็นก้าวสำคัญในการเปิดเผยข้อมูลของภาครัฐ

BOT API จริง ๆ แล้วใช้งานค่อนข้างง่าย แต่ผู้ใช้อาจจะต้องมีพื้นฐานด้านการเขียนโปรแกรมอยู่ น้องเห็ดเลยเป็นเหมือน frontend ที่ใช้งานง่ายสำหรับ BOT API

ถ้าจะหยิบทั้งสองหมื่นกว่า series มาให้กับผู้ใช่้งานน้องเห็ดเลย ก็อาจจะทำให้น้องเห็ดใช้งานยากพอ ๆ กับเว็บสถิติของแบงก์ชาติ ตอนนี้ก็เลยหยิบมาแค่ 40 กว่า series ที่รู้สึกว่าถูกเรียกใช้งานบ่อย ๆ ถ้าจะเพิ่ม series เข้าไป ก็ทำได้ง่าย ๆ แค่เพิ่มแถวเข้าไปในไฟล์ .csv เท่านั้น

เพื่อให้ผู้ใช้งานเข้าถึงข้อมูลได้รวดเร็วขึ้น และเนื่องจากข้อมูลใน BOT API ไม่ได้เป็นข้อมูลสดขนาดนาทีต่อนาที ข้อมูลจาก BOT API เลยถูกดึงเข้ามาทุก ๆ คืนมาอยู่ใน local copy

หน่วยงานรัฐอื่น ๆ

แม้ว่าข้อมูลใน BOT API จะมีเยอะมาก แต่ BOT API ก็รวมข้อมูลที่ถูกเผยแพร่โดยแบงก์ชาติเท่านั้น ข้อมูลเศรษฐกิจสำคัญอื่น ๆ เช่น GDP (จัดทำโดยสภาพัฒน์ฯ) หรืออัตราเงินเฟ้อ (จัดทำโดยกระทรวงพาณิชย์) ไม่ถูกรวมอยู่ด้วย ข้อมูลเหล่านี้เลยถูกเพิ่มเข้ามาด้วยวิธีต่าง ๆ กัน แล้วแต่ที่มาของข้อมูล

แหล่งข้อมูลอื่น ๆ

ข้อมูลอื่น ๆ (ส่วนใหญ่เป็นข้อมูลรายนาที) ถูก scrape มาจากแหล่งข้อมูลต่าง ๆ ที่อาจจะเปิดเผยไม่ได้ ;)

แผนในอนาคต

ถ้าใครมีคำแนะนำหรือไอเดียเจ๋ง ๆ สำหรับพัฒนาน้องเห็ด สามารถส่งมาได้เลยที่ nonghed.bot@gmail.com

ณ ขณะนี้ บริการ cloud ทั้งหลายที่ใช้อยู่ ไม่ว่าจะเป็น Line Official Account, Facebook Messenger, Dialogflow หรือ Heroku เป็นการใช้บริการแบบฟรีทั้งนั้น ซึ่งก็แปลว่าบางทีอาจจะมีข้อจำกัดในการใช้งานน้องเห็ดอยู่บ้าง เช่น จำนวนข้อความที่สามารถตอบกลับได้ในหนึ่งชั่วโมง หรือ server อาจจะล่มได้บ้าง ถ้าลองใช้น้องเห็ดแล้วคิดว่า เออ มีประโยชน์ดี อยากช่วยทำให้น้องเห็ดเก่งขึ้น สามารถ support น้องเห็ด ได้นะครับ

Fun fact

วันที่ 20 กันยายน เป็นวันเห็ดวิเศษสากล!