▶SUBTHAIแปลไทย · ซับ · พากย์⚙
บทความแปลภาษาไทย · YouTube

Stop Paying Claude for This. Use Jev Instead

0:000:00
เล่นเสียงต้นฉบับของวิดีโอ พร้อมแสดงซับไทยซิงก์ตามเวลา
กำลังโหลดวิดีโอ…
01

สรุปย่อ

ประเด็นสำคัญจากวิดีโอ

- **ช่อง:** Leon van Zyl · **ความยาว:** ~16 นาที · **ลิงก์:** https://www.youtube.com/watch?v=iyIAdmeKeMM

# สรุป: Stop Paying Claude for This. Use Jev Instead

- **ช่อง:** Leon van Zyl · **ความยาว:** ~16 นาที · **ลิงก์:** https://www.youtube.com/watch?v=iyIAdmeKeMM

## ประเด็นหลัก

- Jev จาก typesafe.ai ถูก overhype ว่าเป็น "Claude Killer" แต่จริง ๆ เขียนประโยคเต็มยังไม่ได้ — เป็น System 1 model (ตัดสินเร็ว ถูก) ไม่ใช่ System 2 (มี reasoning) อย่าง Claude/OpenAI
- Jev เก่ง 3 ประเภทคำถาม: Choice (เลือกจากตัวเลือก), Score (ให้คะแนนบนมาตรวัด), Null (ใช่/ไม่ใช่พร้อม confidence) — ตอบเป็นโครงสร้าง deterministic ที่การันตีเสมอ เหมาะ map กับ n8n/โค้ด
- ข้อจำกัด: ไม่มี reasoning แย่วิทย์/คณิต และ context window จิ๋วแค่ ~32,000 tokens
- ความคุ้มค่าคือต้นทุน: จำแนก 1 ล้านครั้ง Jev ~$21 เทียบ Sonnet 5 ~$1,500 และ Fable 5.1 ~$7,500
- confidence score (0-1) กลับมาทุกครั้ง — เขียน logic ได้เช่น ต่ำกว่า 0.75 ให้ส่งคนตรวจแทน
- สาธิตจริง: สร้าง issue ใหม่ใน GitHub → GitHub Action เรียก Jev → ติดป้าย enhancement/bug/documentation + เลือก agent (Fable งาน coding ขั้นสูง, Astra งาน 3D/spatial reasoning, Haiku เอกสาร) → โพสต์คอมเมนต์ input/response/confidence
- ผลจริง: issue "add a new emotion: scared" ถูกจำแนก enhancement (confidence 1.0) เลือก Astra (confidence 0.62 เพราะ description คลุมเครือ) ใช้ไม่ถึง 800 tokens
- เข้าถึงได้เลย: typesafe.ai (มี waitlist ช่วงอัด) หรือข้ามคิวผ่าน OpenRouter; สมัครใหม่มี free credits $5
- ติดตั้ง TypeSafe agent skill (ทางการ) ให้ Claude Code รู้จักวิธีเรียก Jev API
- ต่อยอด: label "ready" → "factory running" เพื่อให้ software factory หยิบ issue ไปทำจนเปิด pull request — workflow คล้าย diagram ของ Vercel เอง
- สปอนเซอร์ Decodo: web scraping API + MCP server, rotating IPs, JS rendering, ฟรี 2,000 credits/ปี โค้ด LEONVANZYL ลด 10%

## ความเห็นสรุป

คลิปนี้ให้มุมที่สมดุลระหว่าง hype กับความเป็นจริงของ Jev — ชื่อเรื่องจะโหดไปว่า "หยุดจ่ายเงิน Claude" แต่เนื้อในอธิบายครบว่า Jev เก่งเฉพาะงานจำแนกด่วนที่ไม่ต้องใช้ reasoning และถูกกว่ากันมหาศาลในการใช้งานจริง ส่วน demo ละเอียดดี ทำตามได้จริงตั้งแต่สร้าง API key จนต่อ software factory เป็นแนวทางที่นำไปใช้กับ repo หรือ workflow อื่นได้กว้าง

02

คำแปลเต็ม

แปลตามบทสนทนาต้นฉบับ ปรับเป็นภาษาไทยธรรมชาติ

