มาต่อ Open AI ผ่าน Line ด้วย Golang ให้บอทมันฉลาดและคุยต่อเนื่องแบบง่ายๆกัน PartI
เกริ่นก่อนพอดีผมอยากจะสร้างบอทไว้ใช้เองผ่านมือถืออยู่แล้ว แต่มีพี่ในทีมมาสอนพอดีก็เลยเขียนใช้เองบวกทำบทความขึ้นมาเลย และคงปฏิเสธไม่ได้จริงๆว่า เทรน AI มันมาแรง และจะแรงขึ้นไปอย่างต่อเนื่องทั้งแง่ประหยัดเวลาการทำงานและทำให้เราเรียนรู้สิ่งที่อยากรู้ได้เร็วขึ้นมากๆ
OpenAI ได้พัฒนาโมเดลปัญญาประดิษฐ์ต่างๆ ที่มีชื่อเสียง เช่น GPT, Codex, และ DALL-E ซึ่งมันเรียนรู้ด้วยข้อมูลที่ป้อนเข้าไปและจะฉลาดขึ้นไปเรื่อยๆ คิดว่าอนาคตอาจจะนำหน้ามนุษย์ไปด้วยซ้ำ ย้ำว่าคนที่ไม่ใช้เตรียมตกยุคแน่นอนผมเคยแอนตี้มันมาก่อน 5555
Line คิดว่าอันนี้น่าจะรู้จักกันทุกคนอยู่แล้วเป็นแอปพลิเคชันสำหรับการส่งข้อความและการสื่อสาร ทำไมถึงเลือกใช้ Line มาทำ ตอบเลยเพราะมันง่ายที่สุด 55555
เนื่องจาก ณ ตอนนี้ตัว Open AI ยังไม่มีการสร้าง Session และไม่เก็บข้อความที่คุยกันก่อนหน้า เราเลยต้องมาทำให้มันรู้ว่าข้อความก่อนหน้าคืออะไรคุยอะไรกันมาแล้วบ้างบทความนี้จะไม่ใช้ฐานข้อมูลเลย แต่ถ้าอยากให้เก็บถาวรก็ควรมีฐานข้อมูลซักตัวครับ
1.LINE: ผู้ใช้ส่งข้อความผ่าน LINE
2.Webhook: ข้อความจาก LINE จะถูกส่งไปยัง Webhook ที่คุณกำหนดในโค้ด
3.handleTextEvent: Webhook รับข้อความและเรียกฟังก์ชัน handleTextEvent เพื่อประมวลผลข้อความ
- ฟังก์ชันนี้จะดึงข้อมูลจาก tempMessagesถ้ามีข้อมูลก่อนหน้า
- ถ้าไม่มีข้อมูลก่อนหน้า จะเพิ่มข้อความเริ่มต้นลงใน tempMessages และให้รู้จักชื่อเล่นในไลน์ของเราด้วย
- ฟังก์ชันจะเพิ่มข้อความใหม่จากผู้ใช้ลงใน tempMessages
4.OpenAI Completions: ข้อความทั้งหมดที่เก็บใน tempMessages จะถูกส่งไปยัง OpenAI เพื่อสร้างการตอบกลับ
5.Reply Message: ผลลัพธ์จาก OpenAI จะถูกส่งกลับไปยังผู้ใช้ผ่าน LINE
สิ่งที่ต้องเตรียมสำหรับบทความนี้
- Line OA หรือ Line Messaging API
- เปิดบัญชี OpenAI พร้อมผูกบัตรให้เรียบร้อยไม่จำเป็นต้องเปิด Chat GPT
- Golang ลงในเครื่องให้พร้อม
- VSCode ขาดไม่ได้แต่ใครถนัดอันไหนก็ใช้อันนั้น 5555
- ngrok ถ้าใครใช้ตัวอื่นก็ได้ใช้ได้ครับ
มาดูขั้นตอนติดตั้งดีกว่าเริ่มจาก Line ก่อน
ขั้นแรกไปที่ https://developers.line.biz/console/ เพื่อสร้าง Provider และ Line Message API
ต่อมาสมัคร Open AI
สมัครง่ายๆแค่ Login Google แล้วก็ไปที่ URL นี้เพื่อผูกบัตร https://platform.openai.com/settings/organization/billing/overview
จากนั้นก็ไปเพิ่ม Key เพื่อที่จะเอามาใช้ใน Code เราเอง https://platform.openai.com/api-keys
ต่อมามาดูหน้าตาของ Code กัน มาอธิบายส่วนสำคัญเป็นจุดๆ
Role system : เป็นการตั้งค่าเริ่มต้นให้ AI โดยผมให้เป็นเด็กเล็กน่ารักชื่อว่าลูฟี่ หรือ ปลาวาฬ และตอบเป็นภาษาไทยเท่านั้น
Role user : ที่ User ถาม
Role assistant : ที่ Bot ตอบ
จากนั้นผมจะ Run NGROK ที่ port 3000
ngrok http 3000
มาชมวีดีโอกันครับจะได้บอทหน้าตาแบบนี้ออกมา
แค่นี้ก็มีบอทฉลาดๆไว้คุยกันแล้วแต่อาจจะเสียเงินขึ้นมาเยอะหน่อยแต่เอาไว้ใช้เองผ่าน Serverless ยิ่งสบายเลยถ้าเอาใช้เอง ถ้าเอาไปใช้จริงยังไงก็ต้องผ่านฐานข้อมูลนะครับอันนี้เป็นบอททำมาเล่นๆไว้ใช้เอง หวังว่าจะเป็นประโยชน์ไม่มากก็น้อยนะครับ รอบหน้ามาชม PartII กันครับจะมาพูดถึง embedding และ vector กดจากตรงนี้ได้เลยครับ PartII