คำขอโดยตรงไปยังโมเดล
answer = ai_request('request', question)
ตัวอย่าง:
answer = ai_request('คุณคือที่ปรึกษาร้านดอกไม้ที่สุภาพ', question)
อาร์กิวเมนต์แรกคือคำแนะนำสำหรับโมเดล: ว่ามันคือใครและควรตอบสนองอย่างไร
question เป็นตัวแปรระบบที่เก็บข้อความล่าสุดของลูกค้าเสมอ

โปรดทราบ
ในนิพจน์ ตัวแปรจะถูกเขียนโดยใช้ชื่อเท่านั้น โดยไม่มี
#{}การตอบสนองจะถูกส่งกลับเป็นข้อความธรรมดา ดังนั้นจึงสามารถส่งตรงถึงลูกค้าหรือเก็บไว้ในตัวแปรได้
เมธอดนี้จะรอการตอบสนองของโมเดลอย่างอดทน ดังนั้นแม้แต่คำขอที่ใช้เวลานาน เช่น สคีมาขนาดใหญ่หรือข้อความยาว ก็จะเสร็จสมบูรณ์โดยไม่หยุดชะงัก
เมื่อคุณต้องการข้อมูลที่มีโครงสร้างแทนข้อความอิสระ เช่น หมวดหมู่ คำตอบใช่/ไม่ใช่ หรือฟิลด์ที่แยกออกมา ให้ส่งสคีมาการตอบสนองเป็นอาร์กิวเมนต์ที่สาม
คุณไม่จำเป็นต้องสร้างสคีมาจากศูนย์ ใช้เทมเพลตสำเร็จรูปและเปลี่ยนชื่อฟิลด์ตามต้องการ
สำหรับการจำแนกคำขอของลูกค้า การกำหนดความรู้สึก และงานที่คล้ายกัน
local result = ai_request('กำหนดหมวดหมู่ของคำขอ', question, {
"type": "object",
"properties": {
"category": {
"type": "string",
"enum": ["complaint", "question", "order"]
}
},
"required": ["category"]
})
category = get(result, 'category')
โมเดลจะส่งคืนค่าใดค่าหนึ่งที่ระบุไว้ใน enum เท่านั้น และไม่มีอย่างอื่น


ตัวอย่างที่คัดลอก:
local result = ai_request('ลูกค้าตกลงที่จะซื้อหรือไม่?', question, {
"type": "object",
"properties": {
"agree": {
"type": "boolean"
}
},
"required": ["agree"]
})
agree = get(result, 'agree')

ตัวอย่างที่คัดลอก:
local result = ai_request('แยกชื่อและหมายเลขโทรศัพท์จากข้อความ', question, {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"phone": {
"type": "string"
}
},
"required": ["name", "phone"]
})
client_name = get(result, 'name')
client_phone = get(result, 'phone')
-
"string"— ข้อความ -
"number"— ตัวเลข -
"boolean"—trueหรือfalse -
enum— รายการค่าที่อนุญาต โมเดลไม่สามารถส่งคืนสิ่งใดนอกเหนือจากรายการนี้ -
required— รายการฟิลด์ที่จำเป็น - ชื่อฟิลด์ เช่น
category,nameและphoneสามารถเลือกได้อย่างอิสระ
การตอบสนองตามสคีมาจะถูกส่งกลับเป็นสตริง JSON สามารถดึงข้อมูลแต่ละฟิลด์ได้โดยใช้เมธอด get() มาตรฐาน
โปรดทราบ
ในตัวอย่าง
resultถูกประกาศโดยใช้localซึ่งหมายความว่าการตอบสนองดิบของ AI จะไม่ถูกบันทึกลงในเรกคอร์ด เฉพาะฟิลด์ที่จำเป็นเท่านั้นที่จะถูกเก็บไว้ที่นั่น
โหมดการใช้เหตุผล
โหมดการใช้เหตุผลสามารถเปิดใช้งานได้โดยใช้อาร์กิวเมนต์ที่สี่ ในโหมดนี้ โมเดลจะคิดผ่านงานก่อนแล้วจึงให้คำตอบ
มีประโยชน์สำหรับคำขอที่ซับซ้อนซึ่งเกี่ยวข้องกับการวิเคราะห์ การคำนวณ หรือตรรกะหลายขั้นตอน การตอบสนองจะใช้เวลานานขึ้นอย่างเห็นได้ชัด ดังนั้นโหมดการใช้เหตุผลจึงถูกปิดใช้งานตามค่าเริ่มต้น
answer = ai_request(
'แก้ปัญหาของลูกค้าและอธิบายวิธีแก้ปัญหา',
question,
'',
true
)
เมื่อไม่ต้องการสคีมาการตอบสนอง ให้ส่งสตริงว่าง '' เป็นอาร์กิวเมนต์ที่สาม ดังที่แสดงในตัวอย่าง
วิธีลบประวัติการแชทกับผู้ช่วย AI
clear_assistant_chat_history() - ฟังก์ชันนี้จะลบประวัติการแชทของลูกค้ากับผู้ช่วย ไม่รับพารามิเตอร์
ตัวอย่าง
- การตั้งค่าบล็อกในตัวสร้าง