Jev จาก typesafe.ai เป็นโมเดลที่วิเศษมาก แต่ตอนนี้มันกำลังถูกโห่ฮือเกินจริง (overhyped) ผมเห็นวิดีโอเยอะแยะเรียกมันว่า Claude Killer ซึ่งมันไม่ใช่ — มันแม้แต่เขียนประโยคเต็ม ๆ ยังไม่ได้เลย แต่มีหนึ่งงานที่มันทำได้ดีกว่าและเร็วกว่า LLM ทุกตัว และในวิดีโอนี้ผมจะโชว์วิธีใช้มันในโปรเจกต์จริง ไม่ใช่แค่ demo มาดูกันว่าเราจะสร้างอะไรในวิดีโอนี้ และคุณเอาทุกอย่างที่เรียนจากตรงนี้ไปใช้กับ Jev ได้อีกเพียบ กับ use case ที่หลากหลายมาก ๆ นี่คือ GitHub repo หนึ่งของผม มันคือเว็บแอปพลิเคชันที่มีโมเดล 3D ของ Claude อยู่ เรามีฉากคฤหาสน์ผีสิงอยู่เบื้องหลัง แต่ยังไม่มีสีหน้าที่สื่อว่า Claude กำลังกลัว เราจะสร้าง issue ใหม่ตัวนี้กัน และภายในวินาทีเดียว คุณจะเห็นป้ายกำกับเปลี่ยน เราได้ป้าย Agent, Codex และ Enhancement สิ่งที่เกิดขึ้นคือ ตอนเราสร้าง issue นี้ เนื้อหาทั้งหมด ทั้ง title และ description ถูกส่งไปให้ Jev แล้วเราให้ Jev ทำสองอย่าง อย่างแรก เราให้ Jev กำหนดหมวดหมู่ issue หนึ่ง ๆ จะเป็นได้ไม่กี่แบบ: enhancement (การปรับปรุง/ฟีเจอร์ใหม่), documentation (เอกสาร) หรือ bug (ข้อผิดพลาด) และ Jev ระบุถูกต้องว่า issue นี้เป็น enhancement หมายความว่าเป็นฟีเจอร์ใหม่ GitHub repo นี้ต่อเข้ากับ software factory (โรงงานซอฟต์แวร์อัตโนมัติ) อยู่ และใน backend ผมมีเอเจนต์หลายตัวใน fleet ประกอบด้วยเอเจนต์ Codex และเอเจนต์ Claude Code ขึ้นอยู่กับประเภทงานของ change นี้ เราควรส่งให้เอเจนต์ที่ถูกต้อง และสำหรับงาน 3D หรืองานที่เกี่ยวกับ spatial reasoning (การให้เหตุผลเชิงพื้นที่/มิติสัมพันธ์) ผมชอบใช้ Codex กับ GPT-6 Astra นั่นคือเหตุผลที่ Jev ระบุว่า Codex คือ coding agent ที่ถูกต้อง ที่มีประโยชน์อีกอย่างคือ เรามีคอมเมนต์นี้ ที่แสดงสิ่งที่ได้รับกลับมาจาก Jev แบบเป๊ะ ๆ สำหรับหมวดหมู่ Jev มั่นใจ 100% ว่านี่คือฟีเจอร์ใหม่ และสำหรับการส่งต่อเอเจนต์ มันมั่นใจ 100% ว่า change นี้ควรส่งให้ Codex เราเห็นข้อมูลที่เป็นประโยชน์อื่น ๆ ด้วย เช่น context ทั้งหมดที่เราส่งให้ Jev และคำตอบของ Jev ในวิดีโอนี้ผมจะสอนวิธีตั้งค่าทั้งหมดนี้ และนี่จะสอนคุณวิธีใช้ Jev กับโปรเจกต์ได้หลายรูปแบบ คุณไม่จำเป็นต้องใช้มันใน GitHub repo เท่านั้น จะเอาไปใช้กับเกมหรืออะไรก็ได้ตามต้องการ และคุณคงเห็นใน intro แล้วว่า TypeSafe มี waiting list อยู่ตอนนี้ แต่ผมจะโชว์วิธีเข้าถึง Jev ได้เลยตอนนี้ โดยไม่ต้องเข้าคิวรอ แต่ก่อนอื่น — Jev มันคืออะไรกันแน่? ผมเห็นคนเยอะมากเทียบมันกับ frontier model (โมเดลแนวหน้า) อย่าง Claude และ OpenAI แต่ความจริงห่างไกลกันคนละฟากฟ้าเลย Jev เป็น System 1 model (โมเดลระบบคิดเร็ว) ขณะที่ Claude หรือ OpenAI เป็น System 2 model (โมเดลคิดเชิงเหตุผล) คุณอาจสงสัยว่าต่างกันยังไง? System 1 model นั้นง่ายมาก ๆ ถูกสร้างมาเพื่อตัดสินใจเร็วจริง ๆ และตอบกลับคุณให้ถูกที่สุดและเร็วที่สุดเท่าที่จะทำได้ ทำให้โมเดลอย่าง Jev เหมาะกับงาน classification (การจำแนกประเภท) ที่สุด ขณะที่ System 2 model อย่าง frontier model มี reasoning (การให้เหตุผล) และความฉลาดมากกว่ามาก ความต่างนี้สำคัญมาก เพราะ Jev เร็วสุดขีดแบบนี้ มันจึงทำงานซับซ้อนไม่ได้ มันไม่มี reasoning และแย่มากกับงานวิทยาศาสตร์และคณิตศาสตร์ แถมมี context window (หน้าต่างบริบท) จิ๋วแค่ราว 32,000 tokens Jev ไม่ใช่ chatbot ด้วย คุณไม่สามารถคุยกับมันเหมือน Claude หรือ OpenAI ได้ มันเก่งแค่ 3 ประเภทงานเท่านั้น: Choice, Score หรือ Null สำหรับทั้งสามแบบ เราส่ง context บางอย่างเกี่ยวกับปัญหา หรือสิ่งที่เราอยากให้มันทำ แล้วเราจะให้ชุดตัวเลือกให้มันเลือก ตัวอย่างเช่น เราให้ context เกี่ยวกับปัญหาหนึ่ง แล้วมันต้องส่งต่อไปยัง billing (การเงิน/วางบิล) technical หรือ sales หรือเหมือนใน GitHub repo ของเรา มันควรจำแนก issue ว่าเป็นฟีเจอร์ใหม่, bug หรือการแก้ไขเอกสาร เรายังใช้ Jev ให้คะแนนอะไรบางอย่างได้ เช่น ให้รีวิวลูกค้าหนึ่งฉบับ แล้วถามว่ารีวิวนี้สงบ, หงุดหงิด หรือโกรธจัด แล้วก็มี Null ซึ่งเป็นการตัดสินใจแบบ Boolean แทบ ๆ อย่าง "ประโยคนี้จริงไหม" แล้วมันจะตอบใช่หรือไม่ใช่ พร้อม confidence score (คะแนนความมั่นใจ) เล็ก ๆ หนึ่งตัว อย่างที่เห็น ไม่มีแบบไหนคืนประโยคเต็ม ๆ เลย มันคือการจำแนกอย่างรวดเร็วจังหวะเดียว ขอเจาะลึกเทคนิคหน่อยนะ นี่คือหน้าตา request และ response จริงของ Jev ใน request เราระบุโมเดลได้ เช่น jev-latest ใส่ context อะไรบางอย่าง เช่นสถานะปัจจุบันคือ "ช่วยด้วย การจ่ายเงินของฉันล้มเหลวมา 3 วันแล้ว" นี่คือคอมเมนต์แบบทั่วไปจาก user แล้วเราถามคำถามได้ เช่นแบบ null: "เรื่องนี้เร่งด่วนไหม" แบบ type null พร้อม instruction (คำสั่งประกอบ): "สิ่งนี้สื่อความเร่งด่วนหรือเปล่า?" ส่วนนี้จะบอกให้ Jev ตอบเป็นใช่หรือไม่ใช่ หรือเราจะให้ Jev เลือกแผนกที่ issue นี้ควรส่งต่อ ซึ่งใช้ type choice กับ instruction: "ทีมไหนควรจัดการเรื่องนี้?" เราแค่ให้ตัวเลือกไม่กี่ตัวให้มันเลือก และแน่นอน ใช้แบบ scoring ตั้งระดับความหงุดหงิดได้ด้วย ส่วน response จาก Jev จะหน้าตาประมาณนี้ และโครงสร้างนี้เป็น deterministic (กำหนดตายตัว) หมายความว่าคุณจะได้โครงสร้างนี้กลับมาเสมอเวลาใช้ Jev ดังนั้นถ้าโค้ดของคุณอ้างอิง object นี้ หรือ map ไปมากับอะไรอย่าง n8n คุณการันตีได้เลยว่าจะได้โครงสร้างเดิมกลับมาเสมอ จุดเจ๋งอีกอย่างของ output structure คือ คุณได้ confidence score กลับมาจาก Jev ด้วย เป็นคะแนน 0 ถึง 1 โดย 1 หมายถึง 100% คุณจึงใส่ logic ในแอปพลิเคชันได้ว่า ถ้า confidence score ต่ำกว่า 0.75 ก็ส่งต่อให้คนตรวจทานแทน ตอนนี้ เราต้องตัดสินใจว่าจะใช้ Jev หรือ Claude ทำงานจำแนก คำตอบขึ้นกับต้นทุนล้วน ๆ ฟังดูนะ ถ้าการตัดสินใจของคุณต้องพึ่งคณิตศาสตร์ที่แม่นยำ วิทยาศาสตร์ที่แม่นยำ หรือต้องใช้ reasoning คุณอาจไม่มีทางเลือกนอกจากใช้ Claude แต่ถ้าแค่ทำงานจำแนกอย่างเร็ว ๆ Jev เกินพอ ผมกำลังคำนวณให้ดูว่าการจำแนก 1 ล้านครั้ง สำหรับงานแบบ GitHub repo จะคุ้มแค่ไหน ถ้าต้องจำแนก 1 ล้านครั้ง Jev คุ้มแค่ $21 ขณะที่โมเดลถูกอย่าง Sonnet 5 จะคุ้มราว $1,500 และผมยังไม่อยากพูดถึง Fable 5.1 เลยที่ $7,500 ดังนั้นสำหรับงานจำแนกด่วน ๆ อย่างใน GitHub repo หรือคุณกำลังสร้าง workflow หรือส่งต่อ issue ระหว่างแผนกต่าง ๆ Jev คือคำตอบที่ชัดเจนที่สุด พูดพอแล้ว แล้วใช้ Jev จริง ๆ ยังไง? แต่ก่อนอื่น ขอพูดถึงสปอนเซอร์วันนี้แป๊บนึง — Decodo เวลาคุณให้ AI agent ไปดึงข้อมูลจากเว็บไซต์หนึ่ง มีโอกาสสูงมากที่มันจะกลับมามือเปล่า เว็บไซต์จริง ๆ ไม่ยอมยื่นข้อมูลให้อะไรที่ไม่ใช่ browser จริง และ AI agent อย่าง Claude ก็ไม่ใช่ browser จริง หรืออย่างในตัวอย่างนี้ ข้อมูลนี้ถูกจำกัดตามภูมิภาค (geo-restricted) ถ้า agent ต้อง request จากเยอรมนี เว็บนี้จะไม่คืนข้อมูลที่มีประโยชน์เลย Decodo มี web scraping API ที่มี MCP server อยู่หน้ามัน หมายความว่าคุณดรอปมันใส่อะไรก็ได้ที่คุย MCP Decodo ให้ rotating IPs (IP หมุนเวียน), JavaScript rendering และการ retry อัตโนมัติ คุณยื่นเว็บไซต์ให้มัน ระบุ geo-location ก็ได้ด้วย agent ของคุณจะใช้ MCP server ของเขา แล้วได้รับ markdown สะอาด ๆ หรือ JSON โครงสร้างแล้วเรียบร้อยกลับไป แพ็กเกจฟรีของ web scraping API ให้ 2,000 credits ใช้ได้เต็มปี และไม่ต้องใช้บัตรเครดิต ผมแปะลิงก์ไว้ในคำอธิบายของวิดีโอ และถ้าใช้โค้ด LEONVANZYL จะได้ส่วนลด 10% สำหรับแพ็กเกจจ่ายเงินแรก ขอบคุณ Decodo ที่สนับสนุนวิดีโอนี้ เอาละ กลับเข้าเรื่องกัน เพื่อเข้าถึง Jev คุณเข้าไปที่ typesafe.ai แล้วเข้าสู่ระบบ ตอนที่อัดวิดีโอนี้ ต้องเข้า waitlist อยู่ พวกเขาเคยเปิดให้ใช้โดยไม่ต้องคิวสักพัก แต่ดูเหมือนจะกลับมามีคิวอีกแล้ว วิธีข้าม waitlist คือเข้าไปสมัครที่ OpenRouter OpenRouter ให้คุณเข้าถึง Jev เวอร์ชันล่าสุดได้ สำหรับบทเรียนนี้ ผมจะใช้ TypeSafe เอง แต่ถ้าคุณอยากทำตามแบบ OpenRouter เวลาผมพูดถึง TypeSafe หรือ TypeSafe API กับ coding agent คุณแค่พูดถึง Jev ในฐานะ OpenRouter API แทน จาก dashboard ของ typesafe.ai มีไม่กี่อย่างที่เราต้องระวังไว้ เมื่อเข้าไปที่ Playground เราจะเห็นวิธีทำงานของ Jev ชัด ๆ และอย่างที่ผมบอกไปก่อนหน้า คุณมีสามตัวเลือกหลัก: Null, Score หรือ Choice มาคลิกดูตัวอย่างหนึ่งตัว ดูสิ นั่นแหละคือโครงสร้างที่คุณเห็นก่อนหน้านี้ และเรายังรวมหลายคำถามเข้าด้วยกันได้ด้วย ไม่จำเป็นต้องเป็น null อย่างเดียว จะผสม scoring หรือ choice ก็ได้ รวมทั้งหมดเป็น request เดียวได้เลย เราจะสลับค่าพวกนี้เป็นค่าจริง เช่น สถานะปัจจุบันเป็นอะไร แล้วรัน ก็ได้ response กลับมา เราจะเห็นเค้าโครงว่าคำตอบจะหน้าตาเป็นยังไง และพอสลับไป JSON view จะได้โครงสร้างเชิงเทคนิคที่การันตีว่าจะได้กลับมาทุกครั้ง ที่ส่ง request นี้ โครงสร้างนี้ถูกการันตี เพื่อใช้ Jev เราต้องสร้าง API key ไปที่ API keys แล้วสร้าง key ใหม่ ผมตั้งชื่อว่า tutorial ก็ได้ และตอนนี้เรามี API key แล้ว ก็อป key นี้ไปเก็บไว้ที่ปลอดภัย กรุณาใช้ key ของคุณเองนะครับ ผมจะลบ key นี้ทิ้งหลังอัดเสร็จ เนื่องจากนี่เป็นบริการเสียเงิน เราต้องเติม credits ในบัญชี ตอนผมสมัคร ได้รับ free credits $5 เลยสมมติว่าทุกคนได้เหมือนกัน และผมยังไม่ได้ใช้สักเท่าไหร่เลย เพราะ request พวกนี้ถูกมาก สิ่งที่ต้องมีตอนนี้คือ GitHub repo ที่จะต่อ Jev เข้าไป คุณใช้โค้ดของผมก็ได้ หรือใช้ repo เดิมของคุณก็ได้ หรือจะ push dummy repo ใหม่ขึ้น GitHub ก็ยังได้ อะไรก็ได้ไม่ว่ากัน แค่ไปที่ code แล้วก็อปคำสั่งตรงนี้ แล้วเปิด coding agent ของคุณขึ้นมา ผมจะใช้ Claude Code ตั้งเป็น Opus 5.5 และ reasoning effort สูง "โปรด clone repo นี้ไปที่ root ของโปรเจกต์" แล้วผมก็วาง GitHub URL ลงไป โอเค ตอนนี้ก็อปไฟล์ทั้งหมดมาแล้ว มาสร้าง GitHub repo ใหม่กัน ผมสั่งว่า "สร้าง private GitHub repo ใหม่ให้โปรเจกต์นี้" เยี่ยม โปรเจกต์ขึ้น GitHub แล้ว สิ่งที่เราอยากทำตอนนี้คือ เวลาสร้าง issue ใหม่ เราอยากได้ความสามารถในการติดป้ายกำกับเฉพาะเจาะจงมาก ๆ ตรงนี้สนุกที่สุดแล้ว และขึ้นอยู่กับคุณทั้งหมด จะทำซับซ้อนแค่ไหนก็ได้ตามใจ สำหรับ demo นี้ผมจะทำแบบเรียบง่ายที่สุด เรามี default labels อยู่แล้วชุดหนึ่ง อย่าง bug, documentation และ enhancement เรายังให้ agent เพิ่ม custom labels ได้อีกด้วย เช่นสั่งว่า "โปรดเพิ่ม labels เหล่านี้ใน GitHub repo: หนึ่ง Claude running Fable สอง Codex running Astra และอาจเพิ่ม Claude running Haiku สำหรับงานง่าย ๆ " พอ refresh repo แล้วเข้าไปที่ labels เราจะเห็น labels ใหม่อยู่ตรงนี้ โอเค สิ่งที่เราอยากให้ Jev ทำตอนสร้าง issue ใหม่คือ จำแนก issue ว่าเป็น bug, documentation หรือ enhancement และมันควรตัดสินด้วยว่าจะส่งงานนี้ให้ agent ตัวไหน จริง ๆ ถ้าผมทำให้คุณงงว่าเรากำลังทำอะไรอยู่ ผมเจอไดอะแกรมเท่ ๆ นี้ในหน้าเว็บของ Vercel มันอธิบาย workflow ที่เรากำลังสร้างพอดี นี่คือ software factory ที่ Vercel ใช้จริง ๆ และคล้ายกับที่เรากำลังสร้างมาก เริ่มจากคนสร้าง issue แล้วมีขั้น identify type ที่เรียก LLM มาจำแนกว่า issue เป็น bug, ฟีเจอร์ หรือเอกสาร ในขั้นนี้เรายังทำอย่างอื่นเพิ่มได้อีก เช่น เลือกว่าจะใช้ agent ประเภทไหนใน agent swarm ของเรา และเหตุผลที่เราติดป้ายกำกับเหล่านี้คือ เมื่อ software factory หยิบ issue นั้นมาประมวลผลจริง มันจะส่ง issue ไปตาม flow ที่ถูกต้อง มันจะดู labels แล้วคิดว่า "อ๋อ ถ้าเป็น bug ก็อยากให้ agent ทำซ้ำ error นั้น แก้ แล้วเทสต์ แล้วสร้าง pull request หรือถ้าเป็นฟีเจอร์ใหม่ ก็วิเคราะห์ฟีเจอร์ ดูว่าเข้ากับวิสัยทัศน์ของแอปไหม implement ฟีเจอร์ รีวิว แล้วค่อย merge ส่วนการแก้เอกสารนั้นง่ายมาก เราใช้โมเดลถูก ๆ อย่าง Haiku แก้เอกสารแล้ว merge ได้เลย เพราะเป็น issue ความเสี่ยงต่ำ อีกสิ่งที่ผมชอบทำคือติดตั้ง TypeSafe agent skill นี่คือ skill ทางการจาก TypeSafe AI มันจะสอน agent วิธีใช้ Jev และ API ของเขา ผมจะแปะลิงก์ GitHub repo ไว้ใน community ฟรีด้วย แค่ก็อป URL นี้ แล้วกลับไปที่ agent ของเรา "โปรดติดตั้ง skill นี้ในโฟลเดอร์โปรเจกต์" เยี่ยม skill นี้จะสอน agent ของเราวิธีใช้ Jev จริง ๆ ดังนั้นเดาได้เลยว่าตอนนี้เราต้องพูดอะไร: "เมื่อไหร่ก็ตามที่เราเพิ่ม issue ใหม่ใน GitHub repo ต้องเรียก Jev ผ่าน GitHub Action ให้ทำดังนี้: หนึ่ง ติดป้าย issue ว่าเป็น enhancement, bug หรือการแก้ไขเอกสาร สอง กำหนดป้าย agent เช่น Claude Fable, Codex Astra หรือ Claude Haiku สำหรับเอเจนต์: งาน coding ขั้นสูงควรส่งให้ Fable อะไรที่ต้องใช้ spatial reasoning ให้ใช้ Astra อย่างงาน 3D animation ในรุ่นนี้ และ Haiku ใช้สำหรับการแก้เอกสารทั้งหมด เพิ่มคอมเมนต์แสดง input และ response ของ Jev พร้อม confidence score ของแต่ละหมวดหมู่" แล้วเราส่ง TypeSafe API key ให้มัน เท่านี้ก็จบ ผมส่งข้อความนี้ไปเลย โอเค ผมกำลังให้ Claude push การเปลี่ยนแปลงทั้งหมดขึ้น GitHub มาลองเล่นดู ไปสร้าง issue ใหม่กัน ผมพิมพ์ว่า "add a new emotion: scared" สร้างเลย และแล้ว เราได้ response กลับมาจาก Jev แล้ว มันจำแนกว่าเป็น enhancement และสำหรับ agent จะใช้ Codex Astra เรายังเห็นคอมเมนต์ใหม่ด้วย ถูกติดป้ายเป็น enhancement ด้วย confidence score 1 หมายถึง 100% สำหรับ agent เลือก Astra ด้วย confidence 0.62 คงเพราะ description คลุมเครือนิดหน่อย เราจัดการยังไงก็ได้ตามใจชอบ แต่ไม่ว่า Astra หรือ Fable ก็ทำ change นี้ได้ดีทั้งคู่ ตรงนี้เราเห็น input ที่ส่งให้ Jev และเห็น response ของ Jev ด้วย ลองดู tokens ด้วย งานนี้เผาแค่ไม่ถึง 800 tokens ซึ่งเท่ากับไม่มีอะไรเลย ตอนนี้ ถ้าอยากต่อยอดอีก คุณต่อ repo นี้เข้ากับ software factory จริงได้ ขอโชว์ใน repo อื่นให้ดู นี่คือ repo ของเกม RTS (วางแผนเรียลไทม์) และผมสร้าง issue นี้ไว้แค่พูดว่า "ปรับปรุงความหลากหลายของภาพ" change นี้ถูกส่งให้ Claude และจำแนกเป็น enhancement และผมตั้ง label ที่เรียกว่า ready label ready นี้เพิ่งเปลี่ยนเป็น factory running หมายความว่า agent หนึ่งตัวใน agent swarm ของผม กำลังทำงานกับ change นี้อยู่อย่างแข็งขัน และพอ agent นี้เสร็จ มันจะสร้าง pull request ที่ผมรีวิวแล้ว merge กลับเข้าโปรเจกต์ได้ ถ้าอยากเรียนรู้วิธีสร้าง software factory ผมแปะลิงก์ไว้ในคำอธิบายของวิดีโอนี้ ถ้าอยากรู้วิธีใช้ coding agents ให้มีประสิทธิภาพ และสร้างของเท่ ๆ อย่าง software factory อาจลองเข้าร่วม Skool community ของผม ชื่อ Agentic Labs คุณจะได้เข้าถึง Agentic Coding Masterclass ของผม เป็นชั่วโมงวิดีโอสอนใช้ coding agents อย่างมีประสิทธิภาพ และสร้างโปรเจกต์จริง ๆ เรามี live coffee session ที่คุณถามอะไรก็ได้ และมี deep dive session รายสัปดาห์ อันที่จริง พฤหัสนี้เราจะ deep dive เรื่อง Jev พอดี คุณไม่ควรพลาด session นั้นเลยนะ ผมจะแปะลิงก์ Agentic Labs ไว้ในคำอธิบายของวิดีโอนี้ ขอบคุณมากที่รับชม แล้วเจอกันคลิปหน้าครับ บาย บาย

