ทะเบียนผู้ให้บริการและผู้ประมวลผลช่วง
คอลัมน์ "สถานะ" บอกที่มาของแต่ละแถว“จากโค้ด/รันบุ๊ก” = อ่านจากซอร์สและคู่มือติดตั้งใน repo ณ วันจัดทำ · “ตามค่าตั้ง” = ระบบรองรับและเปิดใช้เมื่อผู้ดูแลตั้งค่า ต้องตรวจบัญชี production ก่อนยืนยันว่าใช้อยู่ · ทุกแถวยังต้องเติม region/retention/นโยบายฝึกโมเดล และลิงก์สัญญาจากบัญชีจริงก่อนกำหนดวันที่มีผล
ทะเบียนนี้แยก ผู้ประมวลผลช่วง (ทำงานตามคำสั่งของตอบดี) ออกจาก ผู้รับข้อมูลบทบาทอื่น (แพลตฟอร์มแชทที่ลูกค้าและร้านเลือกใช้เอง) ตามที่โครง Privacy Notice กำหนด
1. โครงสร้างพื้นฐานของตอบดี
| ผู้ให้บริการ / บริการ | ข้อมูลที่รับ | ประเทศ/region | สถานะ |
|---|---|---|---|
| Vultr — เครื่องเสมือน (VPS) ที่รันระบบ ฐานข้อมูล Postgres และโมเดล Ollama ของทุกร้าน | ข้อมูลทั้งหมดของระบบ (บัญชี บทสนทนา รูป ออเดอร์ การตั้งค่า) | Bangkok ตามคู่มือติดตั้ง [ยืนยันจากบัญชีจริง] | จากโค้ด/รันบุ๊ก (DEPLOY-VPS.md) |
| Cloudflare — DNS ของ tobdee.com · R2 เก็บสำเนาสำรองที่เข้ารหัสด้วย restic · Turnstile กันบอทหน้าสมัคร (เมื่อเปิด) | DNS: คำขอชื่อโดเมน · R2: snapshot ฐานข้อมูล+รูปที่เข้ารหัสฝั่งเราก่อนส่ง (ผู้ให้บริการอ่านเนื้อหาไม่ได้) · Turnstile: สัญญาณเบราว์เซอร์/IP ของผู้สมัคร | [ระบุ region ของ bucket และ jurisdiction] | DNS/R2 จากรันบุ๊ก · Turnstile ตามค่าตั้ง (TURNSTILE_SITE_KEY) |
| Resend — ส่งอีเมลระบบ (ลิงก์ยืนยัน/เข้าใช้ แจ้งใกล้หมดอายุ ใบเสร็จ) | อีเมลผู้รับ หัวข้อ เนื้อหา สถานะส่ง | [ระบุ] | ตามค่าตั้ง (src/console/email.ts) |
| Beam — รับชำระ PromptPay และส่ง webhook สถานะจ่าย | ยอด รายการ อ้างอิงใบแจ้งหนี้ สถานะชำระ; ข้อมูลผู้จ่ายตามที่ผู้ให้บริการชำระเงินเก็บ | [ระบุ] | ตามค่าตั้ง (src/console/payments/beam.ts) |
| Telegram — แจ้งเตือนภายในทีมตอบดี (สรุปรายวัน เหตุขัดข้อง) | สรุปสถานะระบบ ชื่อร้าน/แพ็ก ไม่ส่งบทสนทนาลูกค้า | [ระบุ] | ตามค่าตั้ง (src/console/telegram.ts) |
| Google Fonts — แบบอักษรบนหน้าแรก/บทความ/หน้านี้ | IP และข้อมูลคำขอของผู้เข้าชม | Google (ทั่วโลก) | จากโค้ด · พิจารณา self-host |
2. ผู้ให้บริการ AI
ระบบมีเส้นทาง AI แยกกัน: โมเดลตอบแชท (หลัก/สำรอง) · โมเดลอ่านรูป/สลิป · โมเดลตรวจคุณภาพและร่าง FAQ (monitor) · โมเดลทำ embedding ของคลังความรู้ ทุกเส้นทางเลือกผู้ให้บริการได้จากค่าตั้งระดับระบบ (ทีมตอบดีเป็นผู้ตั้ง ร้านตั้งเองไม่ได้) จึงต้องอ่านค่าจริงของ production ก่อนระบุชื่อบริษัท
| เส้นทาง | ตัวเลือกที่โค้ดรองรับ | ข้อมูลที่ส่ง | สถานะ |
|---|---|---|---|
| ตอบแชท (หลัก) | Ollama บนเครื่องของเรา (ค่าเริ่มต้นในโค้ด) · endpoint แบบ OpenAI-compatible (ตัวอย่างใน .env.example: โมเดล cloud ผ่าน Ollama) · Anthropic | ข้อความลูกค้า ประวัติล่าสุด บริบทร้าน (ราคา FAQ คิวว่าง) | [ระบุผู้ให้บริการ/region/retention/นโยบายฝึกโมเดลของบัญชีจริง] |
| ตอบแชท (สำรอง เมื่อตัวหลักล่ม) | ชุดเดียวกัน ตั้งแยกผ่าน AI_FALLBACK_* (ตัวอย่างในโค้ดคือ OpenRouter — เป็นตัวอย่าง ไม่ใช่การยืนยันว่าใช้) | เท่าตัวหลัก | ตามค่าตั้ง |
| อ่านรูป/สลิป (vision) | ชุดเดียวกัน (VISION_PROVIDER · ไม่ตั้ง = ตามตัวหลัก) | รูปที่ลูกค้าส่ง (สลิป หน้างาน สินค้า) | ตามค่าตั้ง |
| ตรวจคุณภาพ/ร่าง FAQ (monitor) และสรุปสถานะลูกค้า | ชุดเดียวกัน (MONITOR_AI_* · ไม่ตั้ง = ตามตัวหลัก) | บทสนทนาย้อนหลังแบบ batch | ตามค่าตั้ง |
| Embedding คลังความรู้และจัดกลุ่มคำถาม | Ollama บนเครื่องของเรา (bge-m3) หรือ endpoint แบบ OpenAI-compatible — ทีมตอบดีตั้งจาก console หรือ EMBEDDING_* · แผนตอนเปิดคือ OpenRouter (OpenRouter, Inc. สหรัฐอเมริกา) โมเดล baai/bge-m3 | เนื้อหา FAQ/สินค้า และข้อความคำถามลูกค้า (ไม่ส่งโปรไฟล์ LINE/Facebook แต่ข้อความอาจมีข้อมูลส่วนบุคคลที่ลูกค้าพิมพ์มาเอง เช่น ชื่อหรือเบอร์โทร) | ตามค่าตั้ง (deploy/app.env.template · src/ai/fleet-store.ts) [ยืนยันผู้ให้บริการปลายทางที่ OpenRouter ส่งต่อ และนโยบายเก็บ/ฝึกโมเดลของบัญชีจริง] |
ข้อความติดตามลูกค้า (เตือนนัด ขอบคุณหลังบริการ ชวนจองรอบถัดไป) ไม่ผ่านโมเดล AI — ประกอบจากเทมเพลตและข้อมูลในระบบเท่านั้น
3. แพลตฟอร์มแชทและผู้รับข้อมูลบทบาทอื่น
| ผู้ให้บริการ | สิ่งที่ผ่าน | บทบาท |
|---|---|---|
| LINE (LY Corporation) — Messaging API ของ LINE OA ที่ร้านเป็นเจ้าของ | ข้อความ รูป โปรไฟล์ ปุ่มตอบ และข้อความที่บอท/ร้านส่งกลับ รวมข้อความติดตามแบบ push (นับโควตาข้อความของ OA ร้าน) | ผู้ให้บริการที่ร้านเลือกใช้เอง — บทบาทและนโยบายเป็นไปตามข้อตกลงระหว่างร้านกับ LINE |
| Meta Platforms — Messenger ของเพจ Facebook ที่ร้านเป็นเจ้าของ | เช่นเดียวกับ LINE · ข้อความที่ระบบเริ่มเองส่งด้วย message tag ตามนโยบาย Meta | ผู้ให้บริการที่ร้านเลือกใช้เอง |
| กลุ่ม LINE ของทีมร้าน (ตั้งใน Setup) | แจ้งเตือนภายในร้าน: ออเดอร์ใหม่ ลูกค้าขอคุยกับคน สรุปรูปที่ลูกค้าส่ง | ผู้รับที่ร้านกำหนดเอง — สมาชิกกลุ่มคือคนของร้าน |
4. การเปลี่ยนผู้ให้บริการ
ตอบดีจะอัปเดตหน้านี้เมื่อเพิ่ม/เปลี่ยนผู้ให้บริการที่รับข้อมูลส่วนบุคคล และแจ้งร้านตามช่องทางและระยะเวลาใน DPA [กำหนดระยะแจ้งล่วงหน้าและสิทธิคัดค้าน]