AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

สวัสดีค่ะทุกท่าน,, วันนี้นิกอยากจะชวนทุกท่านมาต่อภาคต่อของการทำ Workflow Automation กันต่อค่ะ หลังจากที่บทความก่อนเราได้รู้จักกับ Make.com และการเชื่อมต่อ LINE Bot แบบ No-code กันไปแล้ว นิกก็เลยขอแนะนำอีกหนึ่งเครื่องมือที่น่าสนใจมากๆ เลยค่ะ นั่นก็คือ n8n ซึ่งเป็น Workflow Automation ที่ทั้งสามารถติดตั้งและรันได้บนเครื่องของเราเอง (Self-host) ได้ และรันแบบ On-Cloud ได้ แถมยังมีความยืดหยุ่นสูง เหมาะสำหรับใครที่อยากควบคุมทุกขั้นตอนด้วยตัวเอง

โดยในบทความนี้นิกจะพาทุกท่านไปเริ่มต้นใช้งาน n8n ตั้งแต่ต้นจนจบ สามารถสร้าง AI Agent Chat Bot ที่เชื่อมต่อกับ Gemini ได้ ซึ่งมีขั้นตอนที่ต้องทำต่างๆ ดังนี้ค่ะ

  • ติดตั้ง n8n บนเครื่อง
  • เชื่อมต่อ Gemini API
  • สร้าง Workflow คุยกับ LINE Bot แบบโต้ตอบได้จริง
  • พร้อมเพิ่ม Memory ให้ Bot จำบทสนทนาเราได้แบบ AI Agent

ป.ล. ถึงจะมีบางจุดที่ต้องใช้ Command Line นิดหน่อย แต่นิกจะอธิบายทุกขั้นตอนแบบจับมือทำ รับรองว่าทุกท่านสามารถทำตามได้ง่ายๆ แน่นอนค่ะ^^

ในการใช้งาน n8n ในการสร้าง Workflow Automation เราจะติดตั้งเป็น 2 จังหวะ ก็คือ การติดตั้ง node js และการติดตั้ง n8n 

[0.1] ให้เข้าไปที่ https://nodejs.org/en จากนั้นให้ทำการ download ได้เลย หลังจาก download เสร็จก็ให้ double click ไฟล์ .exe แล้ว install ตามขั้นตอนได้เลย

https://nodejs.org/en
https://nodejs.org/en

เมื่อเสร็จแล้วให้เราตรวจสอบ version ของ node ด้วยการพิมพ์ “node -v”  ใน cmd prompt (เปิด cmd prompt ด้วยการกด window r แล้วพิมพ์ cmd นะคะ)

[0.2] ขั้นตอนต่อไปคือการติดตั้ง n8n โดยจะเป็นการติดตั้งผ่าน command prompt ด้วยการพิมพ์ว่า  “npm install n8n -g”  เดี๋ยวตอนที่เราใช้งาน n8n จะเป็นการใช้งานได้ทั้งผ่าน local และผ่าน cloud 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

เมื่อ install เสร็จแล้วให้ run ด้วยพิมพ์ “n8n” เพื่อเป็นการ active แล้วให้พิมพ์ “o” เป็นการ open n8n ใน  Browser โดยเลข port จะเป็น 5678 ได้ localhost ดังนี้ http://localhost:5678 ซึ่งการรัน local ในเครื่องของเราจะไม่จำเป็นต้องกังวลเรื่อง limit ใช้งานได้ฟรี 14 วันเหมือนการรันบน Cloud

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

แต่ในบทความนี้นิกจะพาทุกท่านไปลองในระบบ Cloud กันก่อน เพื่อให้เห็นภาพรวม และเห็นแนวทางการใช้งานจริงกรณีที่เราไม่มีเครื่องที่เป็น server ค่ะ

เริ่มต้นให้ทุกท่านเข้าไปที่ https://n8n.io/ และเมื่อเข้าไปแล้วให้ทุกท่านเลือก “Get Started” แล้ว Sign in ด้วย User ที่เราต้องการได้เลยค่ะ

ซึ่งหากเป็นการใช้งานครั้งแรกจะต้องมีการ Set up ตัว account ก่อน แล้วระบบจะมี pop-up ขึ้นมาถามข้อมูลการใช้งานของเรานิดหน่อยก็จะได้เป็นหน้า n8n บน Cloud ออกมา

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

หลังจากนั้นให้เราไปที่ “Create Workflow” เพื่อทำการสร้าง Workflow Automation ใหม่ของเราขึ้นมา โดยในบทความนี้นิกจะพาทุกท่านสร้าง Workflow ของไลน์ AI Agent แชทบอทที่มีการเชื่อมต่อกับ Gemini ค่ะ