03

หมายเหตุการแปล

ความโปร่งใสเกี่ยวกับความไม่แน่นอนในต้นฉบับ

  • ไม่มีสัญลักษณ์ [ฟังไม่ชัด] ในคำแปล — ไม่มีช่วงใดฟังไม่รู้เรื่องจนต้องทำเครื่องหมาย
04

อภิธานศัพท์เทคนิค

คำศัพท์และชื่อผลิตภัณฑ์ที่คงรูปภาษาอังกฤษ

ศัพท์คำแปล / คำอธิบาย
Jevjudgment model จาก Typesafe (typesafe.ai) — โมเดล AI ที่ตอบคำถามเป็นความน่าจะเป็น/หมวด/คะแนน ไม่เขียนข้อความ
Typesafe / TypeSafe AIบริษัทผู้สร้าง Jev
System 1 / System 2 modelSystem 1 = ตัดสินเร็วด้วยสัญชาณญาณ (Jev), System 2 = คิดเชิงเหตุผล (Claude/OpenAI) — จากแนวคิด Thinking Fast and Slow
Overhypedถูกโห่ฮือ/คำนูนเกินจริง
Claude Killerฉายาที่คลิปอื่นตั้งให้ Jev — ผู้สร้างปฏิเสธว่าไม่จริง
Classificationการจำแนกประเภทของ input เช่น แยก issue เป็น bug/ฟีเจอร์/เอกสาร
Choiceคำถามเลือกหมวด — ตอบความน่าจะเป็นของทุกตัวเลือก ใช้เมื่อต้อง route
Scoreคำถามคะแนนบนมาตรวัดที่มีลำดับ เช่น ระดับความหงุดหงิดของรีวิว
Nullคำถามแบบใช่/ไม่ใช่ — ตอบพร้อม confidence score
Confidence scoreคะแนนความมั่นใจ 0-1 — ต่ำกว่าเกณฑ์ (เช่น 0.75) ควรส่งคนตรวจ
Deterministicกำหนดตายตัว — โครงสร้าง response เหมือนเดิมทุกครั้ง การันตีได้
Context windowหน้าต่างบริบทที่โมเดลอ่านได้ — Jev มีแค่ ~32,000 tokens
Instructionคำสั่งประกอบใน request ของ Jev บอกวัตถุประสงค์ของคำถาม
Frontier modelโมเดลแนวหน้าอย่าง Claude/OpenAI ที่มี reasoning สูง
Spatial reasoningการให้เหตุผลเชิงพื้นที่/มิติสัมพันธ์ — งาน 3D ควรใช้ Astra
GitHub Actionระบบอัตโนมัติของ GitHub ที่ทำงานเมื่อเกิด event เช่น สร้าง issue
Issue / labelใบงาน/ป้ายกำกับใน GitHub repo
Enhancement / Bug / Documentationหมวด issue: ฟีเจอร์ใหม่ / ข้อผิดพลาด / เอกสาร
Software factoryโรงงานซอฟต์แวร์อัตโนมัติ — รับ issue ไปดำเนินการจนเปิด pull request
Agent swarm / fleetชุดเอเจนต์หลายตัวที่พร้อมรับงานต่างกัน
Agent routingการจำแนกงานแล้วส่งให้เอเจนต์/ทีมที่เหมาะสม
Codex / Claude Codecoding agent สองตระกูลที่ใช้ใน fleet ของผู้สร้าง
GPT-6 Astraโมเดลที่ pair กับ Codex สำหรับงาน 3D/spatial
Fable / Haiku / Sonnetโมเดลระดับสูง/เบา/กลาง — Fable งานยาก, Haiku งานเอกสารง่าย ๆ
OpenRouterบริการรวม API หลายโมเดล — ทางเข้า Jev โดยไม่ต้องรอ waitlist
Waitlistคิวรอเข้าใช้บริการ
MCP serverModel Context Protocol — มาตรฐานต่อเครื่องมือเข้ากับ AI agent
n8nเครื่องมือสร้าง workflow automation
Decodoสปอนเซอร์คลิป — web scraping API พร้อม MCP, rotating IPs, JS rendering
Rotating IPsIP หมุนเวียนสำหรับ scraping ไม่โดนบล็อก
Geo-restrictedจำกัดเข้าถึงตามภูมิภาค
TypeSafe agent skillskill ทางการสอน coding agent วิธีใช้ Jev และ API ของ Typesafe
Pull request (PR)คำขอ merge การแก้ไขโค้ดเข้าโปรเจกต์
RTS gameเกมวางแผนเรียลไทม์ (real-time strategy)
Agentic LabsSkool community ของ Leon van Zyl เรื่อง agentic coding
05

