แกลเลอรีแอป AI จริง 59 ตัว — เปิดของจริงมาผ่าทีละ pattern
แทร็กเสริม 2 อันก่อนหน้า (Superpowers, mattpocock/skills) สอน "วิธีทำงานกับ agent" —
เป็นเมโธดอโลยีในโฟลเดอร์ .claude แต่แทร็กนี้ต่างออกไปคนละแนว:
Hands-On AI Engineering คือ คลังโปรเจกต์แอป AI ที่ทำงานได้จริง ~59 ตัว
เราจะไม่ได้เรียน "วิธีสั่ง agent" แต่จะเรียน "สถาปัตยกรรมของการสร้างแอป AI" —
โดยเปิดของจริงมาผ่าทีละตัว แล้วถอด pattern ที่เอาไปใช้กับงาน NestJS/Go ของคุณได้
repo นี้คืออะไรกันแน่
README ของโปรเจกต์นิยามตัวเองไว้ว่า:
"A curated collection of practical, production-ready AI projects across multiple modalities, including language models, multimodal models, OCR systems, RAG pipelines, and AI agents. Each project is designed to help you learn, experiment, and build real-world AI applications."
แปลไทย: มันคือ คอลเลกชันโปรเจกต์ AI ที่คัดมาแล้ว ครอบคลุมหลาย
modality
(ข้อความ, ภาพ, เสียง, เอกสาร) แต่ละโปรเจกต์อยู่ในโฟลเดอร์ของตัวเอง มีโค้ดครบ +
README.md + .env.example (บอกว่าต้องใช้ API key อะไรบ้าง) +
ไฟล์รันได้จริง จุดสำคัญคือมันไม่ใช่ "ทฤษฎี" แต่เป็น ของที่รันเห็นผลได้
— เหมาะมากกับการเรียนแบบ "อ่านของจริงแล้วถอดแบบ"
วางแทร็กนี้ตรงไหนในหลักสูตร: HO เป็น ภาคสนาม ของเส้นทางหลัก — สิ่งที่คุณเรียนเป็นทฤษฎีใน Lv4 (RAG) และ Lv5 (Agents) จะมาเห็นเป็นของจริงที่นี่ ถ้ายังไม่แม่น concept พื้นฐาน แนะนำเรียน Lv4–Lv5 ควบคู่กันไป
ต่างจาก SP / MP ยังไง
| SP / MP (2 แทร็กก่อน) | HO (แทร็กนี้) | |
|---|---|---|
| เป็นอะไร | ชุด skill ในโฟลเดอร์ .claude | คลังแอป AI ที่รันได้จริง |
| สอนอะไร | วิธีทำงานกับ coding agent | สถาปัตยกรรมของแอป AI |
| คำถามหลัก | "จะให้ agent ทำงานเป็นระบบยังไง" | "แอป AI ตัวนี้ต่อกันยังไง แล้วฉันทำเองบ้างได้ไหม" |
| ภาษา/สแตก | ภาษาอะไรก็ได้ (เป็น prompt/skill) | Python + หลาย provider → เราถอดเป็น pattern |
6 หมวดในคลัง (รวม 59 โปรเจกต์)
| หมวด | ทำอะไร | ตัวอย่างในคลัง |
|---|---|---|
| 🤖 AI Agents (34) | agent ทำงานอัตโนมัติ — single & multi-agent | Multi-Agent Coding Assistant, Self-Reflective Agentic RAG, GitHub Intelligence Agent |
| 📚 RAG (11) | ตอบจากคลังความรู้ ไม่เดา (ground answer) | GraphRAG, Hybrid RAG, HyDE, Vision RAG, Reasoning RAG |
| 🎬 Multimodal (6) | รวมภาพ/วิดีโอ + ข้อความ | GLM-OCR Pro, Video Understanding Agent, Multimodal RAG |
| 📸 OCR (4) | ดึงโครงสร้าง/ความหมายจากเอกสาร-ภาพ | Receipt Tracker, Image-to-Structured-Data, Prescription Digitizer |
| 🎧 Audio (3) | ฟัง/แปล/พูด | Multilingual Audio Translator, Voice Support Agent |
| 🎛️ Fine-tuning (1) | เทรนโมเดลเฉพาะงาน | Text-to-SQL Inventory (Qwen fine-tuned) |
tech stack ที่เจอบ่อย — "แว่นจำแนก" ให้ไม่ตาลาย
พอเปิดหลายโปรเจกต์คุณจะเจอชื่อ library แปลก ๆ เต็มไปหมด อย่าเพิ่งตกใจ — จริง ๆ มันเข้ากลุ่มได้แค่ไม่กี่กลุ่ม ถ้าจำ "หน้าที่ของกลุ่ม" ได้ เห็นตัวไหนก็จะรู้ทันทีว่า มันทำหน้าที่อะไรในสถาปัตยกรรม (ตารางนี้ได้จากการสแกน README ย่อยทั้ง repo จริง):
| กลุ่ม (หน้าที่) | ชื่อที่เจอบ่อย | เทียบกับโลก TS/Go ของคุณ |
|---|---|---|
| 🎛️ UI สาธิต | Streamlit, Gradio | เหมือน frontend เร็ว ๆ ไว้เดโม (ในงานจริงคุณต่อ NestJS + React แทน) |
| 🧠 Agent orchestration | LangChain, LangGraph, Agno, CrewAI, AG2, smolagents | เฟรมเวิร์กจัด "วงจร agent" — แนวคิดเดียวกับ state machine / job pipeline |
| 🗂️ Vector store | ChromaDB, Qdrant, FAISS | ที่เก็บ embedding — งานคุณใช้ pgvector บน PostgreSQL ได้เลย |
| 📐 Structured output | Instructor | บังคับ LLM ตอบเป็น JSON ตาม schema — เหมือน DTO + validation (Zod/class-validator) |
| 💾 Memory | mem0 | จำบทสนทนาข้ามรอบ — เทียบได้กับเก็บ state ลง Mongo/Redis |
| 🎧 Audio | Whisper (STT), Kokoro (TTS) | โมเดลเสียง — มองเป็น "service แปลงเสียง↔ข้อความ" ที่คุณเรียกผ่าน API |
เคล็ดลับ: คุณ ไม่ต้องจำชื่อทุกตัว — จำแค่ว่ามีกี่กลุ่มและแต่ละกลุ่มทำอะไร เวลาเจอชื่อใหม่ ให้ถามว่า "มันอยู่กลุ่มไหน" แล้ว pattern ที่เหลือจะเข้าใจง่ายทันที
แว่นหลักของทั้งแทร็ก: "pattern พกพาข้ามภาษา"
โปรเจกต์ต้นทางเป็น Python และใช้หลาย provider (OpenAI, Gemini, Mistral, Qwen ฯลฯ) แต่คุณถนัด TypeScript/NestJS และ Go เพราะฉะนั้นทุกบทในแทร็กนี้จะ ไม่ให้คุณจมกับ Python แต่จะสอนให้มองทะลุโค้ดไปเห็น pattern ที่อยู่เบื้องหลัง — ซึ่งพกพาข้ามภาษาได้ทั้งหมด
ยกตัวอย่าง pattern เดียวกัน มองด้วยแว่นนี้:
# ในโปรเจกต์ Python จะเห็นประมาณนี้ (Instructor + pydantic)
class Receipt(BaseModel):
merchant: str
total: float
items: list[Item]
result = client.chat.completions.create(response_model=Receipt, ...)
// pattern เดียวกันในโลกคุณ (NestJS + Zod) — "บังคับ LLM ตอบตาม schema"
const Receipt = z.object({
merchant: z.string(),
total: z.number(),
items: z.array(ItemSchema),
});
// → ส่ง schema ไปกับ tool/JSON mode แล้ว validate ผลลัพธ์กลับ
เห็นไหมว่า "structured output" เป็น pattern เดียวกันเป๊ะ — แค่เครื่องมือต่างกัน ทั้งแทร็กจะทำงานแบบนี้: เจอโค้ด Python → ถามว่า "pattern คืออะไร" → เขียนเป็นของคุณ
วิธีเดินอ่านโปรเจกต์ 1 ตัว (ใช้ได้กับทุกโปรเจกต์ในคลัง)
ทักษะที่สำคัญที่สุดของแทร็กนี้คือ "เปิดโปรเจกต์แปลกหน้าแล้วเข้าใจใน 10 นาที"
ใช้ 5 ขั้นนี้ได้กับทุกตัว (ลองกับ ai_agents/agentic_rag_system/ เป็นตัวอย่าง):
- อ่าน README ก่อน — โฟกัสหัวข้อ "Overview / Why" ให้ตอบได้ว่า มันแก้ปัญหาอะไร ก่อนแตะโค้ด
- เปิด
.env.example— บอกทันทีว่าใช้ provider/บริการอะไร (OpenAI? Gemini? มี vector DB ไหม?) นี่คือ "รายการวัตถุดิบ" - หา entrypoint — ไฟล์
main.py/app.pyคือประตูหน้า ดูว่ามันเรียกอะไรเป็นลำดับ - ไล่ data flow — ลากเส้นจาก input ของผู้ใช้ → ผ่าน step อะไรบ้าง → ออกมาเป็น output (นี่คือหัวใจของสถาปัตยกรรม)
- ถอด pattern — สรุปเป็นประโยคเดียวว่า "โครงหลักคือ X" แล้วถามว่า "ในงาน NestJS/Go ฉันทำแบบนี้ยังไง"
ลองกับ agentic_rag_system: README บอกมันคือ RAG ที่ "เกรดคำตอบตัวเองก่อนตอบ" →
.env ใช้ Google/Gemini → entrypoint คือ main.py เรียก graph ใน rag_graph.py →
flow คือ retrieve → grade → (rewrite ถ้าไม่ผ่าน) → generate วนได้ 3 รอบ →
pattern ที่ถอดได้: "self-reflection loop — ตรวจคุณภาพ context ก่อน generate"
(เราจะเจาะตัวนี้เต็ม ๆ ใน HO-1)
แผนที่แทร็ก HO ทั้ง 7 บท
| บท | เรียนอะไร |
|---|---|
| HO-0 (บทนี้) | ภาพรวม 6 หมวด · tech stack · แว่น pattern · วิธีอ่านโปรเจกต์ |
| HO-1 | AI Agents — agent loop, single vs multi-agent, orchestration |
| HO-2 | RAG 11 แบบ — ไล่สเปกตรัม naive → agentic → GraphRAG → HyDE → vision |
| HO-3 | Multimodal + OCR — vision-language + structured extraction |
| HO-4 | Audio — pipeline STT → LLM → TTS |
| HO-5 | Fine-tuning — เมื่อไหร่ควร fine-tune เทียบกับ RAG/prompt |
| HO-6 🎯 | นำไปใช้จริง — ประกอบ pattern ใหม่ย่อ ๆ บน NestJS ครบ end-to-end |
ทำไมสำคัญกับงาน NestJS/Go ของคุณ
- เห็นภาพ "แอป AI จริงต่อกันยังไง": ไม่ใช่แค่เรียก LLM 1 ครั้ง แต่มี retrieval, tool, memory, loop — เหมือนออกแบบ service ที่มีหลาย component
- ได้คลัง pattern พร้อมใช้: self-reflection loop, router agent, structured extraction, STT→LLM→TTS — เอาไปแปะในโปรเจกต์คุณได้ทันที
- ฝึกอ่านโค้ดแปลกหน้าเร็วขึ้น: ทักษะ "เปิด repo ไม่รู้จักแล้วเข้าใจใน 10 นาที" ใช้ได้กับทุกงาน ไม่ใช่แค่ AI
ข้อควรระวัง: โปรเจกต์ในคลังนี้เป็น เดโม/prototype เพื่อการเรียนรู้ (แม้ README จะเขียนว่า "production-ready") — ส่วนใหญ่ยังขาด auth, rate limit, error handling ที่ครบ, การจัดการ cost/observability เวลาเอา pattern ไปใช้จริงบน NestJS/Go อย่าลืมเติมของพวกนี้ (เราจะพูดถึงเรื่อง production เต็ม ๆ ใน Lv7)
-
เปิด
sources/Hands-On-AI-Engineering/README.mdแล้วนับด้วยตัวเองว่า หมวด AI Agents มีกี่โปรเจกต์ ตรงกับที่บทนี้บอก (34) ไหม -
เลือกโปรเจกต์ที่คุณสนใจมา 1 ตัว (แนะนำในหมวด Agents หรือ RAG) แล้วใช้
5 ขั้นการอ่าน เปิด README +
.env.exampleของมัน แล้วตอบให้ได้ว่า "มันแก้ปัญหาอะไร" และ "ใช้ provider ไหน" - จากโปรเจกต์ที่เลือก ลองถอด pattern เป็นประโยคเดียว แล้วเขียนต่อว่า "ในงาน NestJS/Go ของฉัน จะทำแบบนี้ยังไง 1 บรรทัด"
เมื่อทำเสร็จ พิมพ์ /quiz HO-0 เพื่อทดสอบความเข้าใจ