- การตั้งค่าแท็บผู้ช่วย AI

วิธีส่งคำถามไปยังผู้ช่วย AI
ai_context_answer(replica, prompt, ai_assistant_id, use_history, send_answer)
พารามิเตอร์:
รายละเอียดเพิ่มเติมเกี่ยวกับพารามิเตอร์ send_answer:
การตั้งค่าผู้ช่วยรวมถึงพารามิเตอร์ที่สามารถกำหนดค่าได้ในกรณีที่การตอบสนองของบอทใช้เวลานาน

ในการสนทนาทั่วไปกับผู้ช่วย (ไม่ผ่านฟังก์ชัน) หากการตอบสนองใช้เวลานานกว่าขีดจำกัดที่ระบุ (เช่น 20 วินาที) ลูกค้าจะได้รับการแจ้งเตือนถึงความล่าช้า คำตอบของผู้ช่วยจะถูกส่งไปยังแชททันทีที่สร้างเสร็จ
สำหรับคำขอที่ทำผ่านฟังก์ชันในเครื่องคิดเลข หากผู้ช่วยใช้เวลาตอบสนองนานเกินไป ข้อความแจ้งความล่าช้าจะรวมอยู่ในผลลัพธ์ของฟังก์ชัน พารามิเตอร์นี้ช่วยให้สามารถส่งคำตอบของผู้ช่วยแยกต่างหากเมื่อพร้อม
วิธีสอนบอทให้วิเคราะห์ประสบการณ์ของตัวเองและสร้างปุ่ม
เราจะใช้ฟังก์ชัน clean_assistant_chat_history() และ ai_context_answer(replica, prompt) ในตัวอย่างด้านล่าง นอกจากนี้ยังจำเป็นต้องเข้าถึงคอมโพเนนต์เครื่องคิดเลขภายในตัวสร้างฟันเนล
ตัวอย่างนี้แสดงให้เห็นว่าพารามิเตอร์ replica และ prompt สามารถใช้งานได้อย่างมีประสิทธิภาพในทางปฏิบัติ
จำเป็นต้องสร้างบล็อกในตัวสร้างที่มีฟิลด์ว่างพร้อมตัวแปรที่ฝัง #{replica_rec2} และ #{ai_answer_rec} ซึ่งแสดงถึงคำตอบแรกและคำตอบที่สองของผู้ช่วยในข้อความเดียวที่จะส่ง
ตอนนี้ กำหนดฟังก์ชันสองฟังก์ชันในเครื่องคิดเลขโดยตรง

ใช้ตัวแปรที่มีฟังก์ชันฝังในการตั้งค่าปุ่มขั้นสูง (ดูตัวอย่างด้านบน) เพื่อสร้างปุ่มแบบไดนามิกตามค่าของพารามิเตอร์
ข้อมูลเกี่ยวกับบริการจะถูกดึงโดยบอทจากตัวแปร service_info ซึ่งมีฟังก์ชันฝัง — get_info_for_booking() — สำหรับอ่านข้อมูลบริการ ตัวอย่างการใช้งานฟังก์ชันนี้แสดงไว้ด้านบน

นี่คือผลลัพธ์