ต่อไปเราจะเชื่อม Linebot ที่ n8n (เดี๋ยวนิกจะพาทำทั้งในส่วนของ self host และบน Cloud) และสำหรับในบทความนี้จะเริ่มที่ Oncloud ก่อนนะคะ

ดังนั้นเราก็เลยต้องใช้ Webhook ในการรับเข้า แล้วก็ใช้ HTTP Request ในการส่งค่ากลับมา

ส่วน AI Agent ที่ตัว n8n มีให้เราก็สามารถเลือกใช้ตัวใดก็ได้ตามใจเรา โดยเลือกเป็นตัวที่เรามี API แล้วเราสามารถเชื่อมต่อกับตัว memory ได้ด้วย ว่าเราต้องการที่จะให้จำบทสนทนาที่เรา Chat ไว้ก่อนหน้าไปไกลแค่ไหน เช่น  5 prompts, 10 prompts

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

[2.1] หลังจากที่เรา +Create new workflow ใหม่ออกมาแล้ว ก็จะได้หน้าว่างๆ ที่มีเครื่องหมาย + Add first step ออกมาค่ะ ให้กดไปที่นั้นได้เลย

แล้วตัวแรกที่เราจะหยิบคือ On webhook call ซึ่งตัวนี้จะเป็นตัวสร้างพวก link webhook ที่จะเอาไปแปะที่ Linedev เพื่อสร้างการเชื่อมต่อของ line 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

ใน webhook call จะเป็นการรับค่าผ่าน Line ที่ผู้ใช้งานจะส่งมา โดยเวลาเราจะคุยกับ Line เราจะคุยกันผ่าน Method POST โดยจะมีการส่งไส้ในที่เราเรียกว่า Body ปนมาด้วย (ถ้าท่านใดเคยเรียน line API มาอาจคุ้นๆ ว่าจะมีคำว่า GET/POST แต่เบื้องต้นก็คือ เวลาเราส่งเลข API กันไปถึง line messaging API จะเป็นการฝัง Data เข้าไปใน Parameter ที่เราจะเรียกว่า Body ซึ่งก็จะเป็นการส่งในลักษณะที่เรียกว่า Post)

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

ส่วนตัว Path ที่เห็นยาวๆ เราสามารถตั้งเองได้ ซึ่งก็จะส่งผลดีให้ตัว Webhook ของเราไม่ยาวเกินไป โดยทุกท่านสามารถตั้งตัว Path ที่ต้องการได้เลย

เสร็จแล้วให้เราเอา URL ของ Webhook ในกล่องสีฟ้า ไปใส่ใน Line Developer (กดไปที่ URL หนึ่งครั้งก็จะเป็นการ Copy เรียบร้อย) 

โดยประเภทของ Webhook ที่ให้เราเลือกจะมี 2 แบบคือ Test URL กับ Production URL ซึ่งหากอยู่ในช่วงที่เราต้องการ Test ก่อน เช่น ทำตามในบทความนี้ ให้เลือกเป็น Test URL ก่อน และหากเราพัฒนาจนเสร็จค่อยกลับมาเปลี่ยนเป็น Production URL ไปเปลี่ยน  เมื่อ Setting ทั้งหมดเสร็จแล้วกด <-back to canvas 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

[3.1] หลังจากนั้นให้เข้าไปที่ https://developers.line.biz/en/ แล้ว Login ตามปกติ เข้าไปที่ Messaging API เอา URL ที่ Copy มาไปวางที่ Webhook URL ของ Bot ที่เราสร้างไว้ก่อนหน้า ซึ่งนี่คือ link webhook ของเราที่เชื่อมต่อไปที่ flow ใน n8n ที่เราวาดเอาไว้ ซึ่งเวลาที่เราพิมพ์อะไรใน linebot ก็จะวิ่งมาที่ตัว On webhook call นี้

ป.ล. ขั้นตอนการสร้างบอท นิกเขียนไว้ละเอียดมากในบทความนี้นะคะ https://everydaymarketing.co/knowledge/workflow-automation-make-com/ ทุกท่านสามารถทำตามได้เลย

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

[3.2] ต่อไปเราจะต่อตัวหัวสมองเข้ามาซึ่งใช้เป็น Gemini และ block ที่จะเลือกออกมาก็จะเป็น AI Agent โดยให้กดไปที่เครื่องหมาย + ด้านหลัง block แรก แล้ว search “agent” เลือก “AI Agent” ออกมา 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

โดยใน AI Agent มีการ setting ดังนี้

  • เริ่มต้นที่การถามว่า prompt ของเราคืออะไร เราจะเอาคำถามอะไรไปถาม Bot Gemini โดยในส่วนนี้ให้เลือกเป็น Define below แล้วตัว Prompt ของเราจะกำหนดเองอยู่ด้านล่าง
AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n
  • ซึ่งใน Prompt ที่เราใส่เข้าไปจะดึงมาจาก webhook ที่เรียกว่า Event message.text (ตอนนี้จะใช้เหมือน make.com เลย ก็คือจะเป็น event message.text) โดยในตอนนี้ให้เราพิมพ์ในช่อง Prompt (User Message) ว่า 

{{ $json.body.events[0].message.text }}

ซึ่งเราสามารถหา Parameter เหล่านี้ได้จากการกด  Execute previous node เพื่อให้ Parameter ต่างๆ แสดงขึ้นมาก่อนได้ ซึ่งพอกดไปแล้ว ให้เรากลับไปส่งข้อความเป็น input เข้าไปในไลน์ด้วยการพิมพ์ Chat กับ Bot ของเรา ที่เราสร้างไว้ แล้วเลือกไปที่ body -> events -> text (ที่แสดงข้อความที่เราพิมพ์เข้าไป) แล้วลาก text ออกมาวางในช่อง แสดงว่าตัวแปร text นี่แหละที่จะเป็น prompt ที่จะถูกส่งผ่านไลน์เข้ามา (เราจะพิมพ์ prompt เองซึ่งมาจากผู้ใช้งานไลน์)

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

หลังจากที่เรา set AI Agent เสร็จแล้ว ต่อไปเราจะเพิ่มหัวสมองเข้าไป นั่นคือ Gemini โดยให้เรากด + ที่ ChatModel แล้วเลือก “Google Gemini Chat Model” ออกมา

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

ซึ่งหากเรายังไม่ได้สร้างการเชื่อมต่อเอาไว้ก่อนหน้าให้กด +Create new credential ใหม่ (แต่ถ้าใครที่สร้างการเชื่อมต่อไว้แล้วก็สามารถเลือกของเก่าได้เลย) 

จะมีหน้าต่าง pop-up ขึ้นมาให้เราตั้งค่า หลังจากนั้นให้เราเลือก +Create new credential แล้วไปที่ https://aistudio.google.com/apikey  เลือก +Create API Key แล้ว Copy ตัว Key มาวางใส่ แล้วกด save 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

แล้วเลือกโมเดลเป็น models/gemini-2.0-flash เสร็จแล้วกด <-Back to Canvas

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

ต่อไปเราจะมาสร้างหน่วยความจำให้ workflow นี้กันค่ะ โดยตัว memory เราจะใช้ตัวพื้นฐานของ n8n เลย นั่นคือ Simple Memory

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

 แล้วให้เราเลือก Define below แล้วตั้งค่าว่าเรากำลังจำการสนทนาของ User ท่านใด ซึ่งก็จะอยู่ในตัวแปรที่ชื่อว่า userId ซึ่งเราสามารถ Execute previous flow (แล้วไปพิมพ์ข้อความในไลน์บอทของเรา) เพื่อดึงลากพารามิเตอร์ที่ชื่อ userId มาวางได้

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

แต่ถ้าท่านใด execute แล้วไม่ขึ้น ก็สามารถ copy ข้อความนี้ไปวางได้เลยค่ะ 

{{ $json.body.events[0].source.userId }} 

โดยในส่วนของ Context Window Length คือความยาวของข้อความโต้ตอบที่เราต้องการให้ Simple memory นี้ จดจำเอาไว้ (ตอนนี้นิกใส่เป็น 5 การสนทนา) เพียงเท่านี้เราก็ได้หน่วยความจำของ workflow เรียบร้อยค่ะ

และท้ายสุด เราจะไป set ตัวสุดท้ายเพื่อลองเล่นกัน นั่นคือ HTTP Request ซึ่งทำหน้าที่ในการส่งข้อมูลตอบกลับไปที่ Line โดยไปแบบวิธีการที่เรียกว่า Post (คือพูดง่ายๆ เลยค่ะว่าถ้าไม่มี Bot เราก็จะคุยไม่ได้ค่ะ) 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

โดยใน HTTP Request ก็จะเหมือนกับการ Setting ในตอนต้น ก็คือไม่ว่าเราจะรับเข้าหรือเราจะส่งออกข้อมูล เราจะคุยกับ Line Messaging API ด้วย Method Post เหมือนกันทั้งหมด

โดยต่อมาเราจะต้องรู้ที่อยู่ของ Messaging API ของไลน์ โดยเพื่อนๆ สามารถ copy URL นี้ https://api.line.me/v2/bot/message/reply ไปแปะในช่อง URL ได้เลย   (แต่ใน make.com จะ setting ให้เราทั้งหมดเลยในส่วนของ reply message) 

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