ซับไตเติ้ลภาษาไทย

ดาวน์โหลดหรือดูซับทั้งหมด

1
00:00:00,000 --> 00:00:03,181
Jev จาก typesafe.ai เป็นโมเดลที่วิเศษมาก

2
00:00:03,181 --> 00:00:06,839
แต่ตอนนี้มันกำลังถูกโห่ฮือเกินจริง (overhyped)

3
00:00:06,839 --> 00:00:10,338
ผมเห็นวิดีโอเยอะแยะเรียกมันว่า Claude Killer

4
00:00:10,338 --> 00:00:13,678
ซึ่งมันไม่ใช่ — มันแม้แต่เขียนประโยคเต็ม ๆ
thai-subtitles.srt
SubRip — ใช้กับเครื่องเล่นวิดีโอส่วนใหญ่
↓ ดาวน์โหลด
thai-subtitles.vtt
WebVTT — ใช้กับเว็บ / YouTube
↓ ดาวน์โหลด
เปิดดูซับไตเติ้ลทั้งหมด (318 segments)
1
00:00:00,000 --> 00:00:03,181
Jev จาก typesafe.ai เป็นโมเดลที่วิเศษมาก

2
00:00:03,181 --> 00:00:06,839
แต่ตอนนี้มันกำลังถูกโห่ฮือเกินจริง (overhyped)

3
00:00:06,839 --> 00:00:10,338
ผมเห็นวิดีโอเยอะแยะเรียกมันว่า Claude Killer

4
00:00:10,338 --> 00:00:13,678
ซึ่งมันไม่ใช่ — มันแม้แต่เขียนประโยคเต็ม ๆ

5
00:00:13,678 --> 00:00:14,773
ยังไม่ได้เลย

6
00:00:14,773 --> 00:00:18,351
แต่มีหนึ่งงานที่มันทำได้ดีกว่าและเร็วกว่า LLM

7
00:00:18,351 --> 00:00:19,446
ทุกตัว

8
00:00:19,446 --> 00:00:23,104
และในวิดีโอนี้ผมจะโชว์วิธีใช้มันในโปรเจกต์จริง

9
00:00:23,104 --> 00:00:24,218
ไม่ใช่แค่ demo

10
00:00:24,218 --> 00:00:27,001
มาดูกันว่าเราจะสร้างอะไรในวิดีโอนี้

11
00:00:27,001 --> 00:00:30,659
และคุณเอาทุกอย่างที่เรียนจากตรงนี้ไปใช้กับ Jev

12
00:00:30,659 --> 00:00:33,919
ได้อีกเพียบ กับ use case ที่หลากหลายมาก ๆ

13
00:00:33,919 --> 00:00:36,225
นี่คือ GitHub repo หนึ่งของผม

14
00:00:36,225 --> 00:00:39,804
มันคือเว็บแอปพลิเคชันที่มีโมเดล 3D ของ Claude

15
00:00:39,804 --> 00:00:42,905
อยู่ เรามีฉากคฤหาสน์ผีสิงอยู่เบื้องหลัง

16
00:00:42,905 --> 00:00:46,404
แต่ยังไม่มีสีหน้าที่สื่อว่า Claude กำลังกลัว

17
00:00:46,404 --> 00:00:48,790
เราจะสร้าง issue ใหม่ตัวนี้กัน

18
00:00:48,790 --> 00:00:52,368
และภายในวินาทีเดียว คุณจะเห็นป้ายกำกับเปลี่ยน

19
00:00:52,368 --> 00:00:55,470
เราได้ป้าย Agent, Codex และ Enhancement

20
00:00:55,470 --> 00:00:58,651
สิ่งที่เกิดขึ้นคือ ตอนเราสร้าง issue นี้

21
00:00:58,651 --> 00:01:01,911
เนื้อหาทั้งหมด ทั้ง title และ description

22
00:01:01,911 --> 00:01:05,171
ถูกส่งไปให้ Jev แล้วเราให้ Jev ทำสองอย่าง

23
00:01:05,171 --> 00:01:08,750
อย่างแรก เราให้ Jev กำหนดหมวดหมู่ issue หนึ่ง

24
00:01:08,750 --> 00:01:09,845
ๆ

25
00:01:09,845 --> 00:01:14,457
จะเป็นได้ไม่กี่แบบ: enhancement (การปรับปรุง/ฟีเจอร์ใหม่),

26
00:01:14,457 --> 00:01:17,956
documentation (เอกสาร) หรือ bug (ข้อผิดพลาด)

27
00:01:17,956 --> 00:01:20,819
และ Jev ระบุถูกต้องว่า issue นี้เป็น

28
00:01:20,819 --> 00:01:24,397
enhancement หมายความว่าเป็นฟีเจอร์ใหม่ GitHub

29
00:01:24,397 --> 00:01:27,181
repo นี้ต่อเข้ากับ software factory

