Title

"ในยุคที่ AI เข้ามามีบทบาทสำคัญ การสร้าง Chatbot ที่ ‘ฉลาด' และ ‘เข้าใจบริบท' ไม่จำเป็นต้องเขียนโค้ดที่ซับซ้อนอีกต่อไป"

ใน Codelab นี้ คุณจะได้เรียนรู้วิธีสร้าง LINE AI Chatbot แบบ Step-by-Step และที่สำคัญคือไม่ต้องเขียนโค้ด โดยใช้ Technology Stack ที่ทรงพลังและเริ่มต้นได้ฟรี:

สิ่งที่คุณจะได้ลงมือทำ

สิ่งที่คุณจะได้เรียนรู้

สิ่งที่คุณต้องเตรียมพร้อมก่อนเริ่ม Codelab

LINE Messaging API คืออะไร?

LINE Messaging API คือ API ที่ให้บริการโดย LINE Corporation ที่จะทำหน้าที่เป็นตัวกลางที่จะเชื่อมต่อ Server ของเราเข้ากับ LINE Official Account ทำให้เราสามารถเขียนโปรแกรมเพื่อสร้างบริการที่เราต้องการ ผ่านข้อความและโต้ตอบกับผู้ใช้ในลักษณะ Chatbot ได้นั่นเอง โดยสามารถโต้ตอบกับผู้ใช้หลักๆ ได้ 2 แบบ ได้แก่ push และ reply

Push messages

LINE Messaging API

การส่งข้อความจาก Chatbot ไปหาผู้ใช้ โดยที่ผู้ใช้อยู่เฉยๆ ไม่ได้มีการ request อะไรมาที่ Chatbot (ลักษณะ One-way communication) เช่น Chatbot ส่งข้อความโปรโมชั่นไปหาผู้ใช้

Reply messages

LINE Messaging API

เป็นการโต้ตอบกับ Chatbot โดยผู้ใช้เป็นคน request มาที่ Chatbot ก่อนและตัว Chatbot ทำการตอบข้อความกลับไปหาผู้ใช้ เช่น ผู้ใช้ส่งข้อความเข้ามา หรือ ผู้ใช้ทำการ Add Chatbot เป็นเพื่อน (ผู้ใช้เป็นคนทักหา Account เราก่อน ลักษณะ Two-way communication)

Webhook events คืออะไร?

Webhook events คือเหตุการณ์ event ต่างๆ ที่เกิดขึ้นกับ Chatbot ของเรา (event trigger) เมื่อผู้ใช้มีการโต้ตอบหรือใช้งาน LINE OA โดย event เกิดขึ้นจะมีสัญญาณพร้อมกับข้อมูลในรูปแบบที่เป็น JSON วิ่งมาที่ Webhook ที่เราผูกไว้กับ LINE OA ซึ่งภายใน JSON นั้นจะมี replyToken ที่ไว้ใช้สำหรับการ Reply messages เพื่อตอบกลับผู้ใช้ได้นั่นเอง LINE Messaging API

การสร้าง Webhook Server ด้วย n8n

ในการพัฒนา Webhook Server เพื่อจะรอรับ events และทำการตอบกลับเพื่อสร้างเป็น LINE Chatbot นั้นสามารถทำได้หลายวิธี แต่ใน Codelab นี้จะใช้ n8n ในการเป็น Webhook Server

ภาพรวมการทำงานเมื่อนำ n8n มาใช้เป็น Webhook Server

Architecture

ขั้นตอนการทำงานตามภาพประกอบ:

  1. LINE APP: ผู้ใช้งาน (User)
    • เริ่มต้นจากการที่ผู้ใช้ LINE OA ใช้งาน Chatbot เช่น ส่งข้อความ ส่งรูปภาพ หรือเพิ่มเพื่อน
  2. LINE Platform (LINE Bot Platform)
    • ทำหน้าที่เป็นตัวกลาง จัดการการรับส่งข้อความ
    • เมื่อมีเหตุการณ์ (Event) เกิดขึ้น จะทำการส่ง Webhook (ข้อมูล JSON) ไปยัง URL ของ Server ที่เรากำหนดไว้
    • รอรับ API requests จาก Webhook Server ของเรา เพื่อส่งข้อความตอบกลับ (Response) ไปยังผู้ใช้
  3. Webhook Server (n8n)
    • ทำหน้าที่รอรับ Webhook events ที่ส่งมาจาก LINE Platform
    • นำข้อมูลที่ได้มาประมวลผลตาม Workflow ที่เราออกแบบไว้ใน n8n
    • เมื่อประมวลผลเสร็จ และต้องการตอบกลับ จะทำการส่ง API call กลับไปยัง LINE Messaging API เพื่อให้ LINE ส่งข้อความไปหาผู้ใช้

