ภาพรวม
ออกแบบให้เชื่อมต่อง่ายและรับมือความเสี่ยงจริง
ตาแหลมรวมโมเดลภาษาไทย Pathumma, กฎตรวจจับ, ฐานความรู้กลโกง และนโยบายความปลอดภัยเข้าด้วยกัน ผลลัพธ์จึงไม่ได้มีเพียงคะแนน แต่บอกจุดพิรุธ เหตุผล การดำเนินการ และช่องทางหน่วยงานทางการ
ข้อควรรู้ผล API เป็นการประเมินเบื้องต้น ไม่ใช่คำตัดสิน ห้ามใช้เป็นเหตุผลเดียวในการโอนเงิน เปิดเผยข้อมูล หรือกล่าวหาบุคคล
Quick start
ส่งข้อความแรกภายในไม่กี่นาที
cURL
curl -X POST "https://team03.aiforthai.in.th/api/v1/analyze-scam-text" \
-H "Content-Type: application/json" \
-d '{"text":"ตำรวจโทรบอกว่าบัญชีเกี่ยวข้องคดี ให้โอนเงินตรวจสอบ","source_channel":"web"}'
Authentication
Public access สำหรับการทดลองเชื่อมต่อ
เส้นทางวิเคราะห์เรียกได้โดยไม่ส่ง secret และมี rate limit กับ validation ป้องกันการใช้งานผิดรูปแบบ หากต้องการใช้งานในระบบองค์กร ปริมาณสูง หรือมีข้อกำหนด SLA กรุณาติดต่อบริษัท ซินเวนทรา จำกัด เพื่อกำหนดสิทธิ์และโควตาที่เหมาะสม
อย่าใส่ token ที่ไม่จำเป็นไม่ต้องส่ง LINE token, Pathumma key หรือรหัสลับใด ๆ มากับ request และไม่ควรฝัง secret ไว้ใน frontend
API endpoints
เลือก input ให้ตรงกับสิ่งที่ผู้ใช้ได้รับ
POST/v1/analyze-scam-textตรวจข้อความ
วิเคราะห์แชท SMS อีเมล หรือข้อความถอดเสียงภาษาไทย ความยาว 1 ถึง 8,000 ตัวอักษร
Request body
| Field | ชนิด | จำเป็น | รายละเอียด |
text | string | ใช่ | ข้อความ 1 ถึง 8,000 ตัวอักษร |
source_channel | string | ไม่ | web หรือ line_oa ค่าเริ่มต้นคือ web |
POST/v1/analyze-scam-imageตรวจภาพ
อ่านข้อความจากภาพด้วย OCR แล้ววิเคราะห์ต่อใน request เดียว ส่งแบบ multipart/form-data ด้วย field ชื่อ file
ไฟล์ที่รองรับ
PNG, JPEG และ WEBP ขนาดไม่เกิน 8 MB และแต่ละด้านไม่เกิน 4,096 pixels ระบบตรวจชนิดไฟล์จากเนื้อหาจริงและลบ metadata ก่อนประมวลผล
POST/v1/analyze-scam-audioตรวจเสียง
ถอดเสียงภาษาไทยแล้ววิเคราะห์รูปแบบแก๊งคอลเซ็นเตอร์ ส่งแบบ multipart/form-data ด้วย field ชื่อ file
ไฟล์ที่รองรับ
MP3, M4A, WAV, OGG และ WEBM ขนาดไม่เกิน 10 MB ความยาวไม่เกิน 5 นาที ระบบตรวจ signature และระยะเวลาจริงก่อนส่งเข้า ASR
POST/v1/report-feedbackรายงานผลคลาดเคลื่อน
ส่ง feedback เมื่อผลวิเคราะห์ไม่ตรงกับข้อเท็จจริง ต้องแนบ feedback_token ที่ได้จากผลวิเคราะห์ครั้งนั้น เพื่อป้องกันข้อมูลขยะและเชื่อม feedback กับเหตุการณ์จริง
GET/healthตรวจว่า process ทำงาน
GET/readyตรวจว่า service พร้อมรับงาน
Response reference
โครงสร้างผลวิเคราะห์
ตัวอย่าง JSON
{
"risk_level": "red",
"risk_score": 82,
"score_breakdown": { "llm": 85, "rules": 90, "knowledge_base": 75, "rag": 75, "consistency": 80, "final_score": 82 },
"red_flags": ["แอบอ้างเป็นตำรวจ", "เร่งให้โอนเงิน"],
"matched_scam_categories": ["บัญชีม้าและตำรวจปลอม"],
"explanation": "มีการข่มขู่และขอให้โอนเงินเพื่อตรวจสอบ",
"recommended_actions": ["วางสายทันที", "ติดต่อ AOC 1441"],
"official_contacts": [{ "name_th": "AOC", "phone": "1441", "purpose": "แจ้งภัยออนไลน์" }],
"family_summary": "พบความเสี่ยงสูง ควรหยุดติดต่อและไม่โอนเงิน",
"advisory": null,
"disclaimer": "ตาแหลมช่วยดูให้เบื้องต้น ไม่ใช่คำตัดสิน",
"feedback_token": "token-for-this-analysis"
}
| Field | ความหมาย |
risk_level | green, yellow หรือ red ค่าอื่นต้องถือว่าน่าสงสัย |
risk_score | คะแนน 0 ถึง 100 ไม่ใช่ความน่าจะเป็นทางสถิติ |
score_breakdown | คะแนนย่อยจากโมเดล กฎ similarity ของฐานความรู้ และความสอดคล้อง โดย rag เป็นชื่อเดิมของ knowledge_base ที่คงไว้ชั่วคราวเพื่อให้ client เดิมใช้งานต่อได้ |
red_flags | จุดพิรุธที่ตรวจพบใน input |
recommended_actions | รายการสิ่งที่ผู้ใช้ควรทำต่อ เรียงตามลำดับ |
official_contacts | ช่องทางทางการที่เกี่ยวข้อง ห้ามแทนด้วยเบอร์จากข้อความต้องสงสัย |
extracted_text | มีเฉพาะ API ภาพ เป็นข้อความที่ OCR อ่านได้ |
transcript | มีเฉพาะ API เสียง เป็นข้อความที่ ASR ถอดได้ |
feedback_token | token อายุสั้นสำหรับส่ง feedback ของผลครั้งนั้น |
Errors
จัดการข้อผิดพลาดแบบคาดเดาได้
| Status | กรณีที่พบ | สิ่งที่ client ควรทำ |
413 | ไฟล์ใหญ่เกินเพดาน | ลดขนาดหรือตัดเฉพาะช่วงสำคัญ |
415 | ชนิดไฟล์ไม่รองรับ | แปลงเป็นรูปแบบที่ระบุในคู่มือ |
422 | input ว่าง เสียหาย หรือไม่ผ่าน validation | แสดงข้อความ detail ให้ผู้ใช้แก้ input |
429 | เรียกถี่เกิน rate limit | รอตาม header Retry-After แล้ว retry แบบ exponential backoff |
502 | AI provider หรือ ASR ไม่พร้อม | แจ้งว่าเป็นปัญหาชั่วคราวและให้ลองใหม่ |
500 | ข้อผิดพลาดภายใน | ไม่ retry รัว บันทึกเวลาและ request context ที่ไม่ใช่ข้อมูลลับ |
ทุก response มี header X-Request-ID สำหรับใช้อ้างอิงเมื่อแจ้งปัญหา โดยไม่ต้องส่งเนื้อหาหรือข้อมูลส่วนบุคคลซ้ำ
Privacy and safety
ลดข้อมูลก่อนส่งต่อและไม่บันทึกเนื้อหา request
ปกปิด PIIข้อมูลส่วนบุคคลที่ตรวจจับได้ถูก mask ก่อนส่งข้อความไปยังโมเดลภายนอก
ไม่ log เนื้อหาaccess log เก็บ method, path, status และ latency ไม่เก็บ body ของผู้ใช้
ทำความสะอาดไฟล์ภาพถูกลบ metadata และไฟล์ชั่วคราวสำหรับตรวจเสียงถูกลบหลังใช้งาน
ผู้พัฒนาฝั่ง client ควรขอความยินยอมอย่างเหมาะสม หลีกเลี่ยงการส่ง OTP, รหัสผ่าน หรือเอกสารจริงถ้าไม่จำเป็น และไม่เก็บผลวิเคราะห์นานกว่าจุดประสงค์การใช้งาน
Operational guidance
ออกแบบ client ให้พร้อมเมื่อระบบช้าหรือไม่พร้อม
- ระบบมี rate limit ป้องกัน abuse และอาจคืน
429
- ตั้ง timeout ฝั่ง client อย่างน้อย 30 วินาทีสำหรับข้อความ และนานขึ้นสำหรับภาพหรือเสียง
- แสดง loading state และป้องกันผู้ใช้กดส่งซ้ำระหว่างรอ
- เมื่อผิดพลาด ให้บอกผู้ใช้ตรง ๆ และเสนอให้ตรวจสอบกับหน่วยงานทางการ
API Playground
ทดลองส่งข้อความไปยัง production
ข้อความด้านล่างจะถูกส่งไปยัง API จริง โปรดใช้ข้อความตัวอย่างและอย่าใส่ OTP, รหัสผ่าน หรือข้อมูลส่วนบุคคลที่ไม่จำเป็น
พร้อมทดลอง
ผลลัพธ์ JSON จะแสดงที่นี่
พร้อมใช้งาน
เริ่มจาก API หรือทดลองประสบการณ์จริงใน LINE