30
00:01:27,181 --> 00:01:30,759
(โรงงานซอฟต์แวร์อัตโนมัติ) อยู่ และใน backend

31
00:01:30,759 --> 00:01:34,258
ผมมีเอเจนต์หลายตัวใน fleet ประกอบด้วยเอเจนต์

32
00:01:34,258 --> 00:01:36,485
Codex และเอเจนต์ Claude Code

33
00:01:36,485 --> 00:01:39,188
ขึ้นอยู่กับประเภทงานของ change นี้

34
00:01:39,188 --> 00:01:42,767
เราควรส่งให้เอเจนต์ที่ถูกต้อง และสำหรับงาน 3D

35
00:01:42,767 --> 00:01:45,709
หรืองานที่เกี่ยวกับ spatial reasoning

36
00:01:45,709 --> 00:01:48,731
(การให้เหตุผลเชิงพื้นที่/มิติสัมพันธ์)

37
00:01:48,731 --> 00:01:51,117
ผมชอบใช้ Codex กับ GPT-6 Astra

38
00:01:51,117 --> 00:01:54,695
นั่นคือเหตุผลที่ Jev ระบุว่า Codex คือ coding

39
00:01:54,695 --> 00:01:57,955
agent ที่ถูกต้อง ที่มีประโยชน์อีกอย่างคือ

40
00:01:57,955 --> 00:02:01,613
เรามีคอมเมนต์นี้ ที่แสดงสิ่งที่ได้รับกลับมาจาก

41
00:02:01,613 --> 00:02:05,112
Jev แบบเป๊ะ ๆ สำหรับหมวดหมู่ Jev มั่นใจ 100%

42
00:02:05,112 --> 00:02:08,770
ว่านี่คือฟีเจอร์ใหม่ และสำหรับการส่งต่อเอเจนต์

43
00:02:08,770 --> 00:02:12,269
มันมั่นใจ 100% ว่า change นี้ควรส่งให้ Codex

44
00:02:12,269 --> 00:02:15,768
เราเห็นข้อมูลที่เป็นประโยชน์อื่น ๆ ด้วย เช่น

45
00:02:15,768 --> 00:02:19,188
context ทั้งหมดที่เราส่งให้ Jev และคำตอบของ

46
00:02:19,188 --> 00:02:22,607
Jev ในวิดีโอนี้ผมจะสอนวิธีตั้งค่าทั้งหมดนี้

47
00:02:22,607 --> 00:02:24,595
และนี่จะสอนคุณวิธีใช้ Jev

48
00:02:24,595 --> 00:02:26,504
กับโปรเจกต์ได้หลายรูปแบบ

49
00:02:26,504 --> 00:02:30,082
คุณไม่จำเป็นต้องใช้มันใน GitHub repo เท่านั้น

50
00:02:30,082 --> 00:02:33,184
จะเอาไปใช้กับเกมหรืออะไรก็ได้ตามต้องการ

51
00:02:33,184 --> 00:02:36,364
และคุณคงเห็นใน intro แล้วว่า TypeSafe มี

52
00:02:36,364 --> 00:02:40,022
waiting list อยู่ตอนนี้ แต่ผมจะโชว์วิธีเข้าถึง

53
00:02:40,022 --> 00:02:42,885
Jev ได้เลยตอนนี้ โดยไม่ต้องเข้าคิวรอ

54
00:02:42,885 --> 00:02:45,669
แต่ก่อนอื่น — Jev มันคืออะไรกันแน่?

55
00:02:45,669 --> 00:02:48,929
ผมเห็นคนเยอะมากเทียบมันกับ frontier model

56
00:02:48,929 --> 00:02:51,951
(โมเดลแนวหน้า) อย่าง Claude และ OpenAI

57
00:02:51,951 --> 00:02:55,370
แต่ความจริงห่างไกลกันคนละฟากฟ้าเลย Jev เป็น

58
00:02:55,370 --> 00:02:58,551
System 1 model (โมเดลระบบคิดเร็ว) ขณะที่

59
00:02:58,551 --> 00:03:01,573
Claude หรือ OpenAI เป็น System 2 model

60
00:03:01,573 --> 00:03:03,163
(โมเดลคิดเชิงเหตุผล)

61
00:03:03,163 --> 00:03:05,310
คุณอาจสงสัยว่าต่างกันยังไง?

62
00:03:05,310 --> 00:03:07,537
System 1 model นั้นง่ายมาก ๆ

63
00:03:07,537 --> 00:03:10,161
ถูกสร้างมาเพื่อตัดสินใจเร็วจริง ๆ

64
00:03:10,161 --> 00:03:14,296
และตอบกลับคุณให้ถูกที่สุดและเร็วที่สุดเท่าที่จะทำได้

65
00:03:14,296 --> 00:03:17,954
ทำให้โมเดลอย่าง Jev เหมาะกับงาน classification

66
00:03:17,954 --> 00:03:21,533
(การจำแนกประเภท) ที่สุด ขณะที่ System 2 model

67
00:03:21,533 --> 00:03:24,157
อย่าง frontier model มี reasoning

68
00:03:24,157 --> 00:03:27,020
(การให้เหตุผล) และความฉลาดมากกว่ามาก

69
00:03:27,020 --> 00:03:30,678
ความต่างนี้สำคัญมาก เพราะ Jev เร็วสุดขีดแบบนี้

70
00:03:30,678 --> 00:03:34,097
มันจึงทำงานซับซ้อนไม่ได้ มันไม่มี reasoning

71
00:03:34,097 --> 00:03:37,676
และแย่มากกับงานวิทยาศาสตร์และคณิตศาสตร์ แถมมี

72
00:03:37,676 --> 00:03:40,936
context window (หน้าต่างบริบท) จิ๋วแค่ราว

73
00:03:40,936 --> 00:03:43,878
32,000 tokens Jev ไม่ใช่ chatbot ด้วย

74
00:03:43,878 --> 00:03:47,536
คุณไม่สามารถคุยกับมันเหมือน Claude หรือ OpenAI

75
00:03:47,536 --> 00:03:50,956
ได้ มันเก่งแค่ 3 ประเภทงานเท่านั้น: Choice,

76
00:03:50,956 --> 00:03:54,057
Score หรือ Null สำหรับทั้งสามแบบ เราส่ง

77
00:03:54,057 --> 00:03:56,443
context บางอย่างเกี่ยวกับปัญหา

78
00:03:56,443 --> 00:03:58,510
หรือสิ่งที่เราอยากให้มันทำ

79
00:03:58,510 --> 00:04:01,214
แล้วเราจะให้ชุดตัวเลือกให้มันเลือก

80
00:04:01,214 --> 00:04:03,361
ตัวอย่างเช่น เราให้ context

81
00:04:03,361 --> 00:04:06,701
เกี่ยวกับปัญหาหนึ่ง แล้วมันต้องส่งต่อไปยัง

82
00:04:06,701 --> 00:04:10,280
billing (การเงิน/วางบิล) technical หรือ sales

83
00:04:10,280 --> 00:04:13,699
หรือเหมือนใน GitHub repo ของเรา มันควรจำแนก

84
00:04:13,699 --> 00:04:16,005
issue ว่าเป็นฟีเจอร์ใหม่, bug

85
00:04:16,005 --> 00:04:18,550
หรือการแก้ไขเอกสาร เรายังใช้ Jev

86
00:04:18,550 --> 00:04:20,777
ให้คะแนนอะไรบางอย่างได้ เช่น

87
00:04:20,777 --> 00:04:24,435
ให้รีวิวลูกค้าหนึ่งฉบับ แล้วถามว่ารีวิวนี้สงบ,

88
00:04:24,435 --> 00:04:30,081
หงุดหงิด หรือโกรธจัด แล้วก็มี Null ซึ่งเป็นการตัดสินใจแบบ Boolean แทบ ๆ

89
00:04:30,081 --> 00:04:31,989
อย่าง "ประโยคนี้จริงไหม"

90
00:04:31,989 --> 00:04:35,329
แล้วมันจะตอบใช่หรือไม่ใช่ พร้อม confidence

91
00:04:35,329 --> 00:04:37,715
score (คะแนนความมั่นใจ) เล็ก ๆ

92
00:04:37,715 --> 00:04:41,532
หนึ่งตัว อย่างที่เห็น ไม่มีแบบไหนคืนประโยคเต็ม ๆ

93
00:04:41,532 --> 00:04:44,792
เลย มันคือการจำแนกอย่างรวดเร็วจังหวะเดียว

94
00:04:44,792 --> 00:04:48,212
ขอเจาะลึกเทคนิคหน่อยนะ นี่คือหน้าตา request

95
00:04:48,212 --> 00:04:50,995
และ response จริงของ Jev ใน request

96
00:04:50,995 --> 00:04:54,414
เราระบุโมเดลได้ เช่น jev-latest ใส่ context

97
00:04:54,414 --> 00:04:57,834
อะไรบางอย่าง เช่นสถานะปัจจุบันคือ "ช่วยด้วย

98
00:04:57,834 --> 00:05:00,776
การจ่ายเงินของฉันล้มเหลวมา 3 วันแล้ว"

99
00:05:00,776 --> 00:05:03,241
นี่คือคอมเมนต์แบบทั่วไปจาก user

100
00:05:03,241 --> 00:05:05,786
แล้วเราถามคำถามได้ เช่นแบบ null:

101
00:05:05,786 --> 00:05:09,126
"เรื่องนี้เร่งด่วนไหม" แบบ type null พร้อม