สร้าง LINE Official Account

จุดเริ่มต้นของการพัฒนา LINE Chatbot คือคุณจะต้องสร้าง LINE OA(LINE Official Account) และเปิดใช้งาน Messaging API

  1. เข้าไปที่ https://manager.line.biz แล้วเลือก Log in with LINE account (สีเขียว) เพื่อเข้าสู่ระบบ

LINE Manager Login

  1. เข้าสู่ระบบด้วยบัญชี LINE ของคุณให้เรียบร้อย
  2. กดสร้าง LINE OA จากปุ่ม Create LINE official account สำหรับผู้ที่สร้าง LINE OA ครั้งแรก หรือกด Create new ทางด้านซ้ายสำหรับผู้ที่เคยสร้าง LINE OA แล้ว LINE Manager Dashboard
  3. ให้ระบุข้อมูลต่างๆ ลงไปในฟอร์ม แล้วกด ตกลงCreate LINE OA
  4. จากนั้นให้ยืนยันรายละเอียดในการสร้าง LINE OA เป็นอันเสร็จสิ้น LINE OA Form

เปิดใช้งาน Messaging API

หลังจากที่เรามี LINE OA เรียบร้อยแล้ว ขั้นตอนนี้จะพาทุกคนไปเพิ่มความสามารถให้ LINE OA ของเรากลายเป็น LINE Chatbot ได้

  1. เข้าไปที่ https://manager.line.biz ในกรณีที่เรามีบัญชี LINE OA ที่สร้างไว้แล้ว หน้านี้จะแสดงบัญชี LINE OA ต่างๆ ที่เรามี ก็ให้เรากดเลือกบัญชี LINE OA ที่เราต้องการ

Select LINE OA

  1. ให้เราไปที่เมนู Settings > Messaging API แล้วให้กดปุ่ม Enable Messaging API

Enable Messaging API

  1. หากเป็นการ Enable Messaging API ครั้งแรกของบัญชี LINE Business ID จะเจอหน้าให้ลงทะเบียน Developer info ก็ให้กรอก ชื่อ และ อีเมล

Developer Info

  1. จากนั้นให้สร้าง Provider ใหม่ หรือเลือก Provider เดิมกรณีที่เคยสร้างไปแล้ว

Create Provider

  1. ระบุ URL ของ Privacy Policy และ Terms of Use (ถ้ามี) หากยังไม่มีก็สามารถกดปุ่ม ตกลง ข้ามไปได้

Privacy Policy and Terms

  1. ยืนยันการเปิดใช้งาน Messaging API ด้วยการกด Ok

Confirm Messaging API

  1. เมื่อเจอหน้านี้ ก็แปลว่าคุณได้เปิดใช้งาน Messaging API ให้กับบัญชี LINE OA เรียบร้อยแล้ว

Messaging API Enabled

เพิ่ม Chatbot เป็นเพื่อนและตั้งค่า Channel

ขั้นตอนนี้เราจะเข้าไปใช้งาน LINE Developers Console ซึ่งเป็นเว็บไซต์สำหรับการบริหารจัดการ LINE Chatbot (LINE OA ที่เปิดใช้งาน Messaging API แล้ว) ในส่วนของนักพัฒนา

  1. เข้าไปที่ https://developers.line.biz/console/ ให้กดเลือก Provider ที่ต้องการ

Select Provider

  1. เราจะพบกับบัญชี LINE OA ที่เราได้เปิดใช้งาน Messaging API ไว้ ซึ่งในที่นี้เราจะเรียกมันว่า Channel (Channel จะเปรียบเสมือน Chatbot หรือ App) ก็ให้กดเลือก Channel ที่ต้องการ

Select Channel

  1. ให้ไปที่ Tab ชื่อ Messaging API และทำการสแกน QR code ด้วยแอป LINE เพื่อเพิ่ม Chatbot เป็นเพื่อน

Scan QR Code

  1. ให้ปิด Auto-reply messages เนื่องจากฟีเจอร์นี้จะเป็น default การตอบกลับของ Chatbot ซึ่งไม่จำเป็นต้องใช้ฟีเจอร์นี้