และในส่วนของ Authentication ให้เลือกเป็น None แล้วเลื่อน cursor ลงไปด้านล่าง แล้วไปทำตัว Authentication Token โดยการใส่ Channel Access Token เอง โดยการเลือก activate ที่ Send Header

ซึ่งเป็นส่วนหัวของการยืนยันตัวตนโดยใช้ Channel Access Token  โดยใน Header มีพารามิเตอร์ที่ต้องยืนยันดังนี้

  • Name ป้อนเป็น Authorization
  • Value ซึ่งคือตัวแปรในการยืนยันตัวตนจะในเป็น Bearer <Channel Access Token ของ Bot ที่เอามาจาก https://developers.line.biz/> โดยส่วนนี้จะเป็นการยืนยันตัวตนว่านี่คือ Bot ของเรา ที่เรามี Channel Access Token

ต่อไปในการที่เราจะ Send ออกไป เราจะส่งใน Format  ของ JSON โดยให้เลือกไปที่ Send Body แล้วเลือก ตั้งค่าดังนี้

  • Body Content Type เป็น JSON 
  • Specify Body ซึ่งเป็นการบอกว่าใน Body จะส่งอะไรไป ให้เลือกเป็น Using JSON ซึ่งเป็นการบอกว่าใน Body ของเราจะส่งตามข้อมูลในกล่องด้านล่าง
AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

ซึ่งจะมีโครงสร้างการส่งตาม Format ของ JSON ซึ่งใน Body parameter จะส่งข้อมูลดังนี้ (ป.ล. ส่วนนี้ทุกท่านสามารถ Copy โค้ดด้านล่างไปวางในกล่อง JSON ได้เลยนะคะ ถ้าไม่อยากลากตัวแปรออกมาเอง^^)

{
“replyToken”:”{{ $(‘Webhook’).item.json.body.events[0].replyToken }}”,
“messages”:[
{
“type”:”text”,
“text”: {{ JSON.stringify ($json.output) }}
}
]
}

จากโครงสร้างในการส่งข้อมูลด้านบน มีรายละเอียดได้แก่

1. replyToken ซึ่งมาจากกล่อง Webhook ข้างหน้า อยู่ใน events[0].replyToken 

2. Messages ซึ่งคือข้อความที่เราจะส่งกลับไป โดย

  • 2.1  “type”:”text” เราจะส่งข้อความกลับไปแบบ text
  • 2.2  “text”: {{ JSON.stringify ($json.output) }} โดย text ตัวนั้นมาจาก json.output ซึ่งมาจาก AI agent ก่อนจาก block ก่อนหน้าซึ่งในที่นี้ก็คือ Gemini 

และสำหรับท่านที่ต้องการดึงเป็นตัวแปรมาใส่ ให้ทำเหมือนเดิมคือกด Execute previous flow (ในกรณีที่ parameter ต่างๆ ยังไม่แสดงขึ้นมา) แล้วลากในส่วน webhook -> body -> event -> message -> reply token มาวาง ใน replyToken ได้ และส่วนในช่องตอบกลับให้ลาก output จากส่วนของ AI Agent มาวาง ซึ่งส่วนนี้จะมาจากคำตอบของ Gemini (แต่ต้องพิมพ์ JSON.stringify  เพิ่มเติม)

AI Workflow: เชื่อมต่อ Google Gemini กับ LINE Bot ด้วย n8n

เป็นอันเสร็จเรียบร้อย ได้ n8n Workflow Automation ของเราออกมาตามภาพด้านล่างนี้ค่ะ

ซึ่งสามารถลองคุยกับ Bot ด้วยการกด Execute Workflow แล้วไปพิมพ์คำถาม/Prompt ใน Line bot ของเราได้เลย ถ้า Bot ของเราตอบกลับ ก็เป็นอันเสร็จเรียบร้อยค่ะ  💬

ปณยา สุดตา นิก Panaya Sudta
ปณยา สุดตา นิก Panaya Sudta

บทความนี้ลัดคิวภาคต่อของ make.com นะคะ ด้วยกระแสที่มาแรงมากๆ ของ n8n ที่หลายๆ ท่านอาจได้เห็น ad ของคอร์สเรียนออนไลน์ผ่านตาเยอะมากในช่วงนี้ แล้วเราจะตกขบวนกันได้ไงคะ^^ Hope you all enjoy kha

Hi, I am Nick,,,,Panaya Sudta (●'◡'●) Engineer during the daytime. Researcher at night. Reader in spare time. (❁´◡`❁) วิศวกร/นักวิจัย/ Market research ค่ะ หวังเป็นอย่างยิ่งว่าจะได้แชร์มุมมองกันนะคะ

Leave a Reply

Your email address will not be published. Required fields are marked *