Botnoi Voice

1 พ.ค. 2566

Label

UX/UI

ChatGPT ใน LINE OA ไม่ต้องเขียนโค้ด NoCODE 100%

ChatGPT ใน LINE OA ไม่ต้องเขียนโค้ด NoCODE 100%

คงไม่ต้องอธิบายสรรพคุณว่า ChatGPT ช่วยพวกเรายังไงได้บ้าง จะสะดวกมาก ๆ ถ้าเราสามารถนำมันไปใช้ใน LINE สามารถถามโน่นถามนี่ โดยไม่ต้องเข้าเว็บ ข้อจำกัดเล็กน้อยก็คือ อาจจะต้องเป็นคนที่เขียนโปรแกรมเป็นเพื่อทำการเชื่อมต่อ

จากคลิปนี้ เราจะเห็นได้ว่า เราสามารถทำอะไรได้มากมาย ไม่ว่าจะถามเกี่ยวกับปัญหาโลกร้อน เขียน resume บวกเลข จัดทริป

วันนี้ ในบทความนี้ ผมจะสอนให้คนที่เขียนโปรแกรมไม่เป็นเลย สามารถนำ ChatGPT ไปเชื่อมต่อกับ LINE OA ง่าย ๆ โดยไม่ต้องเขียน Code สักบรรทัด เริ่มจาก

1. สร้าง Chatbot เชื่อมต่อกับ LINE OA

ก่อนอื่นเราจะต้องไปสร้าง LINE OA ก่อน LINE OA จะเป็นช่องทางหรือ Channel ที่คนจะติดต่อสื่อสารกับ ChatGPT

1a. สร้าง LINE OA

  • เข้าไปที่ https://manager.line.biz/ หลังจาก Log-in เข้าไปแล้ว มองไปด้านซ้าย จะมีปุ่มให้กดสร้างใหม่ (ตามรูป ข้อ 1)

  • กรอกข้อมูล ทำตามขั้นตอน (ตามรูป ข้อ 2)

  • จะได้ LINE OA และมี QR Code เพื่อเชิญชวนให้คนมาใช้งาน (ตามรูป ข้อ 3)

1b. สร้าง Chatbot ใน platform ของ BOTNOI

  • เข้าไปที่ https://botnoi.ai เมื่อเข้ามาแล้วก็ให้ทำการ Log-in

  • มุมขวาบน จะมีปุ่มให้กดสร้าง Chatbot (New Chatbot)

  • กรอกข้อมูล Chatbot แล้วกด Create (ตามรูป ข้อ 1)

  • มุมซ้ายล่างสุด มีเมนู setting ที่เป็นเฟือง กดแล้วเลือกเมนู Connection (ตามรูป ข้อ 2)

  • ให้เลือก LINE ซึ่งจะมีวิธีเชื่อมต่อ 2 รูปแบบด้วยกัน การเชื่อมต่อแบบง่าย ให้กด LINE Modular Setting (ตามรูป ข้อ 3)

  • จากนั้น ให้กดเลือกบัญชี (ตามรูป ข้อ 4) เลือกเชื่อมต่อกับ LINE OA ที่สร้างไว้ก่อนหน้า แล้วกดปุ่มเชื่อมต่อ (ตามรูปข้อ 5)

2. ไปเอา API Key จาก OpenAI

3. สร้าง API Object ในเครื่องมือ BOTNOI

API คืออะไร? API อธิบายให้คนไม่ใช่สาย tech ฟัง มันคล้าย ๆ กับเว็บที่มี URL แต่ว่าแทนที่เราจะใส่ URL แล้วเราจะได้เว็บ เราจะได้ data ที่มี key กับ value แทน อาทิ นี่คือตัวอย่าง คำตอบที่ได้จาก API จะเป็นลักษณะแบบนี้ ที่เค้าเรียกว่า JSON format

{
"id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
"object": "text_completion",
"created": 1589478378,
"model": "text-davinci-003",
"choices": [
{
"text": "\n\nThis is indeed a test",
"index": 0,
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 7,
"total_tokens": 12
}
}

3a. ก่อนอื่นเราจะต้องเข้าใจว่า เราจะเรียกใช้ API ของ OpenAI ยังไง ถ้าเราดูจากเอกสาร documentation การใช้งาน ตามลิงค์นี้ https://platform.openai.com/docs/api-reference/completions/create

เราจะเจอว่า วิธีการเรียกใช้ API สำหรับการถาม (completions) จะต้องใช้อย่างนี้

curl https://api.openai.com/v1/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENAI_API_KEY" \
-d '{
"model": "text-davinci-003",
"prompt": "Say this is a test",
"max_tokens": 7,
"temperature": 0
}'

อธิบายค่าต่าง ๆ ที่เป็นพารามิเตอร์สำหรับการใช้งาน

ในส่วนของ Header -H ก็จะมี

  • Content-Type คือ ลักษณะของข้อมูล ซึ่งจะเป็น json

  • Authorization คือ key เพื่อหัก point ในการใช้งานนั่นเอง

สำหรับในส่วนของ Body -d ก็จะมี

  • model ก็ตามที่เราอยากใช้ แต่ละตัวความแม่น ความเร็วก็ต่างกัน สามารถลองทดลองกันดู


