ตัวอย่างการใช้งาน
> Hello Hi > Hello Hello :D > Hello Hi >
หลักการของ Chat Bot คือ เมื่อเรากรอกข้อความลงไป ระบบจะทำการจับคู่ข้อความกับเงื่อนไขรายการของตัวแปร a ที่กำหนดไว้ โดยข้อความที่แสดงจะแตกต่างกันไปตามหลักการสุ่ม โดใช้ random.choice() ในการสุ่มรายการของตัวแปร b
หากต้องการเรียกข้อมูลจากฐานข้อมูลและมีการรับคำใหม่มาบบรจุ จะใช้วิธีข้างบนไม่ได้ ผมจึงต้องใช้ฐานข้อมูล ผมขอแนะนำโมดูลฐานข้อมูลที่มีชื่อว่า "tinydb"
โมดูล tinydb เป็นโมดูลฐานข้อมูล เป็นฐานข้อมูลแบบ NoSQL เขียนบนภาษา Python ไฟล์ฐานข้อมูลเป็นไฟล์ JSON และมีขนาดเล็ก ทำงานได้อย่างรวดเร็ว
รองรับทั้ง Python 2 และ Python 3
ใช้ License: MIT
สามารถติดตั้งได้โดยใช้คำสั่ง pip :
pip install tinydb
อ่านเอกสารการใช้งานโมดูล tinydb ได้ที่ https://tinydb.readthedocs.org/
เมื่อนำโมดูล tinydb มาใช้เก็บข้อมูลคำศัพท์ มาใช้งานกับ Chat Bot ต้นแบบของเราข้างบนครับ
ตัวอย่างการใช้งาน
> แมว ไม่พบประโยคนี้ในระบบ คุณต้องการสอนไหม Y or N : Y คำถาม : แมว คำตอบ : คุณเป็นแมวหรอ > แมว คุณเป็นแมวหรอ >
การนำไปพัฒนาต่อ
จากโค้ดข้างบน ผมขอแนะนำอย่าทำ Chat Bot แบบ SimSimi หรือ Chat Bot ตอบโต้ธรรมดา ๆ ดีกว่าครับ เพราะหลังจากที่มีกระแส SimSimi เมื่อหลายปีก่อน ทำให้มีนักพัฒนา ทั้งไทยและต่างประเทศได้พัฒนา Chat Bot บนหน้าเว็บหรือแอพคล้าย ๆ กันออกมาจำนวนมาก (เกินไป) จนบางคนมองว่าเป็นแค่เพียงของเล่น ผมขอแนะนำความคิดผมครับ
- นำไปใช้งานเก็บตัวอย่างในทางงานวิจัย เช่น การประมวลผลข้อความ โดยให้อาสาสมัคร ใช้ Chat Bot ที่เราทำ เพิ่มข้อมูล เพิ่มคำศัพท์ ทำระบบเก็บ log การใช้งาน Chat Bot โดยให้ระบุอารมณ์ขณะที่ใช้งานด้วย หนืองานวิจัย AI เป็นต้นครับ
- นำไปใช้งานเป็นผู้ช่วย เช่น ทำ IRC Bot หรือผ่านเครือข่ายสังคมอื่น ๆ ให้โต้ตอบคำสั่งที่เรากำหนดไว้ เช่น "เซ็คราคาค่าเงินบาทไทย" แล้วส่งผลลัพธ์มาให้เรา เป็นต้นครับ
- ความคิดของคุณเอง ลองคิดกันดูว่าเราจะนำ Chat Bot ไปทำอะไรได้บ้างนอกจากนี้ :D
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
บทความดีมากครับ แต่อาจจะยากไปสำหรับคนโค้ดไม่เป็นนะ ถ้าทำไม่ได้จริงลองสมัครใช้แชทบอทอย่าง Kaojao แชทบอทก็ได้ครับ https://kaojao.com ใช้งานเบื้องต้นได้ ช่วยขายของได้ แต่ถ้าอยากลองเขียนจริงๆก็เอ้า สู้ดิ
ตอบลบทำตามตัวอย่างที่2 เกิดข้อผิดพลาดใน database. py บรรทัด156
ตอบลบif cond in self. _query_cache:
TypeError. : unhashable type: 'Query'