เริ่มต้นใช้งาน
ตอบอัตโนมัติด้วย AI
หน้านี้พาทำบอทที่อ่านแชตย้อนหลังแล้วให้ AI ตอบลูกค้า ใช้ AI เจ้าไหนก็ได้
ภาพรวมการทำงาน#
- ลูกค้าส่งข้อความหาออฟฟิศ
- ทักคับส่ง Webhook มาที่เซิร์ฟเวอร์ของคุณ
- เซิร์ฟเวอร์ตรวจลายเซ็น แล้วตอบ
200ทันที - เซิร์ฟเวอร์อ่านข้อความย้อนหลังจาก API
- ส่งประวัติให้ AI และรับคำตอบ
- ส่งคำตอบกลับด้วย API ลูกค้าเห็นเป็นข้อความจากออฟฟิศ
ขั้นตอนที่ 1: เตรียมค่า#
สร้างคีย์ที่มีสิทธิ์ read และ reply และตั้ง Webhook ในเมนู นักพัฒนา แล้วเก็บเป็นตัวแปรสภาพแวดล้อม
bash
TAKKUB_API_KEY=tk_xxxxxxxx
TAKKUB_WEBHOOK_SECRET=whsec_xxxxxxxxขั้นตอนที่ 2: อ่านประวัติแล้วแปลงให้ AI#
ข้อความจาก API มีช่อง from เป็น customer หรือ office แปลงเป็นบทบาทผู้ใช้กับผู้ช่วยได้ตรง ๆ
async function loadHistory(threadId) {
const response = await fetch(`${BASE}/threads/${threadId}/messages?limit=30`, { headers: AUTH });
const { data } = await response.json();
return data.messages
.filter((message) => message.text)
.map((message) => ({
role: message.from === 'customer' ? 'user' : 'assistant',
content: message.text,
}));
}def load_history(thread_id):
response = requests.get(
f"{BASE}/threads/{thread_id}/messages",
params={"limit": 30}, headers=AUTH, timeout=10,
)
messages = response.json()["data"]["messages"]
return [
{"role": "user" if m["from"] == "customer" else "assistant", "content": m["text"]}
for m in messages if m["text"]
]ขั้นตอนที่ 3: ตอบกลับ#
ใส่ client_id ทุกครั้ง ถ้าเรียกซ้ำเพราะเน็ตหลุด ลูกค้าจะได้ข้อความครั้งเดียว ใช้รหัสเหตุการณ์จาก Webhook เป็นค่านี้ได้
await fetch(`${BASE}/threads/${threadId}/messages`, {
method: 'POST',
headers: { ...AUTH, 'Content-Type': 'application/json' },
body: JSON.stringify({ text: answer, client_id: `reply-${event.id}` }),
});requests.post(
f"{BASE}/threads/{thread_id}/messages",
json={"text": answer, "client_id": f"reply-{event['id']}"},
headers=AUTH, timeout=10,
)ดูโค้ดเต็มที่ ตัวอย่าง Node.js และ ตัวอย่าง Python
ข้อควรระวังเรื่อง AI#
- อย่าให้ AI เข้าถึงข้อมูลลูกค้าคนอื่น หรือคีย์ที่ไม่จำเป็น
- ราคา โปรโมชัน และการคืนเงิน ควรดึงจากระบบของคุณ ไม่ใช่ให้ AI คิดเอง
- ถ้า AI ไม่มั่นใจ ให้ตั้งสถานะ
workingแล้วส่งต่อให้คนตอบ - บอกลูกค้าว่ากำลังคุยกับระบบอัตโนมัติ และแจ้งว่าข้อความถูกส่งให้บริการ AI ภายนอก ตามกฎหมายคุ้มครองข้อมูลส่วนบุคคล
- ตรวจสถานะแชตก่อนตอบ ถ้าคนในร้านกำลังดูแลอยู่ บอทควรหยุด
ให้บอทหยุดเมื่อคนเข้ามาตอบ#
ก่อนตอบ เรียก ข้อมูลแชต แล้วข้ามถ้า state เป็น working เจ้าของร้านกดปุ่ม กำลังดำเนินการ บนเว็บเมื่อจะตอบเอง บอทก็จะหยุดทันที