Sharing Experiences might help someone.

  • ถอดรหัสกลยุทธ์ Google แจก Gemma 4 ฟรี: เกมล่าอาณานิคมคลาวด์และสงคราม AI สองขั้ว

    บทความนี้เป็นการสรุปและถอดบทเรียนเนื้อหาจากคลิปวิดีโอวิเคราะห์กลยุทธ์เทคโนโลยีที่น่าสนใจมาก ๆ ของช่อง Ali H. Salem ในชื่อตอนว่า “Why Google Just Gave Away Gemma 4 for Free” (สามารถตามไปฟังคลิปเต็มได้ที่ YouTube: Ali H. Salem) ซึ่งได้เปิดเผยเบื้องหลังวิธีคิดของบริษัทยักษ์ใหญ่ที่น่าศึกษาต่ออย่างยิ่งครับ ในโลกธุรกิจเทคโนโลยี ไม่มีคำว่า “ของฟรีไม่มีในโลก” ยิ่งเป็นเทคโนโลยีเปลี่ยนโลกที่ต้องใช้เงินลงทุนระดับหลายร้อยล้านดอลลาร์สหรัฐในการวิจัยและพัฒนาด้วยแล้ว การที่จู่ๆ ยักษ์ใหญ่ระดับ Google ประกาศปล่อยตัวโมเดล AI ระดับเรือธงอย่าง Gemma 4 ออกมาให้ดาวน์โหลดไปใช้งานได้ฟรีๆ โดยไม่มีค่าซับสคริปชัน ไม่มีค่าธรรมเนียม API และไม่เก็บส่วนแบ่งรายใดๆ ย่อมไม่ใช่เรื่องความใจดีหรือการทำกุศลอย่างแน่นอน หากมองผิวเผิน พฤติกรรมนี้ขัดกับหลักการแสวงหากำไรขององค์กรอย่างสิ้นเชิง แต่ถ้าเราลองเจาะลึกเข้าไปในโครงสร้างของตลาด AI ในปัจจุบันตามที่คลิปนี้ได้วิเคราะห์ไว้ จะพบว่านี่คือหนึ่งในหมากเกมธุรกิจที่ผ่านการคำนวณมาอย่างเบ็ดเสร็จ เป็นการเดินเกมแบบ “ยิงปืนนัดเดียวได้นกสามตัว” ของ Google เพื่อรับมือกับคู่แข่งรอบทิศ และปฏิวัติตัวเองให้กลายเป็นผู้คุมกฎในสงครามแพลตฟอร์มระยะยาว บริบทใหม่: ตลาด AI…

  • อยากใช้ AI ให้เต็มที่ แต่ก็ยังแอบกังวลเรื่องข้อมูลส่วนตัว

    ลองทำ Privacy Filter ให้ AI ด้วยเครื่องเก่าที่บ้าน ผมใช้ AI ในชีวิตประจำวันมากขึ้นเรื่อยๆ ทั้ง Claude ทั้ง Gemini ช่วยเขียนโค้ด คิดงาน แก้ปัญหา แต่มีบางวันที่อยากถามเรื่องที่อ่อนไหวหน่อย เช่น ให้ดูฟอร์มที่มีเลข SSN (เลขประกันสังคมของสหรัฐฯ) ให้ดีบัก config ที่มี password ให้ช่วยอ่าน email ที่มีข้อมูลสำคัญ หรือให้ตรวจสอบเรื่องบัญชีธนาคาร “แล้วผมก็หยุดคิดว่า ข้อมูลพวกนี้ถูกส่งขึ้น server ของบริษัทอื่นทั้งหมดนะ” จริงๆ ก็เชื่อใจ Google กับ Anthropic อยู่แล้วนะ ฮ่าๆ แต่ก็แอบไม่สบายใจ เลยคิดว่าลองทำ project สนุกๆ ดูดีกว่า จุดเริ่มต้น: อยากรันทุกอย่างในเครื่องตัวเอง แผนแรกคือรัน AI ทั้งหมดใน local (ในเครื่องตัวเอง ไม่ผ่านอินเทอร์เน็ต) ไม่ต้องส่งข้อมูลออกเลย ตอนนั้น…

  • สร้าง Research Agent ด้วย ReAct Pattern

    สร้าง Research Agent ด้วย ReAct Pattern — โปรเจกต์ที่ 2 โปรเจกต์ที่ 2 · Phase 2: ReAct Loop & Research Agent Phase 2 Python · Anthropic API · DuckDuckGo · BeautifulSoup บทความนี้เป็นส่วนหนึ่งของ series “เส้นทางสู่ AI Agent Engineer” ถ้าคุณยังไม่ได้อ่าน Phase 1 แนะนำให้อ่านก่อนที่ Ask My Docs — Tool-Calling Agent เพราะเราจะต่อยอดจากแนวคิดนั้นโดยตรง สารบัญ จากที่แล้วมา… เราทำอะไรไปแล้ว? ReAct Pattern คืออะไร? โครงสร้างโปรเจกต์ Setup โปรเจกต์…

  • รันจริง และสิ่งที่ได้เรียนรู้

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 6: รันจริง + สิ่งที่ได้เรียนรู้ มาถึงตอนสุดท้ายแล้ว ตอนนี้เราจะรันโปรแกรมจริง ลองถามคำถาม และสรุปสิ่งที่ได้เรียนรู้จากโปรเจกต์นี้ทั้งหมด Clone และเตรียม git clone https://github.com/nipitpongpan/ask-my-docs cd ask-my-docs python -m venv .venv source .venv/bin/activate # Mac/Linux # หรือ .venv\Scripts\activate # Windows pip install anthropic pydantic python-dotenv สร้างไฟล์ .env: ANTHROPIC_API_KEY=sk-ant-api03-ใส่-key-ของคุณ ใส่เอกสารที่อยากให้ AI อ่าน สร้างไฟล์ .txt ใดๆ ใส่ไว้ในโฟลเดอร์ docs/ เช่น สร้างไฟล์ python.txt:…

  • Pydantic กับ Structured Output

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 5: Pydantic กับ Structured Output ตอนนี้เราเกือบครบแล้ว เหลือแค่ส่วนสุดท้าย — Pydantic และ entry point ของโปรแกรม ฟังดูน่ากลัว แต่จริงๆ ไม่ยากเลย มาดูกัน ปัญหาของการรับข้อมูลจาก AI สมมติ Claude ส่งคำตอบกลับมา แต่ดันส่งผิด เช่น: confidence ควรเป็น “high”, “medium”, หรือ “low” แต่ Claude ส่ง “very high” มา found_in_docs ควรเป็น true/false แต่ส่งมาเป็น “yes” แทน ถ้าไม่มีอะไรตรวจสอบ โปรแกรมอาจทำงานผิดพลาดโดยที่เราไม่รู้ Pydantic: ผู้ตรวจสอบข้อมูล Pydantic…

  • Agent Loop — วนจนกว่าจะได้คำตอบ

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 4: Agent Loop — วนจนกว่าจะได้คำตอบ ตอนที่แล้วเรานิยาม tool ไว้แล้ว ตอนนี้มาดูส่วนที่สำคัญที่สุดของโปรเจกต์ — Agent Loop หรือวงจรที่ทำให้ AI “คิดแล้วทำ แล้วคิดต่อ” ได้ run_tool(): ฝั่ง Python ทำงานจริง เมื่อ Claude ตัดสินใจเรียก tool โปรแกรมของเราต้องรันฟังก์ชันจริงๆ แล้วส่งผลกลับไป หน้าที่นี้อยู่ใน run_tool(): def run_tool(name: str, inputs: dict) -> str: if name == “list_files”: files = [] for f in DOCS_FOLDER.iterdir():…

  • นิยาม Tools ให้ Claude ใช้

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 3: นิยาม Tools ให้ Claude ใช้ ตอนที่แล้วเราเข้าใจแล้วว่า Tool Calling คืออะไร ตอนนี้เราจะมาดูว่า โค้ดจริงๆ เขียนยังไง โฟกัสตอนนี้: บอก Claude ว่ามี tool อะไรให้ใช้บ้าง และกำหนด behavior ด้วย System Prompt โครงสร้างโปรเจกต์ ask-my-docs/ ├── ask.py ← โค้ดหลักทั้งหมด ├── .env ← API Key (อย่า commit!) ├── .gitignore └── docs/ ← ใส่ไฟล์ .txt ที่อยากให้ AI อ่าน…

  • Tool Calling คืออะไร

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 2: Tool Calling คืออะไร ตอนที่แล้วเราเตรียม environment และเรียก Claude ครั้งแรกได้แล้ว ตอนนี้ก่อนจะดูโค้ดจริง ขอหยุดอธิบาย concept สำคัญมากก่อนสักตอนหนึ่ง เพราะถ้าเข้าใจตรงนี้ โค้ดในตอนต่อๆ ไปจะ “คลิก” ทันทีเลย ปัญหาของ AI แบบ “ถามตอบ” ธรรมดา ลอง imagine ว่าเราจ้างพนักงานใหม่คนนึง เขาฉลาดมาก ความรู้กว้างขวาง แต่มีข้อจำกัดอย่างนึง — เขารู้แค่สิ่งที่อยู่ในหัวตอนที่จ้างเข้ามา ถ้าเราถามว่า “นโยบายลาพักร้อนของบริษัทเราคืออะไร?” — เขาตอบไม่ได้ เพราะมันอยู่ในคู่มือพนักงาน ไม่ได้อยู่ในหัวเขา นี่คือปัญหาของ LLM (Large Language Model) อย่าง Claude เหมือนกัน — มันรู้เยอะมาก…

  • เริ่มต้นกับ Anthropic API

    จาก 0 ถึง AI Agent — บันทึกการเรียนรู้ผ่านโปรเจกต์จริง ตอนที่ 1: เริ่มต้นกับ Anthropic API เคยสงสัยไหมว่า AI พวก ChatGPT หรือ Claude มันทำงานยังไง? แล้วถ้าอยากให้ AI ทำงานให้เราเองบ้างล่ะ — ไม่ใช่แค่คุย แต่ให้มันอ่านไฟล์ ค้นข้อมูล หรือทำงานอัตโนมัติ — จะเริ่มยังไง? บทความนี้คือบันทึกจากประสบการณ์จริงที่ผมเรียนรู้เรื่อง AI Agent ตั้งแต่ต้น ไม่มีพื้นฐานมาก่อนก็อ่านได้ครับ เราจะค่อยๆ เดินไปด้วยกัน AI Agent คืออะไร (ฉบับเข้าใจง่าย) ลองนึกถึง AI แบบที่เราคุ้นเคย — พิมพ์คำถาม รอคำตอบ จบ AI Agent ต่างออกไปนิดนึง มันไม่ได้แค่ตอบ — มัน ตัดสินใจ ว่าต้องทำอะไรก่อน…

  • ดึงข้อมูลจาก AI ให้เป็นระเบียบด้วย Structured Output และ Pydantic

    โดยปกติแล้ว AI จะส่งผลลัพธ์กลับมาเป็น free text — ข้อความธรรมดาที่มนุษย์อ่านเข้าใจ แต่โปรแกรมจัดการต่อได้ยาก แต่ในงานจริง เราต้องการมากกว่านั้น เช่น บันทึกข้อมูลลง database, ส่งต่อให้ระบบอื่น, หรือ process ผลลัพธ์แบบอัตโนมัติ — สิ่งเหล่านี้ต้องการ Structured Data ที่มี format ชัดเจน ไม่ใช่ข้อความลอยๆ ลองนึกภาพ use case พวกนี้ดู: 📧 Email → Calendar อ่าน email แล้วดึงนัดหมาย → บันทึกลง calendar อัตโนมัติ 🧾 Slip → รายจ่าย อ่าน slip โอนเงิน → จำนวน, วันที่, ผู้รับ → บันทึกบัญชี 🛒 Review…