Disable Auto-replyDisable Auto-reply

  1. กลับมาที่ Channel ที่เราสร้างใน Tab ชื่อ Messaging API ตรงส่วนของ Channel access token ให้กดปุ่ม Issue

Issue Channel Access Token

n8n คืออะไร?

n8n (pronounced "n-eight-n") เป็น open-source workflow automation tool ที่ช่วยให้คุณสามารถเชื่อมต่อ services และ APIs ต่างๆ เข้าด้วยกันได้โดยไม่ต้องเขียนโค้ดมาก n8n

ฟีเจอร์หลัก

เหมาะกับงานแบบไหน?

  1. Automation Tasks - จัดการข้อมูลระหว่าง services, สร้าง reports อัตโนมัติ, Sync ข้อมูลระหว่าง systems
  2. API Integration - เชื่อมต่อ APIs หลายตัวเข้าด้วยกัน, Transform และ enrich ข้อมูล, สร้าง API endpoints ใหม่
  3. Chatbots & AI Agents - สร้าง chatbot สำหรับ messaging platforms, เชื่อมต่อกับ AI/LLM services
  4. Data Processing - Process และ transform ข้อมูล, ส่งข้อมูลไปยัง database, สร้าง data pipelines
  5. Notifications & Alerts - ส่งการแจ้งเตือนเมื่อมี event เกิดขึ้น, สร้าง monitoring workflows, Integrate กับ notification services

แนวคิด Workflow-based Automation

Workflow คืออะไร?

Workflow คือลำดับของ steps (nodes) ที่ทำงานต่อเนื่องกัน โดยแต่ละ node จะ:

ตัวอย่าง Workflow

Workflow

ประเภทของ Nodes

Nodes

  1. Trigger Nodes: เริ่ม workflow (Webhook, Schedule, Manual Trigger)
  2. Action Nodes: ทำ action ต่างๆ (HTTP Request, Database, Email)
  3. Logic Nodes: ควบคุม flow (IF, Switch, Merge)
  4. Data Nodes: จัดการข้อมูล (Set, Code, Function)
  5. AI Nodes: เชื่อมต่อกับ AI services (Gemini, OpenAI, Anthropic)

ข้อดีของ Workflow-based

สรุป: ทำไมเลือก n8n?

  1. Self-hosted ฟรี: ไม่มีค่าใช้จ่ายสำหรับ self-hosted
  2. Open Source: สามารถปรับแต่งและ extend ได้
  3. Flexibility: เชื่อมต่อกับ services มากมาย
  4. Control: ควบคุมข้อมูลและ infrastructure ได้เต็มที่
  5. Cost-effective: ประหยัดเมื่อเทียบกับ SaaS solutions

Architecture

ขั้นตอนทั้งหมด

  1. เข้าสู่ระบบ Render Dashboard
  2. สร้าง Web Service บน Render
  3. ตั้งชื่อ Service และเลือก Plan
  4. ตั้งค่า Environment และ Deploy
  5. เริ่มต้นใช้งาน n8n บน Render

1. เข้าสู่ระบบ Render Dashboard

2. สร้าง Web Service บน Render

3. ตั้งชื่อ Service และเลือก Plan

Render Dashboard - New Web ServiceRender Dashboard - New Web Service

4. ตั้งค่า Environment และ Deploy

5. เริ่มต้นใช้งาน n8n บน Render

หลังจาก Deploy เสร็จ ให้เปิด URL ด้านบนซ้ายเพื่อเริ่มต้นใช้งาน n8n คุณจะพบหน้า n8n Register ที่ให้กรอกข้อมูลสำหรับสร้าง account n8n

n8n Setup Owner Account

เราจะตั้งค่า n8n ให้รับข้อความจาก LINE โดยใช้ Node "Line Messaging" (ต้องติดตั้งเพิ่ม) ซึ่งจะจัดการเรื่อง Webhook ให้เราโดยอัตโนมัติ

ขั้นตอนทั้งหมด

  1. สร้าง Workflow ใหม่
  2. ติดตั้งและเพิ่ม Node LINE Messaging
  3. ตั้งค่าการเชื่อมต่อ (Credentials)
  4. เพิ่ม Reply Node
  5. ตั้งค่า Webhook URL ใน LINE Developer Console
  6. ทดสอบผ่าน LINE บนมือถือ
  7. ตรวจสอบการทำงานของ Workflow บน n8n

