สร้างนักโภชนาการส่วนตัว ด้วย Chat GPT + Line + Google Sheet + Make.com
หนึ่งในปัญหาที่ทุกคนต้องเจอในการลดน้ำหนัก คือการบันทึกอาหาร และ จำนวน calories ที่ตนเองกินลงไป ซึ่งหลายๆครั้ง ก็ไม่แน่ใจว่าบันทึกถูกหรือไม่ และเราก็ขี้เกียจนั่งวิเคราะห์ด้วยว่าบะหมี่ที่เรากิน มัน 400 แคล หรือ 600 แคลนะ? พอทำไปเรื่อยๆก็เริ่มขี้เกียจ เลิกจดไปในที่สุด
ในบทความวันนี้เราจะมาสอนสร้างนักโภชนาการส่วนตัว ด้วย Chat GPT 4o ผ่านทางช่องทาง Line โดยจะแบ่งเป็น 3 ส่วนใหญ่ๆ คือ ส่วนที่ 1 การวิเคราะห์โภชนาการ จากรูปภาพ ส่วนที่ 2 การนำข้อมูลเหล่านั้นมาเก็บเป็นรูปแบบของตารางใน Google Sheet และ ส่วนที่ 3 ก็คือการให้น้องสรุปข้อมูลแคลอรี่ที่ทานไปในแต่ละวัน ตอบกลับมาใน Line
ส่วนที่ 0 ก่อนเริ่มทำ
ในบทความนี้ จะมีพูดถึงเกี่ยวกับการต่อ Line Official Account การใช้ Make.com และการใช้ Azure Open AI ถ้าหากยังไม่คุ้นเคย ลองกดไปอ่านด้านล่างก่อนได้เลยค่า
- วิธีการสร้าง Line OA และ เชื่อมต่อ API – Davoy
- คุยกับ ChatGPT ง่ายๆ ด้วย Line Chatbot – Davoy
- วิธีใช้ Azure OpenAI – Davoy
สำหรับการเตรียมการใน Line OA เราจะไปเปลี่ยนรูป Profile ให้น่ารักขึ้น รวมไปถึงตั้ง Rich Menu ทิ้งไว้ 3 อัน ได้แก่
- How to use จะส่งข้อความเป็น ?! และตั้ง Autoreply เป็นวิธีการใช้รวมถึง URL ใน Google Shet ที่เราได้
- Summarize จะส่งข้อความเป็น cal และเราจะไปตั้งในขั้นตอนที่ 3 ให้ตอบเป็นจำนวนแคลที่กินไปในวันนี้
- Dashboard ถ้ามีการกดปุ่มนี้ จะส่ง URL ใน Looker Studio กลับมา
ส่วนที่ 1 การวิเคราะห์โภชนาการ จากรูปภาพ
โดยการทำงานก็คือ เราจะส่งรูปอาหารที่เรากินแต่ละมื้อให้ “น้อง” ผ่านทาง Line Official Account ที่เราเปิดขึ้นมาเพื่อการนี้โดยเฉพาะ แล้ว “น้อง” ก็จะวิเคราะห์ให้เราว่า อาหารมื้อนี้มีแคลอรี่เท่าไหร่ ก่อนจะสรุปตอบกลับมาให้เราใน Line การทำแบบนี้เราสามารถทำได้ตั้งแต่ทาง Open AI ออกโมเดล Chat GPT 4o ให้เรา เพราะนอกจากที่เราสามารถส่ง prompt เป็นข้อความแล้ว เราก็ยังสามารถ prompt ด้วยรูปภาพ เช่นกัน
ข้อดีของการทำแบบนี้คือ เราไม่จำเป็นต้องลงโปรแกรมหรือ App เพิ่มในเครื่องเราเลย เพียงแค่เราต้องไปคุยกับ Line OA ที่ปักหมุดไว้แค่นี้เอง นอกจากนี้ ถ้าเราลืมถ่ายรูป เวลาไปกินอาหารนอกบ้าน เราก็ยังสามารถเสิชหารูปจาก Google เพื่อส่งให้ “น้อง” แทนได้เช่นกัน และข้อที่เราชอบที่สุดคือ ไม่ต้องมานั่งคิด ว่าอาหารจานนี้ มันดีหรือชั่วนะ แล้วมันมีแคลเท่าไหร่?
ส่วนข้อจำกัดที่ต้องระวังคือ น้องเป็น AI ดังนั้นการวิเคราะห์ของน้อง อาจจะไม่ได้แม่นยำ 100% และบางครั้งเวลาเราสั่งอาหารมาแบ่งกันกับเพื่อน น้องยังไม่สามารถแบ่งให้เราได้
โดยวิธีการทำสิ่งนี้ จะคล้ายๆกับการทำ Chat GPT ผ่านทาง Line (https://davoy.tech/th/how-to-use-chatgpt-via-line-chatbot/) แต่แตกต่างกันที่ว่า เราจะใช้รูปภาพ เป็น Input ของ Chat GPT 4o แทนที่จะเป็นข้อความธรรมดา ซึ่งความยากจะเกิดขึ้นตรงที่เราจะต้องเพิ่ม HTTP Request เพื่อยิง API ไปขอรูปภาพจาก Line และนำรูปมาอัพโหลดทิ้งไว้ใน Google Drive เพื่อนำ URL รูปส่งต่อไปให้น้อง Chat GPT 4o

สำหรับการใช้ Chat GPT ใน บทความนี้เราจะใช้ผ่านทาง Azure Open AI และเลือกโมเดลเป็น 4o เพราะสามารถรับ Input เป็นรูปภาพที่เราอัพโหลดไว้ในขั้นตอนก่อนหน้าได้พอดี
นอกจากนี้เราจะ Set System Message ให้น้องเป็นผู้เชี่ยวชาญด้านโภชนาการ ในประเทศไทย เพื่อที่น้องจะได้วิเคราะห์ในมุมมองของโภชนาการ และ เดาชื่ออาหารที่มีในกรุงเทพได้แม่นขึ้น เช่น ยำแหนม หรือ ไข่เจียวชะอม น้องก็ยังสามารถเดาได้ และด้านล่างคือ prompt ที่ใช้กับน้อง
“You’re a nutritionist expert in Bangkok. You will help me identify the dish name and how many calories it provides as well as rate it in 4 scores from 0-10 which 10 is most healthy and 0 is very unhealthy. You’ll also provide the micronutrients analysis of protein, carb, fat, saturated fat, sugar and sodium contents in the food.”
และสุดท้ายเราก็จะใช้ Make.com ส่งข้อความตอบกลับที่เราได้จาก Chat GPT 4o กลับไปทาง Line Official Account เหมือนเดิม ในขั้นตอนนี้เราก็จะได้ผลลัพธ์การวิเคราะห์อาหารจากรูป
ส่วนที่ 2 การนำข้อมูลเหล่านั้นมาเก็บเป็นรูปแบบของตารางใน Google Sheet
หลังจากที่เราได้การวิเคราะห์แล้ว ข้อมูลที่เราได้ด้านบน จะเป็นข้อมูลในรูปแบบของ Text ที่ค่อนข้าง Unstructured แปลว่าถ้าเราส่งไปทุกครั้ง ข้อมูลก็จะกลับมาไม่ออกมาเป็นรูปแบบทุกครั้ง (แม้จะใกล้เคียงกัน) ซึ่งในการเอาข้อมูลนี้มาเก็บในรูปแบบของตาราง เราก็อยากกำหนดให้มีรูปแบบที่ชัดเจน เช่นหัวตาราง โดยเราจะใช้น้อง Chat GPT 4o mini แทน เนื่องจากเป็นงานที่ไม่ซับซ้อนมาก และเราจะเปลี่ยน system message ให้เป็น data parser แทน เพื่อให้ออกมาเป็น JSON และเราจะใช้ JSON แปลงออกมาใส่ Google Sheet หยอดตามตารางอีกที

You are the data parser. You’ll extract the data and replace the value for the JSON below. You’ll only return the JSON with exact formatting without any preceding words. If there’s more than one food recorded, you’ll combine all to return only one entry.
{
“name”: “french fries”,
“calories”: 300,
“weight”: “80g”,
“score”: 2,
“protein”: “3g”,
“carb”: “35g”,
“fat”: “15g”,
“saturated fat”: “2.5g”,
“sugar”: “0g”,
“sodium”: “210mg”
}
หลังจากที่เราได้ข้อมุลในรูปแบบ JSON ออกมาแล้ว เราก็จะใช้ตัว Parse JSON ของ Make.com เพื่อแตกออกมาเป็น field ต่างๆ และนำไปหยอดใน Google Sheet ที่เราตั้งไว้เลย

สิ่งที่ต้องระวังในการทำสิ่งนี้คือ เวลาจะเป็น UTC ดังนั้นเราจะต้องไปบวกเวลาให้เป็นประเทศไทย โดยจะเลือกเขียนสูตรใน Make.com หรือไปเขียนใน Google Sheet ก็ได้เช่นกัน
นอกจากนี้ใน Google Sheet เราสามารถให้แสดงผลเป็นรูปภาพได้ด้วยการใช้ คำสั่ง =IMAGE(URL)

ส่วนที่ 3 ก็คือการให้น้องสรุปข้อมูลแคลอรี่ที่ทานไปในแต่ละวัน ตอบกลับมาใน Line
ในส่วนนี้เราจะสามารถทำได้สองรูปแบบ ในรูปแบบแรกคือ ใช้สูตรคำนวนไว้ใน Google Sheet และให้ตอบกลับมาผ่านทาง Line (โดยใช้ Make.com) เมื่อมีข้อความคำว่า cal ส่งมาหาเรา



นอกจากนี้เราก็สามารถเอาสิ่งนี้ไปทำ Dashboard ใน Google Looker Studio ได้เลย ไม่ว่าเราอยากจะหมุนแบบไหน ก็สามารถหมุนได้ตามใจเราเลยค่ะ เช่น สรุปสิ่งที่กินวันนี้ หรือ สรุป calories ย้อนหลัง

สรุปภาพรวมทั้งหมด Flow ที่เราสร้างไว้ก็จะเป็นประมาณนี้ค่ะ ด้วยข้อจำกัดของ Make.com เราจะแนะนำให้สร้าง bot เองของใครของมัน แต่ถ้าอยากแชร์กัน 2-3 คนก็ยังพอไหวค่ะ แต่เราก็จะต้องไปเพิ่ม Filter อีกว่าใครเป็นคนส่งรูปภาพมา และรวมของแต่ละคนค่ะ

ถ้าหากอยากสร้างระบบอะไรแบบนี้ ลองทักมาคุยกับ AI Alchemist (https://davoy.tech/th/what-does-an-ai-alchemist-do/) ที่ Line @davoy ได้เลยค่ะ
สามารถกด Subscribe เพ่อรับการแจ้งเตือนเมื่อเรามีบล็อกใหม่ๆ ได้ที่ช่องด้านล่างเลย
[hubspot type=”form” portal=”47406981″ id=”244b28eb-5322-4f57-80ff-1745ac75313c”]

