~/VibeHandbook
PDF ฟรี

Cloudflare

developers.cloudflare.com

Workers AI

คืออะไร

ลองนึกภาพตู้ขายของอัตโนมัติสำหรับ AI: คุณใส่คำขอเข้าไป แล้วโมเดลที่ฝึกไว้พร้อมใช้งานก็ส่งผลลัพธ์กลับมาให้ โดยไม่ต้องตั้งเครื่องของตัวเองเลย Workers AI รันโมเดล machine learning บนชิป GPU (ชิปเฉพาะทางที่ขับเคลื่อน AI) ของ Cloudflare เอง และเข้าถึงได้จาก Worker ของคุณผ่าน AI binding (การเชื่อมต่อสำเร็จรูป) เพียงตัวเดียว คุณเรียก env.AI.run("@cf/...model") พร้อมข้อมูลนำเข้า แล้วรับผลลัพธ์กลับมา — ไม่ต้องมี inference server แยกต่างหาก (เครื่องเพิ่มเติมที่รันโมเดล) ไม่ต้องมี key (รหัสลับ) ไปยังผู้ให้บริการภายนอก ไม่ต้องตั้งค่า GPU เอง แคตตาล็อกครอบคลุมตั้งแต่การสร้างข้อความ, embeddings, การสร้างภาพ, เสียงพูด, และการแปลภาษา

จุดแข็ง

  • ใช้ binding เดียว — ไม่ต้องมี API key ภายนอกหรือโครงสร้างพื้นฐาน inference แยกต่างหาก
  • รันบนเครือข่าย GPU ของ Cloudflare ซึ่งอยู่ใกล้กับ Worker และผู้ใช้ของคุณ
  • แคตตาล็อกโมเดลหลากหลาย: LLM (Large Language Models — AI ที่อยู่เบื้องหลังแชทและข้อความ), embeddings, ภาพ, เสียง และอื่น ๆ
  • จ่ายตามการใช้งานจริง; มีโควตาฟรีให้ทดลองใช้ได้ในราคาถูก
  • เข้ากันได้ดีกับ Vectorize สำหรับ RAG (Retrieval-Augmented Generation — การป้อนข้อเท็จจริงที่เกี่ยวข้องให้ AI อ้างอิงได้)

ข้อแลกเปลี่ยน

  • ตัวเลือกโมเดลจำกัดอยู่ในแคตตาล็อกของ Cloudflare ไม่ใช่ทุกโมเดลในตลาด
  • โมเดลระดับแนวหน้าที่ใหญ่ที่สุดอาจไม่มีให้ใช้งาน; คุณภาพแตกต่างกันไปตามแต่ละโมเดล
  • มีความหน่วงในการอนุมาน (inference latency) และข้อจำกัดอัตราการเรียกใช้ โดยเฉพาะกับโมเดลขนาดใหญ่
  • หากต้องการโมเดลเฉพาะเจ้าใดเจ้าหนึ่ง คุณก็ยังต้องเรียก API ของผู้ให้บริการนั้นอยู่ดี

เมื่อไรควรใช้

ใช้ Workers AI สำหรับการอนุมาน (inference) ภายในแอปที่คุณต้องการให้อยู่ร่วมกับ logic ของคุณ เช่น ฟีเจอร์แชท, การสรุปความ, การจัดหมวดหมู่, embeddings สำหรับการค้นหา หรือการสร้างภาพ — โดยไม่ต้องรัน GPU stack ของตัวเอง

เข้ากับ vibe coding อย่างไร

Workers AI ตัดขั้นตอนการตั้งค่าส่วนใหญ่ที่ มักต้องเขียนสคริปต์เองออกไป: ไม่ต้องจัดการ key ไม่ต้องใช้ provider SDK (Software Development Kit — ไลบรารีโค้ดสำเร็จรูป) มีเพียง binding กับการเรียก run เท่านั้น บอก agent ว่าต้องการทำงานอะไรและใช้โมเดลไหน (เช่น โมเดล embeddings เพื่อป้อนให้ Vectorize) เพื่อให้มันเลือกจากแคตตาล็อกได้ถูกต้อง ตัวอย่างด้านล่างผูก AI ไว้แล้วรันโมเดลข้อความ

# wrangler.toml
[ai]
binding = "AI"
// inside your Worker
const out = await env.AI.run("@cf/meta/llama-3.1-8b-instruct", {
  prompt: "Summarize this in one sentence: ...",
});