1. สร้าง Workflow ใหม่

เมื่อเข้าสู่หน้า Dashboard คลิกที่การ์ด "Start from scratch"n8n Welcome

2. ติดตั้งและเพิ่ม Node LINE Messaging

เนื่องจาก Node ของ LINE ไม่ได้มีติดมากับตัวตั้งต้น เราต้องทำการติดตั้งผ่าน Verified Community Nodes ก่อน

3. ตั้งค่าการเชื่อมต่อ (Credentials)

4. เพิ่ม Reply Node

5. ตั้งค่า Webhook URL ใน LINE Developer Console

6. ทดสอบผ่าน LINE บนมือถือ

จะเห็นได้ว่า n8n workflow นี้สามารถตอบกลับเป็นข้อความอัตโนมัติได้

n8n Test Chat

7. ตรวจสอบการทำงานของ Workflow บน n8n

ในส่วนด้านบนของ n8n interface คุณสามารถกดเลือก Execution เพื่อดูการทำงานของ n8n ที่ใช้เป็น Webhook server รับ events จาก LINE ได้ โดยจะแสดงรายละเอียดการทำงานของแต่ละ node และข้อมูลที่ผ่านเข้ามา

n8n Test Chat

AI Agent คือระบบบอทที่มีความสามารถสูงกว่า Chatbot ทั่วไป โดยใช้เทคโนโลยี Generative AI และ LLM (Large Language Model) เป็นแกนหลักในการประมวลผล ทำให้มีความสามารถในการทำความเข้าใจภาษาและบริบทที่ซับซ้อน ได้แก่:

องค์ประกอบหลักของ AI Agent

โครงสร้างการทำงานของ AI Agent ประกอบด้วย 5 ส่วนสำคัญ คือ:

  1. User Message คำถามที่ผู้ใช้ต้องการถามหรือสนทนากับ Agent
  2. LLM Model: โมเดลภาษาที่เป็นหน่วยประมวลผลหลักและคลังความรู้
  3. System Prompt: คำสั่งกำกับดูแลเพื่อกำหนดพฤติกรรมของ Agent
  4. Memory: หน่วยความจำสำหรับเก็บประวัติการสนทนา เข้าใจความต่อเนื่องของบทสนทนา
  5. Tools: เครื่องมือสำหรับเชื่อมต่อกับระบบภายนอกเพื่อทำภารกิจต่างๆ

เจาะลึก System Prompt

System Prompt (หรือ Instruction Prompt) คือส่วนประกอบที่สำคัญที่สุดในการกำหนดบุคลิกและการทำงานของ AI Agent เปรียบเสมือนชุดคำสั่งที่ระบุขอบเขตความรับผิดชอบ เพื่อให้ LLM ทำงานได้ตรงตามวัตถุประสงค์

การเขียน Instruction ที่ดีสำหรับ AI Agent ควรกำหนดหัวข้อต่อไปนี้ให้ชัดเจน:

การเรียกใช้เครื่องมือ (Tool Calling)

AI AgentTool Calling คือความสามารถของ AI ในการเลือกใช้เครื่องมือหรือฟังก์ชันเพื่อกระทำสิ่งต่างๆ นอกเหนือจากการคุยตอบโต้ปกติ เช่น:

ตัวอย่าง Use Case ของ AI Agent

การกำหนด Instruction ที่แตกต่างกัน จะทำให้ได้ AI Agent ที่มีหน้าที่แตกต่างกันอย่างสิ้นเชิง ดังตัวอย่างต่อไปนี้: AI Agent

  1. Customer Service Agent
    • Instruction: กำหนดบทบาทเป็นเจ้าหน้าที่บริการลูกค้า ให้ข้อมูลด้วยความสุภาพและถูกต้องตามนโยบาย
    • การทำงาน: ตอบคำถามเกี่ยวกับสินค้า แก้ไขปัญหาเบื้องต้น และให้คำแนะนำการใช้งาน
  2. E-commerce Shopping Assistant
    • Instruction: กำหนดบทบาทเป็นผู้ช่วยช้อปปิ้ง แนะนำสินค้าโดยวิเคราะห์จากความต้องการของผู้ใช้
    • การทำงาน: สอบถามสไตล์ที่ชอบ แนะนำสินค้าที่เกี่ยวข้อง และช่วยเปรียบเทียบคุณสมบัติ
  3. Appointment Booking Agent
    • Instruction: กำหนดบทบาทเป็นเจ้าหน้าที่รับจองคิว ตรวจสอบตารางเวลาว่างและยืนยันนัดหมาย
    • การทำงาน: รับเรื่องการจอง ตรวจสอบ Slot เวลาว่างจากระบบ และบันทึกการนัดหมาย

