minseo on Nostr: สวัสดีชาว #siamstr เช่นเคย ...
สวัสดีชาว #siamstr เช่นเคย วันนี้หยิบหนึ่งใน session จากงาน #LINEDEVCONF2024 ซึ่ง session นี้เป็น session ที่อยากฟังมาก ยอมไม่เข้า workshop เลยนะ 😂 กับ session ที่ชื่อว่า Building a Fortune Teller App with OpenAl: From Chatbot to Voice Assistant โดยคุณ Pathai Suwannawiwat เป็น Solution Engineer จาก LINE
ทุกลมหายใจของเราเห็นคำว่า AI เข้ามาตลอด มี use case แบบ ultimate คือ AI มาอยู่ในสุขภัณฑ์ ถ่ายรูปผลการขับถ่าย ใช้ image processing วิเคราะห์ให้เรา และใน session นี้ก็มี ultimate use case คือให้ AI ทำนายเลขจากความฝัน
.
จากนั้นเปิด demo ให้ดู ซึ่งอัดเป็นคลิปไว้ เหมือนเป็นหน้าเว็บเป็นน้องแมว นามว่า Satomeow มาช่วยทำนายตัวเลขจากความฝัน user ก็พูดว่าเมื่อคืนฝันอะไร แล้วเจ้าแมว Satomeow ก็พูดตอบให้
.
แล้วแอพนี้สร้างยังไง? หลัก ๆ เลยคือ ใช้ API จาก OpenAI Models ร่วมกับ LINE API
.
🟢 ปูพื้นฐานเรื่อง AI กันสักเล็กน้อย
ถ้าใครยังงง ๆ ปูพื้นกันก่อนว่า model คืออะไร? model คือโปรแกรมรับ input เพื่อทำการ generate ออกมาเป็น output ต่าง ๆ จากการเรียนรู้จากข้อมูลมหาศาล เช่น text-to-text รับ input เป็น text และ output เป็น text
ส่วน multi-model เป็นการเพิ่มความสามารถในการรับ input และ output หลาย ๆ type เช่น สามารถรับ text กับ image ได้พร้อมกันได้
.
🟢 OpenAI Model Group
ประเภทของ model ของ OpenAI จะมี 3 กลุ่มหลัก ๆ คือ
1. Text Generation
2. Image Generation
3. Speech Generation
.
🟢 OpenAI Flagship Models
- GPT-4o, GPT-o1 และอื่น ๆ: text-to-text กับ image-to-text
- Whisper: speech-to-text
- TTS: text-to-speech
- DALL-E: text-to-image
.
🟢 OpenAI API
model ก็คือโปรแกรมเนอะ และตัว model จะถูก wrap ให้ติดต่อกันผ่าน OpenAI API ผ่าน HTTP protocol ปกติเลย
1️⃣ Text Generation API
- Completion API: text-to-text พวก model GPT ใด ๆ เป็น stateless ไม่สามารถ maintain แชทได้ ต้องส่ง history log เข้าไป
- Assistant API: ถูก improve จาก text-to-text ให้สามารถรับข้อมูลได้หลาย type มากขึ้น และเป็น stateful ไม่ต้องส่ง history log ไป
2️⃣ Speech to Text API
- Audio Transcription API: แปลง audio เป็น text
3️⃣ Text to Speech
- Audio Speech: text-to-audio
4️⃣ Realtime API
- speech-to-speech เหมาะกับ realtime ใช้ model GPT-4o-realtime
⭐️ Playground: เราสามารถเล่นผ่านหน้านี้ใน OpenAI ได้เลย และอย่าลืมเติมเงินก่อนใช้
.
🟢 LINE x OpenAI
- ถ้าเป็นแบบแชท จะแชทผ่าน LINE OA แล้วเชื่อมต่อ webhook ด้วย Firebase Cloud Function แล้วส่งไที่ AI โดยมี process คือ สามารถตอบคำถาม และส่งกลับไปได้
- ตัว demo ใช้ LIFF เพื่อ access hardware อย่างไมค์ ส่งต่อไปที่ Firebase Cloud Function เช่นเดิม ใช้ API ตัว speech-to-text และ assistance API จนได้คำตอบออกมา จบด้วย text-to-speech ทำให้ use case นี้มีความ flexibility และ complex conversation อย่างนุ่มลึก
- หรือใช้ Realtime API อยู่ข้างหลังเส้นเดียว ซึ่งมี latency ตํ่า แล้ว code อาจจะ sample ขึ้น
ซึ่งทั้งสองมี benefit แตกต่างกัน อยู่ที่ use case ของเรา 😃
ทุกลมหายใจของเราเห็นคำว่า AI เข้ามาตลอด มี use case แบบ ultimate คือ AI มาอยู่ในสุขภัณฑ์ ถ่ายรูปผลการขับถ่าย ใช้ image processing วิเคราะห์ให้เรา และใน session นี้ก็มี ultimate use case คือให้ AI ทำนายเลขจากความฝัน
.
จากนั้นเปิด demo ให้ดู ซึ่งอัดเป็นคลิปไว้ เหมือนเป็นหน้าเว็บเป็นน้องแมว นามว่า Satomeow มาช่วยทำนายตัวเลขจากความฝัน user ก็พูดว่าเมื่อคืนฝันอะไร แล้วเจ้าแมว Satomeow ก็พูดตอบให้
.
แล้วแอพนี้สร้างยังไง? หลัก ๆ เลยคือ ใช้ API จาก OpenAI Models ร่วมกับ LINE API
.
🟢 ปูพื้นฐานเรื่อง AI กันสักเล็กน้อย
ถ้าใครยังงง ๆ ปูพื้นกันก่อนว่า model คืออะไร? model คือโปรแกรมรับ input เพื่อทำการ generate ออกมาเป็น output ต่าง ๆ จากการเรียนรู้จากข้อมูลมหาศาล เช่น text-to-text รับ input เป็น text และ output เป็น text
ส่วน multi-model เป็นการเพิ่มความสามารถในการรับ input และ output หลาย ๆ type เช่น สามารถรับ text กับ image ได้พร้อมกันได้
.
🟢 OpenAI Model Group
ประเภทของ model ของ OpenAI จะมี 3 กลุ่มหลัก ๆ คือ
1. Text Generation
2. Image Generation
3. Speech Generation
.
🟢 OpenAI Flagship Models
- GPT-4o, GPT-o1 และอื่น ๆ: text-to-text กับ image-to-text
- Whisper: speech-to-text
- TTS: text-to-speech
- DALL-E: text-to-image
.
🟢 OpenAI API
model ก็คือโปรแกรมเนอะ และตัว model จะถูก wrap ให้ติดต่อกันผ่าน OpenAI API ผ่าน HTTP protocol ปกติเลย
1️⃣ Text Generation API
- Completion API: text-to-text พวก model GPT ใด ๆ เป็น stateless ไม่สามารถ maintain แชทได้ ต้องส่ง history log เข้าไป
- Assistant API: ถูก improve จาก text-to-text ให้สามารถรับข้อมูลได้หลาย type มากขึ้น และเป็น stateful ไม่ต้องส่ง history log ไป
2️⃣ Speech to Text API
- Audio Transcription API: แปลง audio เป็น text
3️⃣ Text to Speech
- Audio Speech: text-to-audio
4️⃣ Realtime API
- speech-to-speech เหมาะกับ realtime ใช้ model GPT-4o-realtime
⭐️ Playground: เราสามารถเล่นผ่านหน้านี้ใน OpenAI ได้เลย และอย่าลืมเติมเงินก่อนใช้
.
🟢 LINE x OpenAI
- ถ้าเป็นแบบแชท จะแชทผ่าน LINE OA แล้วเชื่อมต่อ webhook ด้วย Firebase Cloud Function แล้วส่งไที่ AI โดยมี process คือ สามารถตอบคำถาม และส่งกลับไปได้
- ตัว demo ใช้ LIFF เพื่อ access hardware อย่างไมค์ ส่งต่อไปที่ Firebase Cloud Function เช่นเดิม ใช้ API ตัว speech-to-text และ assistance API จนได้คำตอบออกมา จบด้วย text-to-speech ทำให้ use case นี้มีความ flexibility และ complex conversation อย่างนุ่มลึก
- หรือใช้ Realtime API อยู่ข้างหลังเส้นเดียว ซึ่งมี latency ตํ่า แล้ว code อาจจะ sample ขึ้น
ซึ่งทั้งสองมี benefit แตกต่างกัน อยู่ที่ use case ของเรา 😃