102
00:05:09,126 --> 00:05:11,273
instruction (คำสั่งประกอบ):

103
00:05:11,273 --> 00:05:14,056
"สิ่งนี้สื่อความเร่งด่วนหรือเปล่า?"

104
00:05:14,056 --> 00:05:17,237
ส่วนนี้จะบอกให้ Jev ตอบเป็นใช่หรือไม่ใช่

105
00:05:17,237 --> 00:05:20,020
หรือเราจะให้ Jev เลือกแผนกที่ issue

106
00:05:20,020 --> 00:05:22,883
นี้ควรส่งต่อ ซึ่งใช้ type choice กับ

107
00:05:22,883 --> 00:05:26,064
instruction: "ทีมไหนควรจัดการเรื่องนี้?"

108
00:05:26,064 --> 00:05:29,006
เราแค่ให้ตัวเลือกไม่กี่ตัวให้มันเลือก

109
00:05:29,006 --> 00:05:30,915
และแน่นอน ใช้แบบ scoring

110
00:05:30,915 --> 00:05:34,573
ตั้งระดับความหงุดหงิดได้ด้วย ส่วน response จาก

111
00:05:34,573 --> 00:05:37,833
Jev จะหน้าตาประมาณนี้ และโครงสร้างนี้เป็น

112
00:05:37,833 --> 00:05:39,980
deterministic (กำหนดตายตัว)

113
00:05:39,980 --> 00:05:43,797
หมายความว่าคุณจะได้โครงสร้างนี้กลับมาเสมอเวลาใช้

114
00:05:43,797 --> 00:05:47,137
Jev ดังนั้นถ้าโค้ดของคุณอ้างอิง object นี้

115
00:05:47,137 --> 00:05:49,443
หรือ map ไปมากับอะไรอย่าง n8n

116
00:05:49,443 --> 00:05:53,181
คุณการันตีได้เลยว่าจะได้โครงสร้างเดิมกลับมาเสมอ

117
00:05:53,181 --> 00:05:56,839
จุดเจ๋งอีกอย่างของ output structure คือ คุณได้

118
00:05:56,839 --> 00:06:00,417
confidence score กลับมาจาก Jev ด้วย เป็นคะแนน

119
00:06:00,417 --> 00:06:03,757
0 ถึง 1 โดย 1 หมายถึง 100% คุณจึงใส่ logic

120
00:06:03,757 --> 00:06:06,938
ในแอปพลิเคชันได้ว่า ถ้า confidence score

121
00:06:06,938 --> 00:06:10,358
ต่ำกว่า 0.75 ก็ส่งต่อให้คนตรวจทานแทน ตอนนี้

122
00:06:10,358 --> 00:06:13,459
เราต้องตัดสินใจว่าจะใช้ Jev หรือ Claude

123
00:06:13,459 --> 00:06:16,878
ทำงานจำแนก คำตอบขึ้นกับต้นทุนล้วน ๆ ฟังดูนะ

124
00:06:16,878 --> 00:06:20,616
ถ้าการตัดสินใจของคุณต้องพึ่งคณิตศาสตร์ที่แม่นยำ

125
00:06:20,616 --> 00:06:23,956
วิทยาศาสตร์ที่แม่นยำ หรือต้องใช้ reasoning

126
00:06:23,956 --> 00:06:26,739
คุณอาจไม่มีทางเลือกนอกจากใช้ Claude

127
00:06:26,739 --> 00:06:29,999
แต่ถ้าแค่ทำงานจำแนกอย่างเร็ว ๆ Jev เกินพอ

128
00:06:29,999 --> 00:06:33,180
ผมกำลังคำนวณให้ดูว่าการจำแนก 1 ล้านครั้ง

129
00:06:33,180 --> 00:06:36,123
สำหรับงานแบบ GitHub repo จะคุ้มแค่ไหน

130
00:06:36,123 --> 00:06:39,303
ถ้าต้องจำแนก 1 ล้านครั้ง Jev คุ้มแค่ $21

131
00:06:39,303 --> 00:06:42,882
ขณะที่โมเดลถูกอย่าง Sonnet 5 จะคุ้มราว $1,500

132
00:06:42,882 --> 00:06:46,460
และผมยังไม่อยากพูดถึง Fable 5.1 เลยที่ $7,500

133
00:06:46,460 --> 00:06:48,607
ดังนั้นสำหรับงานจำแนกด่วน ๆ

134
00:06:48,607 --> 00:06:55,049
อย่างใน GitHub repo หรือคุณกำลังสร้าง workflow หรือส่งต่อ issue ระหว่างแผนกต่าง ๆ

135
00:06:55,049 --> 00:06:59,502
Jev คือคำตอบที่ชัดเจนที่สุด พูดพอแล้ว แล้วใช้ Jev จริง ๆ

136
00:06:59,502 --> 00:07:00,933
ยังไง? แต่ก่อนอื่น

137
00:07:00,933 --> 00:07:04,035
ขอพูดถึงสปอนเซอร์วันนี้แป๊บนึง — Decodo

138
00:07:04,035 --> 00:07:05,546
เวลาคุณให้ AI agent

139
00:07:05,546 --> 00:07:07,693
ไปดึงข้อมูลจากเว็บไซต์หนึ่ง

140
00:07:07,693 --> 00:07:10,476
มีโอกาสสูงมากที่มันจะกลับมามือเปล่า

141
00:07:10,476 --> 00:07:11,589
เว็บไซต์จริง ๆ

142
00:07:11,589 --> 00:07:15,168
ไม่ยอมยื่นข้อมูลให้อะไรที่ไม่ใช่ browser จริง

143
00:07:15,168 --> 00:07:18,508
และ AI agent อย่าง Claude ก็ไม่ใช่ browser

144
00:07:18,508 --> 00:07:20,655
จริง หรืออย่างในตัวอย่างนี้

145
00:07:20,655 --> 00:07:24,154
ข้อมูลนี้ถูกจำกัดตามภูมิภาค (geo-restricted)

146
00:07:24,154 --> 00:07:26,778
ถ้า agent ต้อง request จากเยอรมนี

147
00:07:26,778 --> 00:07:30,277
เว็บนี้จะไม่คืนข้อมูลที่มีประโยชน์เลย Decodo

148
00:07:30,277 --> 00:07:33,140
มี web scraping API ที่มี MCP server

149
00:07:33,140 --> 00:07:34,235
อยู่หน้ามัน

150
00:07:34,235 --> 00:07:37,654
หมายความว่าคุณดรอปมันใส่อะไรก็ได้ที่คุย MCP

151
00:07:37,654 --> 00:07:40,755
Decodo ให้ rotating IPs (IP หมุนเวียน),

152
00:07:40,755 --> 00:07:44,175
JavaScript rendering และการ retry อัตโนมัติ

153
00:07:44,175 --> 00:07:47,276
คุณยื่นเว็บไซต์ให้มัน ระบุ geo-location

154
00:07:47,276 --> 00:07:50,855
ก็ได้ด้วย agent ของคุณจะใช้ MCP server ของเขา

155
00:07:50,855 --> 00:07:53,797
แล้วได้รับ markdown สะอาด ๆ หรือ JSON

156
00:07:53,797 --> 00:07:57,455
โครงสร้างแล้วเรียบร้อยกลับไป แพ็กเกจฟรีของ web

157
00:07:57,455 --> 00:08:00,875
scraping API ให้ 2,000 credits ใช้ได้เต็มปี

158
00:08:00,875 --> 00:08:02,704
และไม่ต้องใช้บัตรเครดิต

159
00:08:02,704 --> 00:08:06,362
ผมแปะลิงก์ไว้ในคำอธิบายของวิดีโอ และถ้าใช้โค้ด

160
00:08:06,362 --> 00:08:08,429
LEONVANZYL จะได้ส่วนลด 10%

161
00:08:08,429 --> 00:08:11,451
สำหรับแพ็กเกจจ่ายเงินแรก ขอบคุณ Decodo

162
00:08:11,451 --> 00:08:14,950
ที่สนับสนุนวิดีโอนี้ เอาละ กลับเข้าเรื่องกัน

163
00:08:14,950 --> 00:08:18,210
เพื่อเข้าถึง Jev คุณเข้าไปที่ typesafe.ai

164
00:08:18,210 --> 00:08:21,630
แล้วเข้าสู่ระบบ ตอนที่อัดวิดีโอนี้ ต้องเข้า

165
00:08:21,630 --> 00:08:22,725
waitlist อยู่

166
00:08:22,725 --> 00:08:25,747
พวกเขาเคยเปิดให้ใช้โดยไม่ต้องคิวสักพัก

167
00:08:25,747 --> 00:08:28,927
แต่ดูเหมือนจะกลับมามีคิวอีกแล้ว วิธีข้าม

168
00:08:28,927 --> 00:08:31,870
waitlist คือเข้าไปสมัครที่ OpenRouter

169
00:08:31,870 --> 00:08:35,528
OpenRouter ให้คุณเข้าถึง Jev เวอร์ชันล่าสุดได้

170
00:08:35,528 --> 00:08:38,470
สำหรับบทเรียนนี้ ผมจะใช้ TypeSafe เอง

171
00:08:38,470 --> 00:08:42,049
แต่ถ้าคุณอยากทำตามแบบ OpenRouter เวลาผมพูดถึง

172
00:08:42,049 --> 00:08:45,468
TypeSafe หรือ TypeSafe API กับ coding agent