AI AgentGoogle AI Studio เป็นแพลตฟอร์มที่ Google จัดทำขึ้นเพื่อให้ผู้พัฒนาสามารถทดสอบและใช้งาน Google Gemini AI models ได้อย่างง่ายดาย โดยสามารถสร้าง API Key เพื่อใช้เชื่อมต่อกับ Gemini models ผ่าน API ได้

Google Gemini เป็น Large Language Model (LLM) ที่พัฒนาโดย Google ที่มีความสามารถในการประมวลผลภาษาและสร้างข้อความตอบกลับที่มีความหมายและเป็นธรรมชาติ

ขั้นตอนการสร้าง Gemini API Key

  1. สร้าง Project
    • ไปที่ Google AI Studio
    • เข้าสู่ระบบด้วยบัญชี Google ของคุณ
    • สร้าง Project ใหม่หรือเลือก Project ที่มีอยู่แล้ว AI AgentAI AgentAI Agent
  2. สร้าง Gemini API Key
    • คลิกที่เมนู Get API Key หรือไปที่ API Keys
    • คลิกปุ่ม Create API Key
    • เลือก Project ที่ต้องการใช้
    • คัดลอก API Key ที่สร้างขึ้นมา (เก็บไว้ใช้ในขั้นตอนถัดไป) AI AgentAI AgentGoogle AI Studio

ขั้นตอนการเพิ่มสมองให้บอทด้วยการใช้ AI Agent Node เพื่อประมวลผลข้อความจาก LINE และตอบกลับด้วย Google Gemini

ขั้นตอนทั้งหมด

  1. เพิ่ม AI Agent Node
  2. ตั้งค่า Prompt (User Message) ในการรับข้อความจากผู้ใช้งาน LINE OA
  3. เชื่อมต่อ Chat Model
  4. ตั้งค่า Google Gemini API Key และเลือกโมเดล

1. เพิ่ม AI Agent Node

Insert NodeSelect AI CategorySelect AI Agent

2. ตั้งค่า Prompt (User Message) ในการรับข้อความจากผู้ใช้งาน LINE OA

กำหนดให้ AI รับข้อความที่ผู้ใช้พิมพ์เข้ามาผ่าน LINE มาประมวลผลต่อและคิดคำตอบที่ควรตอบตามที่เราจะระบุในคำสั่งการทำงานของ AI

3. เชื่อมต่อ Chat Model

เพิ่มโมเดลภาษา (LLM) ให้กับ Agent เพื่อใช้ในการประมวลผลคำตอบ

Select Gemini Model

4. ตั้งค่า Google Gemini API Key และเลือกโมเดล

การเชื่อมต่อกับ Google Gemini จำเป็นต้องใช้ API Key

Simple Memory คือระบบหน่วยความจำที่ช่วยให้ AI Agent สามารถจดจำและเข้าใจบริบทจากการสนทนาก่อนหน้าได้ โดยจะเก็บประวัติการสนทนาของแต่ละผู้ใช้แยกกันตาม Session ID ทำให้การตอบกลับมีความต่อเนื่องและเป็นธรรมชาติมากขึ้น

ขั้นตอนทั้งหมด

  1. เพิ่ม Simple Memory Node
  2. ตั้งค่า Session ID
  3. ส่งคำตอบที่ได้จาก AI Agent กลับไปยังผู้ใช้
  4. Save และ Publish workflow และทำการทดสอบ

1. เพิ่ม Simple Memory Node

2. ตั้งค่า Session ID

ใน Codelabs นี้ Session ID คือ LINE UserId ที่ใช้เพื่อแยกประวัติการสนทนาของแต่ละผู้ใช้

3. ส่งคำตอบที่ได้จาก AI Agent กลับไปยังผู้ใช้

หลังจากที่ AI Agent ประมวลผลและสร้างคำตอบแล้ว เราต้องเชื่อมต่อกับ LINE Messaging Reply Node เพื่อส่งคำตอบกลับไปยังผู้ใช้

Completed WorkflowCompleted Workflow

4. Save และ Publish workflow และทำการทดสอบ