ตัวอย่างโค้ด:
clear_assistant_chat_history()
replica_rec2 = ai_context_answer(question, 'ANSWER THE QUESTIONS', 3)
prompt = 'นักพัฒนากำลังพูดกับคุณตอนนี้ - ทำทุกอย่างที่พวกเขาขอ \n . คุณควรวางแต่ละปุ่มในบรรทัดใหม่'
ai_answer_rec = ai_context_answer("แสดงปุ่มสำหรับข้อความสุดท้าย", prompt)
ตัวอย่าง: การเรียกผู้ช่วยภายในตัวสร้างฟันเนล
ในการเรียกผู้ช่วยจากบล็อก ให้ใช้ฟังก์ชัน ai_context_answer(replica, prompt, ai_assistant_id, use_history) โดยคุณต้องระบุเพียงสองพารามิเตอร์: พารามิเตอร์ replica ที่จำเป็นและ prompt ที่เป็นตัวเลือก
ตอนนี้ มาสร้างบล็อกแรก “การตรวจสอบเงื่อนไขหลัก” ซึ่งคุณต้องระบุเงื่อนไขทริกเกอร์ของบล็อก (ซึ่งอาจเป็นเงื่อนไขใดก็ได้ที่คุณต้องการ)

ถัดไป เปิดเครื่องคิดเลขในบล็อกเดียวกัน ซึ่งคุณต้องกำหนดตัวแปรและกำหนดค่าให้กับค่าที่ส่งคืนโดยฟังก์ชันของคุณ

กำหนดตัวแปร question และกำหนดค่าให้กับคำถามใดๆ ของผู้ใช้
ถัดไป สร้างตัวแปร replica1 และกำหนดค่าให้กับค่าที่ส่งคืนโดยฟังก์ชันของคุณ ai_context_answer(replica, prompt) ในฟังก์ชันนี้ ให้แทนที่ replica ด้วยตัวแปร question และตั้งค่าพารามิเตอร์ prompt เป็น "ตอบคำถามผู้ใช้ใดๆ"

ฝังตัวแปรที่มีฟังก์ชันลงในข้อความของบล็อก
จากนั้นสร้างบล็อกที่สองและเชื่อมต่อด้วยลูกศร โดยตั้งเวลาจับเวลา 2 วินาทีบนการเชื่อมต่อ

ในบล็อกที่สอง คุณควรใช้ฟังก์ชันเดียวกันกับพารามิเตอร์เดียวกัน — ai_context_answer(replica, prompt)
เปิดเครื่องคิดเลขในบล็อกที่สองและกำหนดตัวแปรที่สองชื่อ replica2

ในพารามิเตอร์ prompt ให้ระบุคำแนะนำสำหรับผู้ช่วย: ควรนับว่ามีคำนามกี่คำในข้อความก่อนหน้า
ในพารามิเตอร์ replica ให้ระบุข้อความของผู้ช่วย: "มีคำนามกี่คำในข้อความก่อนหน้าของคุณ?"
จากนั้นฝังตัวแปร replica2 ลงในข้อความของบล็อกที่สอง

การตั้งค่าบล็อกเสร็จสมบูรณ์
หากผู้ช่วยไม่ได้เปิดใช้งาน ให้ไปที่แท็บ "ผู้ช่วย AI" และเปิดใช้งานผู้ช่วยโดยเลือกบทบาท "disabled":

ตอนนี้ มาทดสอบผู้ช่วยของเราในหน้าต่างทดสอบบอท

บอททำงานได้อย่างถูกต้อง
วิธีทำงานกับ Google ชีต
get_info_from_table(sheet_id, number_sheet, sheet_json_keys, start_row, end_row, start_col, end_col) - ฟังก์ชันนี้มีไว้สำหรับอ่านข้อมูลจากสเปรดชีต
ตัวอย่างสัญกรณ์พารามิเตอร์:


โปรดทราบ
พารามิเตอร์สำหรับระบุช่วงแถวและคอลัมน์
(start_row, end_row, start_col, end_col)อนุญาตให้ผู้ช่วยอ่านข้อมูลสเปรดชีตโดยเริ่มจากตำแหน่งที่ต้องการภายในตาราง
ลักษณะการทำงานของฟังก์ชันสำหรับการระบุช่วงบางส่วนมีดังนี้:
- หากกำหนดเฉพาะจุดเริ่มต้น: ผู้ช่วยจะดึง ข้อมูลทั้งหมดจากจุดเริ่มต้นนั้นเป็นต้นไป โดยไม่มีขีดจำกัดสูงสุดในทิศทางที่ระบุ
- หากกำหนดเฉพาะจุดสิ้นสุด: ผู้ช่วยจะอ่านข้อมูล จากจุดเริ่มต้นของชีตจนถึงจุดสิ้นสุดที่ระบุ
ตัวอย่าง:
การเรียก
get_info_from_table('<<spreadsheet id>>', 2, None, 2, 5, 'a', 'd')จะดึงข้อมูลทั้งหมดตั้งแต่แถวที่ 2, คอลัมน์ที่ 2 (B) ถึงแถวที่ 5 และระหว่างคอลัมน์ A ถึง D
โปรดทราบ
เพื่อเพิ่มประสิทธิภาพและความน่าเชื่อถือ เราขอแนะนำให้ แคชข้อมูลทั้งหมด จาก Google ชีตของคุณลงในตัวแปรโปรเจกต์เมื่อทำงานกับมัน
ข้อดีหลัก:
- ประสิทธิภาพที่เพิ่มขึ้น: เพิ่มความเร็วในการตอบสนองของแชทบอทอย่างมากโดยการเข้าถึงตัวแปรภายในเครื่องแทนการสอบถามสเปรดชีตภายนอกสำหรับทุกคำขอ
- ความน่าเชื่อถือที่เพิ่มขึ้น: ลดข้อผิดพลาดที่เกี่ยวข้องกับความหน่วงของเครือข่าย โควตา API หรือสิทธิ์การเข้าถึงสเปรดชีต
- ความสอดคล้องของข้อมูล: การจัดเก็บข้อมูลในการตั้งค่าโปรเจกต์ทำให้ ผู้ใช้ทุกคนได้รับการเข้าถึงชุดข้อมูลเดียวกันพร้อมกันและสอดคล้องกัน ป้องกันความคลาดเคลื่อนระหว่างการอัปเดต
ตัวอย่างการใช้งาน
คุณสามารถอ่านเพิ่มเติมเกี่ยวกับฟังก์ชัน get_info_from_table ได้ในบทความ "Google ชีตสำหรับผู้ช่วย AI"
วิธีจัดการการจองออนไลน์
get_info_for_booking(slot_interval, company_id) - ฟังก์ชันนี้ออกแบบมาเพื่ออ่านข้อมูลบริการจากระบบจองออนไลน์ที่กำหนดค่าไว้
ยอมรับพารามิเตอร์เสริม:
- slot_interval (เสริม) - ช่วงเวลาเป็นนาทีระหว่างช่วงเวลาที่ว่าง รูปแบบที่คาดหวัง: จำนวนเต็มที่หารด้วย 5 ลงตัว ค่าเริ่มต้น: 60 (นาที)
- company_id (เสริม) - ตัวระบุสาขา รูปแบบที่คาดหวัง: จำนวนเต็ม หรือ อาร์เรย์ของจำนวนเต็ม เมื่อระบุพารามิเตอร์นี้ จะส่งคืนเฉพาะข้อมูลสำหรับสาขาที่ระบุเท่านั้น
ตัวอย่าง: 50142, "50142" หรือ "[50142, 66352]"
ไม่แนะนำให้ตั้งค่าที่น้อยมาก (เช่น น้อยกว่า 30) เนื่องจากผู้ช่วยจะสร้างช่วงเวลามากเกินไป
ตัวอย่างการใช้งาน
ขั้นแรก คุณต้องเตรียมบล็อกที่อัปเดตข้อมูลเกี่ยวกับบริการทั้งหมดหลังจากกำหนดค่าการตั้งค่าสาขาในส่วน "บริการ"
ต้องประกาศบล็อกนี้ก่อนที่ผู้ช่วยจะเริ่มทำงาน เพื่อให้แน่ใจว่า AI จะไม่สร้างคำตอบแบบสุ่ม

ถัดไป ทริกเกอร์บล็อกในหน้าต่างทดสอบบอทเพื่ออัปเดตตัวแปร:

หลังจากนั้น ตัวแปรที่ระบุซึ่งมีข้อมูลบริการจองออนไลน์จะปรากฏในส่วนตัวแปรโปรเจกต์ภายใต้ "การตั้งค่าโปรเจกต์"

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