173
00:08:45,468 --> 00:08:49,126
คุณแค่พูดถึง Jev ในฐานะ OpenRouter API แทน จาก

174
00:08:49,126 --> 00:08:51,114
dashboard ของ typesafe.ai

175
00:08:51,114 --> 00:08:54,772
มีไม่กี่อย่างที่เราต้องระวังไว้ เมื่อเข้าไปที่

176
00:08:54,772 --> 00:08:58,112
Playground เราจะเห็นวิธีทำงานของ Jev ชัด ๆ

177
00:08:58,112 --> 00:09:02,406
และอย่างที่ผมบอกไปก่อนหน้า คุณมีสามตัวเลือกหลัก: Null,

178
00:09:02,406 --> 00:09:05,746
Score หรือ Choice มาคลิกดูตัวอย่างหนึ่งตัว

179
00:09:05,746 --> 00:09:09,404
ดูสิ นั่นแหละคือโครงสร้างที่คุณเห็นก่อนหน้านี้

180
00:09:09,404 --> 00:09:12,505
และเรายังรวมหลายคำถามเข้าด้วยกันได้ด้วย

181
00:09:12,505 --> 00:09:15,607
ไม่จำเป็นต้องเป็น null อย่างเดียว จะผสม

182
00:09:15,607 --> 00:09:18,788
scoring หรือ choice ก็ได้ รวมทั้งหมดเป็น

183
00:09:18,788 --> 00:09:20,298
request เดียวได้เลย

184
00:09:20,298 --> 00:09:23,002
เราจะสลับค่าพวกนี้เป็นค่าจริง เช่น

185
00:09:23,002 --> 00:09:26,501
สถานะปัจจุบันเป็นอะไร แล้วรัน ก็ได้ response

186
00:09:26,501 --> 00:09:27,596
กลับมา

187
00:09:27,596 --> 00:09:30,936
เราจะเห็นเค้าโครงว่าคำตอบจะหน้าตาเป็นยังไง

188
00:09:30,936 --> 00:09:32,606
และพอสลับไป JSON view

189
00:09:32,606 --> 00:09:37,059
จะได้โครงสร้างเชิงเทคนิคที่การันตีว่าจะได้กลับมาทุกครั้ง

190
00:09:37,059 --> 00:09:40,320
ที่ส่ง request นี้ โครงสร้างนี้ถูกการันตี

191
00:09:40,320 --> 00:09:43,739
เพื่อใช้ Jev เราต้องสร้าง API key ไปที่ API

192
00:09:43,739 --> 00:09:47,397
keys แล้วสร้าง key ใหม่ ผมตั้งชื่อว่า tutorial

193
00:09:47,397 --> 00:09:50,737
ก็ได้ และตอนนี้เรามี API key แล้ว ก็อป key

194
00:09:50,737 --> 00:09:53,520
นี้ไปเก็บไว้ที่ปลอดภัย กรุณาใช้ key

195
00:09:53,520 --> 00:09:57,178
ของคุณเองนะครับ ผมจะลบ key นี้ทิ้งหลังอัดเสร็จ

196
00:09:57,178 --> 00:10:00,518
เนื่องจากนี่เป็นบริการเสียเงิน เราต้องเติม

197
00:10:00,518 --> 00:10:04,176
credits ในบัญชี ตอนผมสมัคร ได้รับ free credits

198
00:10:04,176 --> 00:10:06,641
$5 เลยสมมติว่าทุกคนได้เหมือนกัน

199
00:10:06,641 --> 00:10:10,220
และผมยังไม่ได้ใช้สักเท่าไหร่เลย เพราะ request

200
00:10:10,220 --> 00:10:13,560
พวกนี้ถูกมาก สิ่งที่ต้องมีตอนนี้คือ GitHub

201
00:10:13,560 --> 00:10:17,138
repo ที่จะต่อ Jev เข้าไป คุณใช้โค้ดของผมก็ได้

202
00:10:17,138 --> 00:10:20,796
หรือใช้ repo เดิมของคุณก็ได้ หรือจะ push dummy

203
00:10:20,796 --> 00:10:23,102
repo ใหม่ขึ้น GitHub ก็ยังได้

204
00:10:23,102 --> 00:10:25,647
อะไรก็ได้ไม่ว่ากัน แค่ไปที่ code

205
00:10:25,647 --> 00:10:28,987
แล้วก็อปคำสั่งตรงนี้ แล้วเปิด coding agent

206
00:10:28,987 --> 00:10:32,645
ของคุณขึ้นมา ผมจะใช้ Claude Code ตั้งเป็น Opus

207
00:10:32,645 --> 00:10:36,223
5.5 และ reasoning effort สูง "โปรด clone repo

208
00:10:36,223 --> 00:10:39,802
นี้ไปที่ root ของโปรเจกต์" แล้วผมก็วาง GitHub

209
00:10:39,802 --> 00:10:43,062
URL ลงไป โอเค ตอนนี้ก็อปไฟล์ทั้งหมดมาแล้ว

210
00:10:43,062 --> 00:10:46,561
มาสร้าง GitHub repo ใหม่กัน ผมสั่งว่า "สร้าง

211
00:10:46,561 --> 00:10:50,219
private GitHub repo ใหม่ให้โปรเจกต์นี้" เยี่ยม

212
00:10:50,219 --> 00:10:52,128
โปรเจกต์ขึ้น GitHub แล้ว

213
00:10:52,128 --> 00:10:55,786
สิ่งที่เราอยากทำตอนนี้คือ เวลาสร้าง issue ใหม่

214
00:10:55,786 --> 00:10:59,841
เราอยากได้ความสามารถในการติดป้ายกำกับเฉพาะเจาะจงมาก

215
00:10:59,841 --> 00:11:01,591
ๆ ตรงนี้สนุกที่สุดแล้ว

216
00:11:01,591 --> 00:11:03,499
และขึ้นอยู่กับคุณทั้งหมด

217
00:11:03,499 --> 00:11:06,601
จะทำซับซ้อนแค่ไหนก็ได้ตามใจ สำหรับ demo

218
00:11:06,601 --> 00:11:09,861
นี้ผมจะทำแบบเรียบง่ายที่สุด เรามี default

219
00:11:09,861 --> 00:11:12,565
labels อยู่แล้วชุดหนึ่ง อย่าง bug,

220
00:11:12,565 --> 00:11:16,143
documentation และ enhancement เรายังให้ agent

221
00:11:16,143 --> 00:11:19,483
เพิ่ม custom labels ได้อีกด้วย เช่นสั่งว่า

222
00:11:19,483 --> 00:11:22,744
"โปรดเพิ่ม labels เหล่านี้ใน GitHub repo:

223
00:11:22,744 --> 00:11:26,243
หนึ่ง Claude running Fable สอง Codex running

224
00:11:26,243 --> 00:11:29,264
Astra และอาจเพิ่ม Claude running Haiku

225
00:11:29,264 --> 00:11:31,889
สำหรับงานง่าย ๆ " พอ refresh repo

226
00:11:31,889 --> 00:11:34,831
แล้วเข้าไปที่ labels เราจะเห็น labels

227
00:11:34,831 --> 00:11:38,091
ใหม่อยู่ตรงนี้ โอเค สิ่งที่เราอยากให้ Jev

228
00:11:38,091 --> 00:11:41,590
ทำตอนสร้าง issue ใหม่คือ จำแนก issue ว่าเป็น

229
00:11:41,590 --> 00:11:42,685
bug,

230
00:11:42,685 --> 00:11:49,604
documentation หรือ enhancement และมันควรตัดสินด้วยว่าจะส่งงานนี้ให้ agent ตัวไหน จริง ๆ

231
00:11:49,604 --> 00:11:53,977
ถ้าผมทำให้คุณงงว่าเรากำลังทำอะไรอยู่ ผมเจอไดอะแกรมเท่ ๆ

232
00:11:53,977 --> 00:11:57,317
นี้ในหน้าเว็บของ Vercel มันอธิบาย workflow

233
00:11:57,317 --> 00:12:00,816
ที่เรากำลังสร้างพอดี นี่คือ software factory

234
00:12:00,816 --> 00:12:02,407
ที่ Vercel ใช้จริง ๆ

235
00:12:02,407 --> 00:12:06,065
และคล้ายกับที่เรากำลังสร้างมาก เริ่มจากคนสร้าง

236
00:12:06,065 --> 00:12:09,484
issue แล้วมีขั้น identify type ที่เรียก LLM

237
00:12:09,484 --> 00:12:13,063
มาจำแนกว่า issue เป็น bug, ฟีเจอร์ หรือเอกสาร

238
00:12:13,063 --> 00:12:16,403
ในขั้นนี้เรายังทำอย่างอื่นเพิ่มได้อีก เช่น

239
00:12:16,403 --> 00:12:19,822
เลือกว่าจะใช้ agent ประเภทไหนใน agent swarm

240
00:12:19,822 --> 00:12:23,401
ของเรา และเหตุผลที่เราติดป้ายกำกับเหล่านี้คือ

241
00:12:23,401 --> 00:12:26,025
เมื่อ software factory หยิบ issue

242
00:12:26,025 --> 00:12:29,524
นั้นมาประมวลผลจริง มันจะส่ง issue ไปตาม flow

243
00:12:29,524 --> 00:12:32,784
ที่ถูกต้อง มันจะดู labels แล้วคิดว่า "อ๋อ