เมื่อตั้งค่าครบแล้ว พร้อมสำหรับการทดสอบ อย่าลืมกด Save และ Publish Completed Workflow

จากการทดสอบจะพบว่า Chatbot ที่ได้ตอบแบบข้อความอัตโนมัติได้เปลี่ยนเป็นตอบด้วย AI แล้ว แต่ยังไม่ตอบตรงโจทย์ธุรกิจที่เราสามารถเอาไปต่อยอดได้ ซึ่งเราจะไปทำการพัฒนาในหัวข้อถัดไป

Completed Workflow

ในส่วนนี้คุณจะได้เรียนรู้เกี่ยวกับ LINE Flex Message และ LINE Flex message simulator เพื่อออกแบบข้อความสวยงามโดยไม่ต้องเขียนโค้ด จากนั้นจะได้เรียนรู้วิธีการ สร้าง Node LINE Messaging Tool และ ตั้งค่าให้ AI Agent สามารถส่ง LINE Flex Message ได้ และสุดท้ายจะได้ ทดสอบผลลัพธ์ใน LINE

ขั้นตอนทั้งหมด

  1. ทำความรู้จัก LINE Flex Message
  2. สร้าง Node LINE Messaging Tool
  3. ตั้งค่า LINE Flex Message JSON
  4. แก้ไข System prompt ให้เรียกใช้งาน Tools
  5. ทดสอบผลลัพธ์ใน LINE

1. ทำความรู้จัก LINE Flex Message

LINE Flex Message คือรูปแบบข้อความใน LINE ที่สามารถปรับแต่ง Layout ได้อย่างอิสระ (รูปภาพ, ปุ่ม, ข้อความ) ช่วยให้ Chatbot ดูเป็นมืออาชีพและน่าใช้งานมากขึ้น

ในการออกแบบ LINE Flex Message ให้สวยงามนั้น เราสามารถใช้ Flex Message Simulator ซึ่งเป็นเครื่องมือที่ช่วยออกแบบและสร้าง LINE Flex Message สามารถแสดงตัวอย่างและคัดลอกโค้ด JSON ไปใช้งานได้ทันที LINE Flex Message

2. สร้าง Node LINE Messaging Tool

กลับมาที่ Workflow ใน n8n ของเรา เพื่อเชื่อมต่อเครื่องมือนี้เข้ากับ AI Agent ให้สามารถเรียกเครื่องมือเพื่อส่ง LINE Flex Message ได้

Adding LINE Tool

3. ตั้งค่า LINE Flex Message JSON

ตัวอย่างโค้ด JSON สำหรับเมนูอาหาร (LINE Flex Message JSON):

{"type":"carousel","contents":[
{"type":"bubble","size":"micro","hero":{"type":"image","url":"https://images.unsplash.com/photo-1627308595186-e6bb36712645","size":"full","aspectMode":"cover","aspectRatio":"20:13","action":{"type":"uri","uri":"http://linecorp.com/"}},"body":{"type":"box","layout":"vertical","contents":[{"type":"text","text":"กะเพราหมูไข่ดาว","weight":"bold","size":"sm","wrap":true},{"type":"box","layout":"baseline","contents":[{"type":"icon","size":"xs","url":"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png"},{"type":"text","text":"4.8","size":"xs","color":"#999999","margin":"xs","flex":0},{"type":"text","text":"50.-","size":"sm","color":"#e03e3e","align":"end","weight":"bold","flex":1}]}],"spacing":"sm","paddingAll":"13px"},"footer":{"type":"box","layout":"vertical","contents":[{"type":"button","style":"primary","action":{"type":"message","label":"สั่งเลย","text":"สั่งกะเพราหมู"},"height":"sm","color":"#E34A32"}]}},
{"type":"bubble","size":"micro","hero":{"type":"image","url":"https://plus.unsplash.com/premium_photo-1661611585910-77ae42f0c71d","size":"full","aspectMode":"cover","aspectRatio":"20:13","action":{"type":"uri","uri":"http://linecorp.com/"}},"body":{"type":"box","layout":"vertical","contents":[{"type":"text","text":"ข้าวผัดกุ้ง","weight":"bold","size":"sm","wrap":true},{"type":"box","layout":"baseline","contents":[{"type":"icon","size":"xs","url":"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png"},{"type":"text","text":"4.5","size":"xs","color":"#999999","margin":"xs","flex":0},{"type":"text","text":"60.-","size":"sm","color":"#e03e3e","align":"end","weight":"bold","flex":1}]}],"spacing":"sm","paddingAll":"13px"},"footer":{"type":"box","layout":"vertical","contents":[{"type":"button","style":"primary","action":{"type":"message","label":"สั่งเลย","text":"สั่งข้าวผัดกุ้ง"},"height":"sm","color":"#E34A32"}]}},
{"type":"bubble","size":"micro","hero":{"type":"image","url":"https://images.unsplash.com/photo-1559314809-0d155014e29e?ixlib=rb-1.2.1&auto=format&fit=crop&w=600&q=80","size":"full","aspectMode":"cover","aspectRatio":"20:13","action":{"type":"uri","uri":"http://linecorp.com/"}},"body":{"type":"box","layout":"vertical","contents":[{"type":"text","text":"ผัดไทยกุ้งสด","weight":"bold","size":"sm","wrap":true},{"type":"box","layout":"baseline","contents":[{"type":"icon","size":"xs","url":"https://scdn.line-apps.com/n/channel_devcenter/img/fx/review_gold_star_28.png"},{"type":"text","text":"4.9","size":"xs","color":"#999999","margin":"xs","flex":0},{"type":"text","text":"80.-","size":"sm","color":"#e03e3e","align":"end","weight":"bold","flex":1}]}],"spacing":"sm","paddingAll":"13px"},"footer":{"type":"box","layout":"vertical","contents":[{"type":"button","style":"primary","action":{"type":"message","label":"สั่งเลย","text":"สั่งผัดไทย"},"height":"sm","color":"#E34A32"}]}}
]}

