สอนเชื่อมต่อ Generative AI (ChatGPT, Gemini, Claude) กับ Line OA [Update] Claude API
บทความนี้เราจะมาพาเชื่อมต่อ Generative AI ค่ายต่าง ๆ ไม่ว่าจะเป็น ChatGPT, Gemini, Claude ผ่าน API กับ Line Official Account
จากนี้จะขอเรียก OpenAI Platform(ChatGPT) API, Gemini API, Claude API (Anthropic Console) และเจ้าอื่นรวมกันว่า "GenAI API" นะครับ
INFO
จบบทความนี้เพื่อน ๆ จะได้ Line แชทบอทที่ตอบกลับผู้ใช้ได้เหมือนคุยกับ Chat GPT โดยตรงเลย
ภาพรวม
เนื่องจาก Line OA ไม่สามารถใช้งาน API หรือคุยกับ Platform ของ GenAI ได้โดยตรง เพราะ Line OA เปิดการเชื่อมต่อกับระบบภายนอกผ่านสิ่งที่เรียกว่า Webhook
ซึ่งถ้าเราไม่เขียน WebHook เอง เราก็ต้องมองหาตัวกลางที่จะทำหน้าที่นี้ครับ ตามแผนภาพดังนี้
การเชื่อมต่อกันระหว่าง 3 ระบบ
ในกรณีนี้ผมเลือกใช้ Botnoi Chatbot เพื่อเป็นตัวกลางในการเชื่อมต่อ เพราะง่ายในการเชื่อมต่อฝั่ง Line และแทบไม่ต้องเขียนอะไรเพิ่ม
เตรียม Line OA
สิ่งที่ต้องเตรียมในฝั่งของ Line
- Line Official Account 1 บัญชี
สร้างและเตรียมแชทบอทของคุณไว้ได้เลย ถ้าทำไม่เป็นก็ ดูที่นี่
- เปิดการเชื่อมต่อ Webhook
โดยปกติไลน์บอทจะมีการตั้งค่าตอบกลับอัตโนมัติอยู่ เราจะต้องทำการปิดการตั้งค่านั้น และเปิดการเชื่อมต่อ Webhook ตามรูป
หรือ ดูขั้นตอนที่นี่
- เชื่อมต่อ Line เข้ากับ Botnoi Chatbot
เตรียม AI Platform API
สิ่งต่อไปที่ต้องเตรียมไว้คือการสมัคร Platform API ของแต่ละเจ้า
ส่วนนี้ไม่ใช่หน้าปกติที่เราเข้าไปแชทคุยกับ AI นะครับ แต่เป็นหลังบ้านของ Platform ที่เปิดให้เราเอา API ไปเรียกใช้งานจากระบบภายนอกได้
- OpenAI Platform (ChatGPT)
สร้าง API Key จาก OpenAI Platform ดูขั้นตอน.
- Google AI Studio (Gemini Pro)
สร้าง API Key จาก Google AI Studio หน้านี้
- Claude by Anthropic
สร้าง API Key จาก Anthropic Console ดูที่นี่
- Dify.ai
สร้าง API Key จากแอปที่ต้องการใช้งาน ดูขั้นตอน
เชื่อมต่อ GenAI API KEY กับ Botnoi
ในการเชื่อมต่อกับแชทบอทของเคสนี้ เราจะตั้งค่าให้ทุก ๆ ข้อความที่ส่งจากผู้ใช้ ส่งต่อไปยังหลังบ้าน GenAI API ตัวใดตัวหนึ่งที่ set ไว้ทุกข้อความ
- OpenAI Platform (ChatGPT)
WARNING
การใช้งาน OpenAI Platform หากไม่มีการควบคุมการใช้งานที่ดีพอ อาจทำให้มีค่าใช้จ่ายสูง
เชื่อมต่อ Chat GPT ผ่าน chat/completion ดูขั้นตอนที่นี่
- Google AI Studio (Gemini Pro)
NOTE
ตอนนี้ฟรี แต่จะทำให้เกิดประโยชน์มากขึ้นอาจต้องใช้เชื่อมต่อกับ Dify.ai ด้านล่างเพื่อทำ Prompt ที่เป็นแนวทางการตอบข้อมูล ไม่เช่นนั้นจะเป็น Gemini ที่ตอบกว้าง มาก ๆ
เอาข้อมูล API ไปเชื่อมกับ Botnoi ดูขั้นตอนที่นี่
- Anthropic Console (Claude AI)
WARNING
การใช้งาน Claude API หากไม่มีการควบคุมการใช้งานที่ดีพอ อาจทำให้มีค่าใช้จ่ายสูง
เอาข้อมูล API ไปเชื่อมกับ Botnoi ดูขั้นตอนที่นี่
- Dify.ai
การเชื่อมต่อกับ Dify.ai ด้วย Bot ที่ไม่ต้องการ input (Text Generation Only) ดูขั้นตอนที่นี่
การทำบอทที่เฉพาะทางยิ่งขึ้น
จาก API ของ Gemini กับ ChatGPT ที่ต่อไว้จะเป็นการต่อ API ตรง ๆ โดยที่เราไม่ได้ทำการ set ค่าอะไรไว้เลย การทำงานจึงจะเหมือนกับคุยกับ ChatGPT หรือ Gemini เฉย ๆ ใน Line OA
ซึ่งหากเราต้องการทำให้บอทของเราใช้งานได้หลากหลายขึ้น ก็อาจต้องไปเชื่อม API กับ Assistant หรือทำการ Prepare bot ผ่านเครื่องมือเช่น Dify.ai และแก้ไขการเชื่อมต่อเพิ่มเติมดังนี้
วิธีการเพิ่ม Input
(Text Generation with 1 input)
ตัวอย่างของ Dify ด้านบนจะ Code of the day ที่มี prompt เพื่อคืนค่า Quote ออกไปเฉย ๆ
แต่ในตัวอย่างนี้เราจะปรับให้รับ input เพิ่ม 1 ตัวจากผู้ใช้ โดยเมื่อผู้ใช้พิมพ์อะไรมาก็ตาม บอทจะไปสร้างคำคมที่เกี่ยวข้องมาให้
หลังจากนั้นเราก็ไปแก้ไข API ของ botnoi ให้ส่งค่าที่ผู้ใช้พิมพ์กลับมาด้วยตามโค้ดด้านล่างนี้
{
"inputs": {
"topic": "<<keyword>>" // ส่วนที่เปลี่ยนแปลง
},
"response_mode": "blocking",
"user": "abc-123"
}
เอาไปอัปเดทในส่วน Body ของ API botnoi ได้ดังตัวอย่างด้านล่าง
เมื่อเราไปคุยกับบอทด้วยข้อความอะไรก็ตาม เค้าก็จะทำเป็นคำคมกลับมาให้เรา
TIP
Line OA อาจจะเป็นหน้าบ้านได้ในบางบริบท เจ้าของ GenAI APP ต้องเลือกหน้าบ้านให้เหมาะสมการทำงานของ AI ตัวเองนะ
ข้อควระวัง
หลังจากนี้ Line OA ของเพื่อน ๆ จะตอบกลับจาก Generative AI ที่เชื่อมต่อไว้ผ่าน Botnoi Chatbot เสมอ
หากเลือกใช้ Generative AI ที่คิดเงินตามจำนวนคำที่ Prompt มาอย่าง ChatGPT หรือ Dify.ai ที่อาจจะเชื่อม LLM API ที่อาจเสียเงินตัวอื่นอยู่
WARNING
เราก็ต้องป้องกันไม่เผยแพร่ Line OA ไปให้คนอื่น ๆ ที่ไม่ใช่ผู้ใช้เป้าหมาย เพราะใครก็ตามที่เป็นเพื่อนกับ Line OA จะใช้งาน Generative API ของเราได้ทันทีผ่านการแชทกับบอท
ส่วน Gemini Pro ที่ยังฟรีอยู่อาจจะไม่ต้องกังวลมากนัก
Good Luck