244
00:12:32,784 --> 00:12:36,283
ถ้าเป็น bug ก็อยากให้ agent ทำซ้ำ error นั้น

245
00:12:36,283 --> 00:12:39,146
แก้ แล้วเทสต์ แล้วสร้าง pull request

246
00:12:39,146 --> 00:12:42,406
หรือถ้าเป็นฟีเจอร์ใหม่ ก็วิเคราะห์ฟีเจอร์

247
00:12:42,406 --> 00:12:45,667
ดูว่าเข้ากับวิสัยทัศน์ของแอปไหม implement

248
00:12:45,667 --> 00:12:47,893
ฟีเจอร์ รีวิว แล้วค่อย merge

249
00:12:47,893 --> 00:12:51,392
ส่วนการแก้เอกสารนั้นง่ายมาก เราใช้โมเดลถูก ๆ

250
00:12:51,392 --> 00:12:54,414
อย่าง Haiku แก้เอกสารแล้ว merge ได้เลย

251
00:12:54,414 --> 00:12:56,720
เพราะเป็น issue ความเสี่ยงต่ำ

252
00:12:56,720 --> 00:13:00,060
อีกสิ่งที่ผมชอบทำคือติดตั้ง TypeSafe agent

253
00:13:00,060 --> 00:13:03,241
skill นี่คือ skill ทางการจาก TypeSafe AI

254
00:13:03,241 --> 00:13:06,501
มันจะสอน agent วิธีใช้ Jev และ API ของเขา

255
00:13:06,501 --> 00:13:09,682
ผมจะแปะลิงก์ GitHub repo ไว้ใน community

256
00:13:09,682 --> 00:13:13,102
ฟรีด้วย แค่ก็อป URL นี้ แล้วกลับไปที่ agent

257
00:13:13,102 --> 00:13:15,090
ของเรา "โปรดติดตั้ง skill

258
00:13:15,090 --> 00:13:18,589
นี้ในโฟลเดอร์โปรเจกต์" เยี่ยม skill นี้จะสอน

259
00:13:18,589 --> 00:13:20,974
agent ของเราวิธีใช้ Jev จริง ๆ

260
00:13:20,974 --> 00:13:24,155
ดังนั้นเดาได้เลยว่าตอนนี้เราต้องพูดอะไร:

261
00:13:24,155 --> 00:13:27,813
"เมื่อไหร่ก็ตามที่เราเพิ่ม issue ใหม่ใน GitHub

262
00:13:27,813 --> 00:13:30,755
repo ต้องเรียก Jev ผ่าน GitHub Action

263
00:13:30,755 --> 00:13:33,936
ให้ทำดังนี้: หนึ่ง ติดป้าย issue ว่าเป็น

264
00:13:33,936 --> 00:13:35,031
enhancement,

265
00:13:35,031 --> 00:13:39,882
bug หรือการแก้ไขเอกสาร สอง กำหนดป้าย agent เช่น Claude Fable,

266
00:13:39,882 --> 00:13:43,381
Codex Astra หรือ Claude Haiku สำหรับเอเจนต์:

267
00:13:43,381 --> 00:13:46,005
งาน coding ขั้นสูงควรส่งให้ Fable

268
00:13:46,005 --> 00:13:49,584
อะไรที่ต้องใช้ spatial reasoning ให้ใช้ Astra

269
00:13:49,584 --> 00:13:52,844
อย่างงาน 3D animation ในรุ่นนี้ และ Haiku

270
00:13:52,844 --> 00:13:56,502
ใช้สำหรับการแก้เอกสารทั้งหมด เพิ่มคอมเมนต์แสดง

271
00:13:56,502 --> 00:13:59,922
input และ response ของ Jev พร้อม confidence

272
00:13:59,922 --> 00:14:03,341
score ของแต่ละหมวดหมู่" แล้วเราส่ง TypeSafe

273
00:14:03,341 --> 00:14:05,409
API key ให้มัน เท่านี้ก็จบ

274
00:14:05,409 --> 00:14:08,828
ผมส่งข้อความนี้ไปเลย โอเค ผมกำลังให้ Claude

275
00:14:08,828 --> 00:14:11,770
push การเปลี่ยนแปลงทั้งหมดขึ้น GitHub

276
00:14:11,770 --> 00:14:15,269
มาลองเล่นดู ไปสร้าง issue ใหม่กัน ผมพิมพ์ว่า

277
00:14:15,269 --> 00:14:18,768
"add a new emotion: scared" สร้างเลย และแล้ว

278
00:14:18,768 --> 00:14:21,472
เราได้ response กลับมาจาก Jev แล้ว

279
00:14:21,472 --> 00:14:24,892
มันจำแนกว่าเป็น enhancement และสำหรับ agent

280
00:14:24,892 --> 00:14:28,390
จะใช้ Codex Astra เรายังเห็นคอมเมนต์ใหม่ด้วย

281
00:14:28,390 --> 00:14:31,730
ถูกติดป้ายเป็น enhancement ด้วย confidence

282
00:14:31,730 --> 00:14:35,309
score 1 หมายถึง 100% สำหรับ agent เลือก Astra

283
00:14:35,309 --> 00:14:38,490
ด้วย confidence 0.62 คงเพราะ description

284
00:14:38,490 --> 00:14:42,068
คลุมเครือนิดหน่อย เราจัดการยังไงก็ได้ตามใจชอบ

285
00:14:42,068 --> 00:14:45,090
แต่ไม่ว่า Astra หรือ Fable ก็ทำ change

286
00:14:45,090 --> 00:14:48,669
นี้ได้ดีทั้งคู่ ตรงนี้เราเห็น input ที่ส่งให้

287
00:14:48,669 --> 00:14:52,327
Jev และเห็น response ของ Jev ด้วย ลองดู tokens

288
00:14:52,327 --> 00:14:55,030
ด้วย งานนี้เผาแค่ไม่ถึง 800 tokens

289
00:14:55,030 --> 00:14:57,416
ซึ่งเท่ากับไม่มีอะไรเลย ตอนนี้

290
00:14:57,416 --> 00:15:00,517
ถ้าอยากต่อยอดอีก คุณต่อ repo นี้เข้ากับ

291
00:15:00,517 --> 00:15:03,539
software factory จริงได้ ขอโชว์ใน repo

292
00:15:03,539 --> 00:15:06,084
อื่นให้ดู นี่คือ repo ของเกม RTS

293
00:15:06,084 --> 00:15:08,788
(วางแผนเรียลไทม์) และผมสร้าง issue

294
00:15:08,788 --> 00:15:12,286
นี้ไว้แค่พูดว่า "ปรับปรุงความหลากหลายของภาพ"

295
00:15:12,286 --> 00:15:15,388
change นี้ถูกส่งให้ Claude และจำแนกเป็น

296
00:15:15,388 --> 00:15:18,966
enhancement และผมตั้ง label ที่เรียกว่า ready

297
00:15:18,966 --> 00:15:22,068
label ready นี้เพิ่งเปลี่ยนเป็น factory

298
00:15:22,068 --> 00:15:25,408
running หมายความว่า agent หนึ่งตัวใน agent

299
00:15:25,408 --> 00:15:27,952
swarm ของผม กำลังทำงานกับ change

300
00:15:27,952 --> 00:15:31,133
นี้อยู่อย่างแข็งขัน และพอ agent นี้เสร็จ

301
00:15:31,133 --> 00:15:34,632
มันจะสร้าง pull request ที่ผมรีวิวแล้ว merge

302
00:15:34,632 --> 00:15:38,131
กลับเข้าโปรเจกต์ได้ ถ้าอยากเรียนรู้วิธีสร้าง

303
00:15:38,131 --> 00:15:39,403
software factory

304
00:15:39,403 --> 00:15:42,187
ผมแปะลิงก์ไว้ในคำอธิบายของวิดีโอนี้

305
00:15:42,187 --> 00:15:44,652
ถ้าอยากรู้วิธีใช้ coding agents

306
00:15:44,652 --> 00:15:47,753
ให้มีประสิทธิภาพ และสร้างของเท่ ๆ อย่าง

307
00:15:47,753 --> 00:15:50,695
software factory อาจลองเข้าร่วม Skool

308
00:15:50,695 --> 00:15:53,320
community ของผม ชื่อ Agentic Labs

309
00:15:53,320 --> 00:15:56,660
คุณจะได้เข้าถึง Agentic Coding Masterclass

310
00:15:56,660 --> 00:16:00,079
ของผม เป็นชั่วโมงวิดีโอสอนใช้ coding agents

311
00:16:00,079 --> 00:16:03,339
อย่างมีประสิทธิภาพ และสร้างโปรเจกต์จริง ๆ

312
00:16:03,339 --> 00:16:06,838
เรามี live coffee session ที่คุณถามอะไรก็ได้

313
00:16:06,838 --> 00:16:10,417
และมี deep dive session รายสัปดาห์ อันที่จริง

314
00:16:10,417 --> 00:16:13,518
พฤหัสนี้เราจะ deep dive เรื่อง Jev พอดี

315
00:16:13,518 --> 00:16:17,017
คุณไม่ควรพลาด session นั้นเลยนะ ผมจะแปะลิงก์

316
00:16:17,017 --> 00:16:20,039
Agentic Labs ไว้ในคำอธิบายของวิดีโอนี้

317
00:16:20,039 --> 00:16:23,538
ขอบคุณมากที่รับชม แล้วเจอกันคลิปหน้าครับ บาย

318
00:16:23,538 --> 00:16:24,633
บาย