Adding LINE Tool

4. แก้ไข System prompt ให้เรียกใช้งาน Tools

เพื่อให้ AI Agent รู้ว่าควรเรียกใช้ Tool (Send LINE Flex Message) เมื่อไหร่ เราต้องเพิ่มคำสั่งใน System prompt

Trigger: ลูกค้าต้องการดูเมนู เช่น ขอเมนู, มีเมนูอะไรแนะนำ 
- Action: Tool: Send LINE Flex Message - Menu

Completed Workflow

5. ทดสอบผลลัพธ์ใน LINE

เมื่อตั้งค่าเสร็จเรียบร้อย ให้กด Save & Publish แล้วลองไปทดสอบคุยกับ Chatbot ใน LINE Completed Workflow

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

Completed Workflow

n8n Test Chat

เนื่องจากในก่อนหน้านี้ AI Chatbot ของเรายังเป็นเพียงโมเดลภาษาทั่วไป ซึ่งอาจตอบคำถามกว้างๆ และยังไม่ตรงกับบริบทของธุรกิจร้านอาหารของเรา เพื่อให้บอททำงานได้สมบูรณ์แบบ เราจึงจำเป็นต้องแก้ไข System Prompt หรือ Instruction เพื่อกำหนดบทบาท (Persona) และขอบเขตการทำงานให้ชัดเจน (Objetives)

ขั้นตอนทั้งหมด

  1. แก้ไข System Prompt โดยใช้ ตัวอย่าง Prompt สำหรับร้านอาหาร
  2. ทดสอบผลลัพธ์ใน LINE

1. แก้ไข System Prompt โดยใช้ ตัวอย่าง Prompt สำหรับร้านอาหาร

ตัวอย่าง Prompt สำหรับร้านอาหาร:

# Instruction: น้องเอไอ – ผู้ช่วยร้านอาหารไทย

## 1. Persona & Tone
1.1 น้องเอไอเป็นผู้ช่วยแชตบอตสำหรับร้านอาหารไทย  
1.2 บุคลิก: สุภาพ อบอุ่น เป็นกันเอง 
1.3 สื่อสารด้วยน้ำเสียงใจดี ไม่เร่งรัด ไม่กดดันลูกค้า ตอบรับด้วยน้ำเสียงสุภาพและเป็นกันเอง  

## 2. Core Responsibilities
2.1 แนะนำเมนูอาหารไทยตามหมวดหมู่  
2.2 รับออร์เดอร์อาหาร (ทานที่ร้าน / สั่งกลับบ้าน)  
2.3 จัดการการจองโต๊ะล่วงหน้า  
2.4 ตอบคำถามเกี่ยวกับเวลาเปิด–ปิดร้าน: 9:00 - 18:00 
2.5 หากข้อมูลจากลูกค้าไม่ครบ ต้องถามต่ออย่างสุภาพเสมอ  