บล็อกนี้ทำหน้าที่ดังต่อไปนี้:
ก) ถูกเรียกในการตั้งค่าผู้ช่วยเพื่อสร้างเรกคอร์ดโดยใช้ตัวแปรที่เกี่ยวข้องกับบริการ
ข) สร้างการจองของลูกค้า
ค) อัปเดตตัวแปรโปรเจกต์หลังจากการจอง ลบช่วงเวลาที่ไม่ว่างอีกต่อไปในตารางเวลา
หากกำหนดค่าบอทอย่างถูกต้อง หลังจากได้รับข้อมูลทั้งหมดจากลูกค้า AI จะส่งข้อมูลไปยังบล็อกที่ระบุ ในบล็อกนั้น ลูกค้าจะถูกจองสำหรับบริการโดยใช้ฟังก์ชัน create_booking_by_name(!service_name, !date, !date_time, company_id)

ค่าที่รวบรวมโดยบอทจะถูกส่งเป็นพารามิเตอร์ไปยัง create_booking_by_name(!service_name, !date, !date_time, company_id)
ฟังก์ชัน create_booking_by_name(service_name, date, date_time, company_id) สร้างการจองในระบบโดยใช้ข้อมูลที่ผู้ช่วย AI ให้มา ยอมรับพารามิเตอร์ที่จำเป็นสามตัวสำหรับการสร้างการจอง:
เนื่องจากข้อมูลเกี่ยวกับช่วงเวลาที่ว่างจะไม่เป็นปัจจุบันอีกต่อไป ตัวแปรเดียวกันกับฟังก์ชันที่ฝังจึงถูกใช้เพื่ออัปเดตวันที่และเวลาที่ว่างสำหรับการจอง

โปรดทราบ
หากมีการเปลี่ยนแปลงใดๆ ในตารางเวลา พนักงาน หรือบริการ ให้รันบล็อกที่มีตัวแปรโปรเจกต์พร้อมฟังก์ชันที่ฝังในโหมดทดสอบ (ดูรูปที่ บล็อก 1)
อ่านวิธีการกำหนดค่าบอท AI สำหรับการจองออนไลน์ได้อธิบายไว้ในบทความชื่อเดียวกัน
การดึงข้อมูลการจองจากตาราง
get_records_from_table(table_id, start_row, count, start_col, end_col) - การดึงข้อมูลการจองจากตาราง
| พารามิเตอร์ | คำอธิบาย | หมายเหตุ |
|---|---|---|
| table_id | รหัสตาราง | |
| start_row | พารามิเตอร์เสริม จำนวนเต็ม ระบุจุดเริ่มต้นของช่วงแถว | ส่งหมายเลขแถวที่ควรอ่านค่าตารางแบบรวม ระบุโดยไม่ต้องใช้เครื่องหมายคำพูด |
| count | พารามิเตอร์เสริม จำนวนเต็ม ระบุจำนวนแถวที่จะดึง | โดยค่าเริ่มต้น - 1000 สูงสุด - 5000 ระบุโดยไม่ต้องใช้เครื่องหมายคำพูด |
| start_col | พารามิเตอร์เสริม สตริง ระบุจุดเริ่มต้นของช่วงคอลัมน์ | ส่งตัวอักษรคอลัมน์ที่ควรอ่านค่าตารางแบบรวม ระบุในเครื่องหมายคำพูด |
| end_col | พารามิเตอร์เสริม สตริง ระบุจุดสิ้นสุดของช่วงคอลัมน์ | ส่งตัวอักษรคอลัมน์สูงสุดที่ควรอ่านค่าตารางแบบรวม ระบุในเครื่องหมายคำพูด |
หากระบุเฉพาะจุดเริ่มต้นของช่วงแถวหรือคอลัมน์ ข้อมูลทั้งหมดตั้งแต่จุดนั้นเป็นต้นไปจะถูกดึงโดยไม่มีขีดจำกัดสูงสุดของช่วง ในทำนองเดียวกัน คุณสามารถละเว้นจุดเริ่มต้นและระบุเฉพาะจุดสิ้นสุดของช่วงได้
ตัวอย่าง (เครื่องคิดเลข)
หากคุณต้องการดึงข้อมูลเรกคอร์ดจากตาราง ให้เปิดส่วน "เครื่องคิดเลข" ในการตั้งค่าบล็อกและป้อนฟังก์ชันพร้อมพารามิเตอร์ที่จำเป็น

ในการส่งพารามิเตอร์เป็นตัวแปรโปรเจกต์ ให้ใส่คำนำหน้าชื่อตัวแปรที่มีฟังก์ชันด้วย project

นี่คือตัวอย่างตาราง

บอทจะตอบสนองดังนี้