สำหรับ prompt ก็คือ input หรือข้อความที่เราจะถาม ChatGPT เช่น ถามเกี่ยวกับบวกลบคูณหาร หรือทั่ว ๆ ไปเช่น เสือมีพันธ์อะไรบ้าง

  • max_token ก็คือ ความยาวของข้อความ ใน documentation ใส่แค่ 7 ซึ่งมันน้อยเกินไป ก็ให้ปรับให้เป็นสัก 1,000 ก็แล้วกัน ถ้าอยากได้ยาวกว่านั้นก็ใส่เพิ่ม (แต่ยิ่งยาวมากก็ต้องจ่ายมากนะ)

  • สุดท้ายก็คือ temperature ตัวนี้ คือถ้าเราใส่ค่าเยอะ ความ random ของคำตอบ มันก็จะสูงเพิ่มขึ้น

3b. สร้าง API object ในเครื่องมือ BOTNOI

หากใครไม่เคยใช้เครื่องมือใช้แชทบอทของ BOTNOI เลย สามารถเริ่มต้นจากการศึกษา playlist นี้ครับ youtube playlist tutorial

โดยเข้าไปที่เครื่องสร้างแชทบอท BOTNOI จากนั้นก็ไปที่ในส่วนของ API Object เลือกว่าจะสร้างเป็นแบบ Post แล้วกรอกข้อมูลตามวิธีเรียกใช้ API ChatGPT (หัวข้อ 2a.) โดยโครงสร้างจะมีอยู่ด้วยกัน 3 ส่วนได้แก่ ส่วน URL ส่วนของ Header แล้วก็ส่วนของ Body แล้วให้เปลี่ยนค่าตรง prompt เป็น <<keyword>>

อธิบายก็คือระบบ BOTNOI จะเก็บข้อความที่ user ทักเข้ามาล่าสุด ในแชทบอท ไปเก็บไว้ในตัวแปร keyword ซึ่งเมื่อมีการเรียกใช้ API ระบบก็จะดึงค่าในตัวแปร keyword ส่งไปยังค่าของ prompt ที่ได้ลงทะเบียนไว้

4. ผูก API Object ที่สร้างขึ้นกับหัวข้อหรือ Intent แล้วแสดงผลลัพธ์ออกมา

สุดท้ายเราสามารถนำเอา API Object ไปผูกกับ Intent หรือหัวข้อใด ๆ แต่ในตัวอย่างนี้ผมจะผูก API Object นี้ กับ Fallback นั่นหมายความว่า หากข้อความที่ user ส่งเข้ามาในแชทบอท ไม่ตรงกับ Intent ใด ๆ ก็ให้เรียกใช้ API Object ChatGPT

ซึ่งผมคิดว่าก็น่าจะทำให้ Chatbot ดูฉลาดดี หัวข้อใด ๆ ที่เราอยากให้ Chatbot ตอบตามที่เราต้องการ ก็เทรน Intent ตามปกติ เช่น ขอโปรโมชั่น ถามเวลาเปิดปิดร้าน แต่อะไรที่นอกเหนือจากที่เราสอน Chatbot ไป ก็ให้ ChatGPT ตอบ

วิธีการผูกนั้น ก็คือ

4a. ให้ไปที่ tab Train Bot ด้านซ้าย เลือก Default Fallback แล้วกดที่ BOT RESPONSE

4b. กด Existing Objects แล้วเลือก API object ที่สร้างไว้

4c. ให้ใส่ <<API_chatgpt-test.choices.0.text>> เพื่อดึงค่าออกมาจาก response API ที่ได้มา

อธิบายค่า c เพิ่ม จาก response ที่ได้จาก API จะเป็นดังนี้ครับ

{
"id": "cmpl-uqkvlQyYK7bGYrRHQ0eXlWi7",
"object": "text_completion",
"created": 1589478378,
"model": "text-davinci-003",
"choices": [
{
"text": "\n\nThis is indeed a test",
"index": 0,
"logprobs": null,
"finish_reason": "length"
}
],
"usage": {
"prompt_tokens": 5,
"completion_tokens": 7,
"total_tokens": 12
}
}

เราต้องการ “text” ที่เป็นคำตอบจาก API ดังนั้น เราจะต้อง .choices ซึ่งเป็น array เพื่อไปที่ object ตัวแรก ของ array ก็จึงต้อง .0 แล้วจากนั้นเพื่อไปที่ text เราก็จะต้อง .text อีกครั้ง ดังนั้นเราจะต้องใส่ <<API_chatgpt-test.choices.0.text>> เพื่อดึงคำตอบออกมาโชว์ผ่าน chatbot ครับ

ก็เป็นอันเสร็จสิ้นนะครับ สุดท้ายผมได้ทำคลิปให้ทุกคนทำตามได้ครับ

สำหรับใครที่สนใจสร้างแชทบอท BOTNOI มีเครื่องมือที่สามารถใช้พัฒนา AI แชทบอท ที่ซับซ้อนแต่ง่ายในการพัฒนา ทดลองได้ที่ได้ https://botnoi.ai และมี playlist ลิงค์สอนที่ -> youtube playlist tutorial

ส่วนหากใครสนใจใช้บริการ BOTNOI ในสร้างแชทบอท หรือให้คำปรึกษาเกี่ยวกับ AI & Data science ติดต่อได้ผ่านเวป -> Botnoi และ FB Page Botnoi Consulting นะครับ

Back

ร่วมกันพัฒนาและสร้างสรรค์

อนาคตใหม่ ไปพร้อมกับเรา

ร่วมกันพัฒนาและสร้างสรรค์

อนาคตใหม่ ไปพร้อมกับเรา