## 3. Food Menu 
Trigger: ลูกค้าต้องการดูเมนู เช่น ขอเมนู, มีเมนูอะไรแนะนำ, มีอะไรกินบ้าง
- Action: แสดงเฉพาะหมวดที่ลูกค้าระบุ โดยดูข้อมูลจากข้อ 3. หากไม่มีให้แจ้งลูกค้า
- Mandatory Action: Call Tool: `Send LINE Flex Message - Menu` เพื่อแสดงเมนูแนะนำเสมอ

### 3.1 เมนูข้าวแกง
- ข้าวกระเพราไข่ดาว — 50 บาท  
- ข้าวผัดกุ้ง — 60 บาท  
- ผัดไทยกุ้งสด — 65 บาท  

### 3.2 เมนูตำ / ยำ
- ส้มตำไทย — 45 บาท  
- ส้มตำปูปลาร้า — 50 บาท  
- ลาบหมู — 65 บาท  

### 3.3 เครื่องดื่ม
- น้ำเก๊กฮวย — 20 บาท  
- น้ำลำไย — 20 บาท  
- น้ำเปล่า — 10 บาท  

## 5. Ordering Flow
5.1 เมื่อผู้ใช้แสดงความต้องการสั่งอาหาร  
น้องเอไอต้องถามตามลำดับ:
1) เมนูที่ต้องการ  
2) รูปแบบการรับอาหาร  
   - ทานที่ร้าน  
   - สั่งกลับบ้าน  
3) ชื่อผู้สั่ง  
4) เบอร์ติดต่อ  

5.2 ถ้าข้อมูลใดยังไม่ครบ  
- ถามเฉพาะข้อมูลที่ขาด  
- ห้ามถามซ้ำในสิ่งที่ลูกค้าให้มาแล้ว  

## 6. Constraints
6.1 ห้ามแต่งเมนูหรือราคาเพิ่มจากที่กำหนด  
6.2 ห้ามใช้ภาษาอังกฤษ  
6.3 ถ้าไม่มั่นใจข้อมูล ให้ถามลูกค้าแทนการเดา  

### 7. ตัวอย่างการตอบกลับ (Sample Dialogue)
ลูกค้า: "ร้านเปิดกี่โมง"
น้องเอไอ: "สวัสดีค่ะคุณลูกค้า ร้านเปิดให้บริการตั้งแต่ 9:00 ถึง 18:00 น. ค่ะ สนใจสั่งอาหารไว้ทานมื้อไหนดีคะ?"

ลูกค้า: "ขอเมนูหน่อย"
น้องเอไอ: "ได้เลยค่ะ นี่คือเมนูความอร่อยของทางร้านเรานะคะ" (Action: เรียกใช้ Tool: Send LINE Flex Message - Menu)

n8n Test Chatn8n Test Chat

2. ทดสอบผลลัพธ์ใน LINE

กด Save และ Publish เพื่อบันทึก Workflow ก่อนทดสอบการทำงานของ Chatbot ใน LINE โดยลองถามคำถามต่างๆ เพื่อดูว่าบอทตอบตาม Instruction ที่เรากำหนดไว้หรือไม่

n8n Test Chat

ซึ่งจากผลลัพธ์จะเห็นว่าคุณสามารถสร้าง AI Chatbot บน LINE ที่สามารถตอบคำถามได้อย่างเป็นธรรมชาติ และส่ง LINE Flex Message ที่สวยงามได้แล้ว

ยินดีด้วยครับ ถึงตรงนี้คุณก็มี LINE AI Chatbot ตัวแรกเป็นของคุณเองแล้ว!!!

ใน codelab นี้ คุณได้เรียนรู้:

✅ วิธีการ deploy n8n บน Render
✅ วิธีการตั้งค่า LINE Messaging API
✅ วิธีการสร้าง n8n workflow บน Render
✅ วิธีการเชื่อมต่อกับ AI Model
✅ วิธีการส่งคำตอบกลับไปยัง LINE
✅ วิธีการเขียนคำสั่ง (Instruction Prompt) ให้ AI เข้าใจบริบทและตอบโจทย์ธุรกิจ

ขั้นตอนถัดไป

เรียนรู้เพิ่มเติม

Reference docs

บอกเราหน่อยว่า Codelab ชุดนี้เป็นอย่างไรบ้าง