Web Fetch API
Readable content from any web page, in markdown format.
Web Fetch API คืออะไร
API สำหรับดึงเนื้อหาหลักจากหน้าเว็บไซต์ แล้วแปลงเป็น Markdown
ใช้งานง่าย ไม่ซับซ้อน แค่ส่ง URL เว็บไซต์เข้ามา
เหมาะกับงาน RAG
Web Fetch API คือบริการดึงเนื้อหาหลักจากหน้าเว็บไซต์ แล้วแปลงเป็นไฟล์ Markdown เท่านั้น (Markdown-only output). เหมาะกับงาน RAG / AI / Knowledge Ingestion ที่ต้องการโครงสร้างข้อความอ่านง่าย ป้อนเข้าโมเดลได้ทันที
API นี้ออกแบบให้ใช้งานง่าย: ส่ง URL เดี่ยวหรือหลาย URL ในครั้งเดียว ระบบจะดึงเนื้อหาให้พร้อม metadata ขั้นพื้นฐาน เช่นtitle
และเวลาที่ดึงข้อมูลสำเร็จ โดยไม่บังคับรูปแบบอื่นนอกจาก Markdown
อ่านเว็บเสร็จแล้ว — ดูผลลัพธ์
# GearMind แชทบอทสุดเจ๋ง
- จุดเด่น: โฟกัสงานเฉพาะทาง, เน้น RAG
- กลุ่มเปรียบเทียบ: โซลูชันทั่วไป/โอเพนซอร์สบางตัว
- ....
เริ่มต้นใช้งาน
คุณสามารถเข้าถึง Web Fetch API ได้ง่ายๆ เพียงทำตามขั้นตอนนี้
1. ขอ API Key
2. เรียกใช้งาน
API ของเราเป็น REST API ที่รองรับการส่ง URL แบบ Single หรือ Batch (ส่งหลาย URL ในครั้งเดียว) ได้อย่างง่ายดาย
ตัวอย่าง cURL แบบ Single URL
ใช้เมื่อคุณต้องการดึงข้อมูลจาก 1 URL ต่อคำขอ เหมาะกับงานตรวจสอบทีละหน้า
- Header
Content-Type: application/json
ระบุว่ากำลังส่ง JSON - Header
Authorization: Bearer YOUR_API_TOKEN
ใช้ Token สำหรับยืนยันตัวตน - ใน payload ระบุ
url
เป็น string เดี่ยว
ตัวอย่าง cURL แบบ Batch URLs
ใช้เมื่อคุณต้องการดึงข้อมูลหลาย URL ในครั้งเดียว เหมาะกับงานรวบยอด ประหยัดจำนวนรอบคำขอ
- โครงสร้าง Header และวิธีส่งเหมือน Single แต่รูปแบบฟิลด์แตกต่าง
- ใน payload ระบุ
url
เป็น array ของ string เช่น["https://a.com","https://b.com"]
- ระบบจะประมวลผลทีละรายการและรวมผลลัพธ์ให้ในการตอบกลับเพียงครั้งเดียว
ตัวอย่างการใช้ในภาษาหรือเครื่องมืออื่นๆ
หากคุณอยากเห็นตัวอย่างการใช้งาน Web Fetch ไม่ว่าแบบ single หรือแบบ fetch เพียงแค่พิมพ์คำขอ แล้วดูผลลัพธ์ที่ถูกพิมพ์กลับมาในเทอร์มินัล
3. ผลลัพธ์ตัวอย่าง
ผลลัพธ์ที่ได้จาก /web-fetch
เป็น Markdown-only ภายในฟิลด์data.content
โดยไม่มีรูปแบบอื่น เช่น HTML/JSON ของเนื้อหา และสำหรับ batch จะส่งกลับเป็น Array ที่อาจมีทั้งsuccess
และ error
ปะปนกัน
Field | คำอธิบาย |
---|---|
status | สถานะของการดึงข้อมูล (success หรือ error ) |
data | ข้อมูลที่ดึงได้ (มีเฉพาะกรณี success ) |
url | URL ของหน้าที่ดึงข้อมูล |
data.content | สตริง Markdown ล้วน ๆ (ไม่มี HTML/RTF/Doc) |
extracted_at | เวลาที่ดึงข้อมูลสำเร็จในรูปแบบ ISO 8601 |
processing_time | เวลาที่ใช้ประมวลผลหน้านั้น หน่วยเป็นมิลลิวินาที |
code | รหัสข้อผิดพลาดแบบย่อ (เช่น E_NO_KEY ) กรณี error |
message | คำอธิบายข้อผิดพลาดแบบอ่านง่าย กรณี error |
4. ตัวอย่างโปรเจค
แนวทางการนำ Web Fetch API ไปใช้ในงานจริงเพื่อให้เห็นภาพชัดเจนขึ้น
5. ข้อควรรู้
- จำกัดการเรียกใช้งาน 50 ครั้งต่อนาที ต่อ Token
- ผลลัพธ์จะถูกแคชเก็บไว้ 1 นาที หากเรียกซ้ำในช่วงเวลานั้นอาจได้ผลลัพธ์เดิม
- ไม่มีการตัดเนื้อหา (ไม่มี max length — ดึงจนจบ)
- ต้องส่ง
Authorization
Header ทุกครั้ง โดยใส่รูปแบบAuthorization: Bearer YOUR_API_TOKEN
ซึ่งสามารถขอ Token ได้จากส่วน "ขอ API Key" ด้านบน - หากเกิด error เช่น
"Failed to fetch content"
ให้ตรวจสอบ URL ว่าสามารถเข้าถึงได้และไม่ถูกบล็อค - เนื้อหาเป็น Markdown เท่านั้น ไม่มีฟอร์แมตอื่น
- เว็บไซต์ที่บล็อกบอทหรือใช้ dynamic rendering อาจดึงไม่สำเร็จ
6. รหัสข้อผิดพลาด
API ใช้ HTTP status code ควบคู่กับ JSON error format ที่ประกอบด้วย status = "error", code, และ message สำหรับอธิบายสาเหตุอย่างสั้น
ไม่ได้ส่ง API Key หรือ Token ไม่ถูกต้อง
Causes
- ไม่มี Header Authorization
- ใช้รูปแบบไม่ถูกต้อง เช่น ไม่ได้ขึ้นต้นด้วย Bearer
- Token หมดอายุหรือไม่ถูกต้อง
Solutions
- เพิ่ม Header: Authorization: Bearer YOUR_API_KEY
- ตรวจสอบว่าใช้ Key ล่าสุด และสะกดถูกต้อง
- หากเพิ่งสร้าง Key ใหม่ ให้ลองใช้อีกครั้ง
Example Response
ไม่มีสิทธิ์เข้าถึงทรัพยากร หรือ Key ถูกระงับ
Causes
- Token ถูกจำกัดสิทธิ์สำหรับ Endpoint นี้
- บัญชี/Key ถูกระงับการใช้งานชั่วคราว
Solutions
- ตรวจสอบสิทธิ์ของ Key ว่ารองรับ Endpoint นี้
- ติดต่อผู้ดูแลระบบหากคิดว่าเป็นความผิดพลาด
Example Response
ไม่พบปลายทางหรือทรัพยากรที่ระบุ
Causes
- URL ปลายทางไม่ถูกต้อง หรือหน้าเว็บถูกลบ
- เส้นทาง API ไม่ถูกต้อง
Solutions
- ตรวจสอบ URL/Endpoint ว่าสะกดถูกต้อง
- ตรวจสอบการ Redirect/บล็อคจากปลายทาง
Example Response
Method ที่ใช้ไม่รองรับสำหรับ Endpoint นี้
Causes
- เรียกด้วย GET/PUT/DELETE ในขณะที่ Endpoint รองรับเฉพาะบาง Method
Solutions
- ตรวจสอบเอกสารว่า Endpoint รองรับ Method ใด (เช่น POST)
- เปลี่ยนมาใช้ Method ที่รองรับ
Example Response
เกินโควตาการใช้งานที่กำหนด
Causes
- เรียกใช้งานเกิน 50 ครั้งต่อนาที ต่อ Token
Solutions
- เพิ่มระยะห่างระหว่างคำขอ หรือทำ Retry แบบ Exponential Backoff
- รวมคำขอที่ซ้ำหรือรอให้แคชหมดอายุ (1 นาที)
Example Response
ข้อผิดพลาดภายในระบบ
Causes
- เหตุขัดข้องภายในที่ไม่คาดคิด
- ปลายทางตอบกลับผิดรูปแบบ/ไม่เสถียร
Solutions
- ลองใหม่ภายหลัง และทำ Retry ด้วย Backoff
- เก็บรายละเอียด error เพื่อแจ้งผู้ดูแลระบบ
Example Response
7. การใช้งานขั้นสูง
- Batch เพื่อลดจำนวนคำขอ: รวมหลาย URL ในคำขอเดียวเพื่อลด round-trip และปริมาณการเรียก API ภายใต้ข้อจำกัด rate limit
- รวมผลลัพธ์ต่างสถานะ: กรณี batch อาจมีทั้ง success และ error ในลิสต์เดียวกัน ให้ตรวจสอบฟิลด์
status
ของแต่ละรายการ - Retry แบบเลือกกรณี: แนะนำให้ retry เมื่อพบโค้ด
E_RATE_LIMIT
หรือข้อผิดพลาดเครือข่าย ด้วย exponential backoff (เช่น 1s, 2s, 4s) และหยุด retry เมื่อพบE_FORBIDDEN
หรือE_NO_KEY