หน้าแรก / บทความ / AI สำหรับ Dev

Ollama คืออะไร? รัน AI ในเครื่องตัวเอง ตั้งแต่ติดตั้งจนเรียกใช้จากโค้ด

รู้จัก Ollama เครื่องเล่นที่ทำให้โมเดล AI รันบนคอมของเราเอง ติดตั้ง โหลด gemma4 คุยแบบไม่ต้องต่อเน็ต แล้วเรียกใช้ผ่าน API จาก curl, Node.js และ PowerShell

เวลาเราใช้แชตบอต AI บนเว็บ ทุกข้อความที่พิมพ์จะถูกส่งออกไปคิดบนเซิร์ฟเวอร์ของผู้ให้บริการ งานทั่วไปก็ไม่เป็นไร แต่บางงานเราไม่อยากให้ข้อมูลออกจากเครื่องเลย เช่น โค้ดของลูกค้า เอกสารภายในบริษัท หรือแค่อยากทดลองเขียนแอปที่ใช้ AI โดยไม่ต้องห่วงค่า API ที่คิดเงินตามการใช้งาน

Ollama คือโปรแกรมที่ทำให้เรารันโมเดล AI บนคอมพิวเตอร์ของตัวเองได้ ติดตั้งครั้งเดียว ดาวน์โหลดโมเดลมาเก็บไว้ แล้วคุยกับมันได้ทั้งใน Terminal และจากโค้ดที่เราเขียนเอง บทความนี้จะพาทำตั้งแต่เช็กว่าเครื่องไหวไหม จนถึงเขียนสคริปต์ Node.js เรียก AI ในเครื่องครับ

จบบทความนี้คุณจะ:

  • อธิบายได้ว่า Ollama กับโมเดลต่างกันยังไง และ Tag หลังเครื่องหมาย : บอกอะไร
  • ติดตั้ง Ollama แล้วคุยกับโมเดล gemma4:e2b ในเครื่องตัวเองได้
  • พิสูจน์ได้ว่า AI ตอบโดยไม่ส่งข้อมูลออกนอกเครื่อง
  • ใช้คำสั่งดู โหลด หยุด และลบโมเดลได้
  • เรียก AI ในเครื่องผ่าน API ที่ localhost:11434 ด้วย curl, Node.js และ PowerShell

ถ้าอยากเห็นภาพรวมก่อน ดูคลิปสั้นนี้ได้เลย ยาวแค่ 1 นาทีครับ

ดูคลิปนี้บน YouTube

Ollama คือเครื่องเล่น โมเดลคือแผ่น

นึกถึงเครื่องเล่น DVD ครับ ตัวเครื่องไม่มีหนังอยู่ข้างใน มันแค่รู้วิธีอ่านแผ่นแล้วฉายออกจอ อยากดูเรื่องไหนก็ใส่แผ่นเรื่องนั้น

Ollama คือเครื่องเล่น ส่วนแผ่นคือ โมเดล (model) หรือสมองของ AI ที่ถูกฝึกมาเรียบร้อยแล้ว โมเดลเป็นไฟล์ขนาดใหญ่ที่เราดาวน์โหลดมาเก็บในเครื่อง หน้าที่ของ Ollama คือโหลดไฟล์นั้นขึ้นหน่วยความจำ รับคำถามจากเรา แล้วให้โมเดลคิดคำตอบออกมา

ของจริงเทียบกับตัวอย่างในบทความ
Ollamaเครื่องเล่นแผ่นโปรแกรมที่ติดตั้งครั้งเดียว
โมเดลแผ่นหนังgemma4 ของ Google
Tagฉบับของแผ่นe2b ใน gemma4:e2b

เส้นทางของคำถามหนึ่งข้อจึงสั้นมาก แอปหรือ Terminal ส่งคำถามไปที่ localhost:11434 ซึ่งเป็นช่องที่ Ollama เปิดรอไว้ Ollama ส่งต่อให้โมเดลที่อยู่ใน RAM หรือ VRAM แล้วคำตอบก็วิ่งกลับทางเดิม ไม่มีขั้นไหนต้องออกอินเทอร์เน็ต ยกเว้นตอนดาวน์โหลดโมเดลครั้งแรก และกรณีที่เราเลือกใช้โมเดลแบบ cloud ซึ่งจะเล่าในหัวข้อทดสอบออฟไลน์

แผนภาพ: แอปของเราส่งคำถามไปที่ localhost:11434 ถึง Ollama และโมเดลใน RAM/VRAM ทั้งหมดอยู่ในเครื่อง ส่วนโมเดล cloud ส่งออกไปเซิร์ฟเวอร์ของ Ollama
คำถามวนอยู่ในเครื่องเรา ยกเว้นโมเดลที่ลงท้ายด้วย cloud

ศัพท์ที่ต้องรู้

คำเทียบกับหน้าที่
Ollamaเครื่องเล่นแผ่นโหลดโมเดล รับคำถาม ส่งคำตอบ ทั้งทาง Terminal และ API
Modelแผ่นหนังสมองของ AI มีหลายขนาด ยิ่งใหญ่ยิ่งเก่ง แต่ยิ่งกินเครื่อง
Tagฉบับของแผ่นส่วนหลัง : บอกขนาดหรือรุ่นย่อย gemma4:e2b คือรุ่นเล็กสุดของ gemma4
RAM / VRAMโต๊ะทำงานที่วางโมเดลตอนคิด VRAM คือหน่วยความจำบนการ์ดจอ (GPU) ซึ่งเร็วกว่า
localhost:11434เคาน์เตอร์ในบ้านlocalhost แปลว่าเครื่องนี้เอง ส่วน 11434 คือเลขพอร์ตที่ Ollama รอรับงาน
APIช่องรับออร์เดอร์ทางที่โปรแกรมอื่นส่งคำถามเข้ามาเป็นข้อความแบบ JSON

ทำไมต้องสนใจ RAM กับ VRAM โมเดลต้องถูกโหลดขึ้นหน่วยความจำก่อนถึงจะคิดได้ เหมือนต้องกางแบบแปลนบนโต๊ะก่อนเริ่มงาน ถ้าโต๊ะเล็กไป Ollama ยังพอทำงานได้ด้วยการแบ่งงานบางส่วนไปให้ CPU กับ RAM ปกติช่วย แต่จะช้าลงอย่างเห็นได้ชัด

เช็กเครื่องก่อนติดตั้ง

โมเดลที่เราจะใช้ทั้งบทความคือ gemma4:e2b ณ ตอนเขียน (ต.ค. 2026) ไฟล์ดาวน์โหลดมีขนาดประมาณ 7.2 GB และแนะนำให้มีหน่วยความจำว่างราว 8 GB โดยดูจากที่ไหนขึ้นกับเครื่อง

  • เครื่องที่มีการ์ดจอแยก ดู VRAM ของการ์ดจอ
  • Mac ชิป Apple ดูหน่วยความจำรวมของเครื่อง เพราะเป็น unified memory คือ CPU กับ GPU ใช้หน่วยความจำก้อนเดียวกัน

มีน้อยกว่านี้ก็ยังใช้ได้ แค่ตอบช้าลง ไม่ถึงกับรันไม่ขึ้นครับ และอย่าลืมเผื่อที่ว่างในดิสก์ให้มากกว่าขนาดไฟล์โมเดลสักหน่อย

วิธีดูหน่วยความจำของแต่ละระบบ

  • Windows: กด Ctrl+Shift+Esc เปิด Task Manager ไปที่แท็บ Performance ดูหัวข้อ Memory และ GPU (บรรทัด Dedicated GPU memory คือ VRAM)
  • Mac: เมนู Apple > About This Mac ดูบรรทัด Memory
  • Linux: ใช้คำสั่งด้านล่าง
Terminal (Linux)
free -h
ผลลัพธ์ที่ควรเห็น (ประมาณนี้)
               total        used        free      shared  buff/cache   available
Mem:            15Gi       4.2Gi       6.1Gi       312Mi       5.3Gi        10Gi
Swap:          2.0Gi          0B       2.0Gi

ให้ดูช่อง available ซึ่งเป็นที่ที่โปรแกรมใหม่หยิบไปใช้ได้จริง

เช็กว่าได้แล้ว: รู้ว่าเครื่องมีหน่วยความจำว่างประมาณเท่าไร และดิสก์มีที่ว่างพอสำหรับไฟล์ราว 7.2 GB

ติดตั้ง Ollama

เลือกตามระบบที่ใช้ครับ

PowerShell (Windows)
irm https://ollama.com/install.ps1 | iex

irm (ย่อจาก Invoke-RestMethod) ดาวน์โหลดสคริปต์ติดตั้งมา แล้วเครื่องหมาย | ส่งต่อให้ iex (Invoke-Expression) รันสคริปต์นั้น ถ้าชอบคลิกมากกว่า ดาวน์โหลดไฟล์ OllamaSetup.exe จาก ollama.com/download มาติดตั้งแบบโปรแกรมทั่วไปก็ได้

Terminal (Mac / Linux)
curl -fsSL https://ollama.com/install.sh | sh

หลักการเดียวกัน curl ดาวน์โหลดสคริปต์ แล้ว sh เป็นคนรัน สำหรับ Mac มีไฟล์ .dmg ให้ดาวน์โหลดจากหน้าเดียวกันอีกทาง

ระวังคำสั่งแบบโหลดแล้วรันทันที ทั้ง irm ... | iex และ curl ... | sh คือการรันสคริปต์จากอินเทอร์เน็ตโดยที่เราไม่ได้เปิดอ่านก่อน ใช้ได้เมื่อมาจากโดเมนทางการอย่าง ollama.com เท่านั้น ถ้าเจอคำสั่งหน้าตาแบบนี้จากที่อื่น ให้เช็กโดเมนให้ดีก่อนกด Enter

ติดตั้งเสร็จแล้วให้ ปิด Terminal แล้วเปิดใหม่ เพราะหน้าต่างเดิมยังไม่รู้จักโปรแกรมที่เพิ่งลงไป จากนั้นเช็กเวอร์ชัน

Terminal
ollama --version
ผลลัพธ์ที่ควรเห็น (ประมาณนี้)
ollama version is 0.x.x

บน Windows และ Mac ตัว Ollama จะทำงานอยู่เบื้องหลัง สังเกตได้จากไอคอนรูปลามะที่มุมจอ ส่วน Linux ถ้าขึ้นคำเตือนว่า could not connect to a running Ollama instance ให้เปิด Terminal อีกหน้าต่าง สั่ง ollama serve แล้วเปิดค้างไว้ หน้าต่างนั้นคือตัวเครื่องเล่นที่ต้องเปิดอยู่ตลอดเวลาที่ใช้งาน

เช็กว่าได้แล้ว: ollama --version ขึ้นเลขเวอร์ชัน โดยไม่มีคำเตือนว่าเชื่อมต่อไม่ได้

โหลดโมเดลแรก แล้วเริ่มคุย

คำสั่งเดียวทำได้สองอย่าง ถ้าในเครื่องยังไม่มีโมเดลตัวนี้ Ollama จะดาวน์โหลดให้ก่อน พอเสร็จก็เปิดห้องแชตให้ทันที

Terminal
ollama run gemma4:e2b
ผลลัพธ์ที่ควรเห็น (ประมาณนี้)
pulling manifest
pulling 4e30e2665218: 100% ▕██████████████████▏ 7.2 GB
pulling e0a42594d802: 100% ▕██████████████████▏  358 B
verifying sha256 digest
writing manifest
success
>>> Send a message (/? for help)

มาอ่านทีละช่วงกันครับ

  • pulling manifest โหลดใบรายการของโมเดลก่อน ว่าต้องมีไฟล์อะไรบ้าง เหมือนดูใบแจ้งของบนกล่องพัสดุ
  • pulling 4e30... โหลดไฟล์ทีละชิ้นตามใบรายการ ชิ้นใหญ่หลาย GB คือตัวสมอง ส่วนชิ้นเล็กๆ เป็นการตั้งค่าประกอบ
  • verifying sha256 digest ตรวจว่าไฟล์ที่ได้มาครบและไม่เสียระหว่างทาง
  • success แล้วตามด้วย >>> แปลว่าโมเดลพร้อม และเรากำลังอยู่ในห้องแชต

ลองพิมพ์คำถามแล้วกด Enter เช่น

ในห้องแชต
>>> อธิบาย API ให้มือใหม่เข้าใจใน 3 บรรทัด

คำตอบจะค่อยๆ พิมพ์ออกมาทีละคำ และแต่ละครั้งไม่จำเป็นต้องเหมือนกัน เพราะโมเดลเลือกคำใหม่ทุกครั้งที่ตอบ

เช็กว่าได้แล้ว: ได้คำตอบภาษาไทยกลับมา แล้วเครื่องหมาย >>> โผล่รอคำถามถัดไป

พิมพ์หลายบรรทัด และออกจากห้องแชต

ปกติกด Enter แล้วข้อความจะถูกส่งทันที ถ้าอยากส่งหลายบรรทัด เช่น แปะโค้ดให้ช่วยอ่าน ให้ครอบข้อความด้วยเครื่องหมายคำพูดสามตัว """ ทั้งต้นและท้าย

ในห้องแชต
>>> """โค้ดนี้ทำอะไร
... const total = [1, 2, 3].reduce((a, b) => a + b, 0)
... """

จะออกจากห้องแชตก็พิมพ์ /bye ส่วน /? ใช้ดูคำสั่งทั้งหมดที่ใช้ได้ในห้องแชต

ครั้งที่สองเร็วกว่าเยอะ สั่ง ollama run gemma4:e2b อีกรอบจะไม่ดาวน์โหลดแล้ว เพราะแผ่นอยู่ในเครื่องเรียบร้อย ที่อาจช้าบ้างคือคำถามแรกหลังไม่ได้ใช้ไปนาน เพราะ Ollama ต้องยกโมเดลขึ้นหน่วยความจำใหม่ (โดยปกติโมเดลจะค้างอยู่ 5 นาทีหลังใช้ครั้งล่าสุด)

ทดสอบว่าอยู่ในเครื่องจริง

พูดว่าเป็น AI ส่วนตัวก็ต้องพิสูจน์ได้ วิธีที่ตรงที่สุดคือตัดเน็ตแล้วลองคุย

  1. พิมพ์ /bye ออกจากห้องแชต
  2. ปิด Wi-Fi หรือถอดสาย LAN
  3. สั่ง ollama run gemma4:e2b อีกครั้ง แล้วถามอะไรก็ได้

ถ้ายังตอบได้ แปลว่าทั้งตัวโมเดลและการคิดเกิดในเครื่องเราทั้งหมด เพราะไฟล์โมเดลอยู่ในดิสก์ และ Ollama คุยกับแอปผ่าน localhost ซึ่งไม่ต้องใช้เน็ตเลย ทดสอบเสร็จอย่าลืมเปิด Wi-Fi กลับครับ

เช็กว่าได้แล้ว: ตอนไม่มีเน็ต โมเดลยังตอบคำถามได้ตามปกติ

ข้อยกเว้น: โมเดลที่ลงท้ายด้วย cloud Ollama มีโมเดลบางตัวที่ชื่อลงท้ายด้วย cloud เช่น gemma4:cloud ตัวพวกนี้ไม่ได้รันในเครื่องเรา แต่ส่งคำถามไปคิดบนเซิร์ฟเวอร์ของ Ollama ข้อดีคือใช้โมเดลใหญ่ได้แม้เครื่องไม่แรง แต่ต้องล็อกอินบัญชี Ollama ต้องมีเน็ต และข้อความของเราจะออกนอกเครื่อง ถ้าเป้าหมายคือความเป็นส่วนตัว ให้เลือกโมเดลที่ไม่มีคำว่า cloud

คำสั่งจัดการโมเดล

พอเริ่มมีหลายแผ่น ก็ต้องรู้วิธีจัดชั้นวางครับ

คำสั่งทำอะไรใช้ตอนไหน
ollama listดูโมเดลที่โหลดไว้ในเครื่องอยากรู้ว่ามีแผ่นอะไรบ้าง และกินดิสก์เท่าไร
ollama psดูโมเดลที่กำลังอยู่ในหน่วยความจำเครื่องอืด อยากรู้ว่าตัวไหนยังค้างอยู่
ollama pull gemma4:e4bโหลดโมเดลมาเก็บไว้ แต่ยังไม่เปิดแชตเตรียมไว้ก่อน เช่น ตอนเน็ตดี
ollama stop gemma4:e2bเอาโมเดลออกจากหน่วยความจำอยากคืน RAM ให้โปรแกรมอื่น แต่ยังเก็บไฟล์ไว้
ollama rm gemma4:e2bลบไฟล์โมเดลออกจากดิสก์ไม่ใช้แล้ว อยากได้ที่ว่างคืน
ผลลัพธ์ของ ollama list (ตัวอย่าง)
NAME          ID              SIZE      MODIFIED
gemma4:e2b    a1b2c3d4e5f6    7.2 GB    5 minutes ago
ผลลัพธ์ของ ollama ps (ตัวอย่าง)
NAME          ID              SIZE      PROCESSOR    UNTIL
gemma4:e2b    a1b2c3d4e5f6    8.4 GB    100% GPU     4 minutes from now

ใน ollama ps มีสองช่องที่น่าสนใจ ช่อง PROCESSOR บอกว่าโมเดลวางอยู่บนอะไร 100% GPU คือวางบนการ์ดจอทั้งก้อน ถ้าเห็นตัวเลขแบ่ง CPU กับ GPU แปลว่าโต๊ะไม่พอ ต้องแบ่งไปให้ CPU ช่วย ส่วนช่อง UNTIL คือเวลาที่โมเดลจะถูกปล่อยออกจากหน่วยความจำเอง ถ้าไม่มีใครเรียกใช้อีก

ความต่างของ stop กับ rm จำง่ายๆ ว่า stop คือเอาแผ่นออกจากเครื่องเล่นแล้ววางกลับชั้น ส่วน rm คือทิ้งแผ่นไปเลย ถ้าอยากใช้อีกต้องดาวน์โหลดใหม่ทั้งหมด

โมเดลทั้งหมดดูได้ที่ ollama.com/library แต่ละตัวบอกขนาดของทุก Tag ไว้ เช็กก่อน pull ทุกครั้งจะได้ไม่เต็มดิสก์ครับ

เรียกใช้จากโค้ดผ่าน API

ตอนที่ Ollama ทำงานอยู่ มันจะเปิด API รอไว้ที่ http://localhost:11434 และโดยค่าเริ่มต้นรับเฉพาะคำขอจากเครื่องตัวเอง โปรแกรมไหนในเครื่องเราก็ส่งคำถามเข้ามาได้ ทั้งสคริปต์เล็กๆ หรือเว็บที่กำลังพัฒนา โดยไม่มีค่า API ต่อครั้ง

ลองยิงด้วย curl

Terminal (Mac / Linux / Git Bash)
curl http://localhost:11434/api/chat \
  -H "Content-Type: application/json" \
  -d '{"model":"gemma4:e2b","messages":[{"role":"user","content":"Say hello in one sentence."}],"stream":false}'

ข้อมูลที่ส่งไปมีสามส่วน

  • model จะใช้แผ่นไหน ต้องตรงกับชื่อใน ollama list
  • messages รายการข้อความในบทสนทนา แต่ละข้อความบอกว่าใครพูด (role) และพูดว่าอะไร (content) ที่เป็นรายการเพราะเราส่งประวัติการคุยก่อนหน้าไปด้วยได้ AI จะได้ตอบต่อเนื่อง
  • stream: false ปกติ Ollama จะทยอยส่งคำตอบมาทีละท่อนเป็น JSON หลายบรรทัด เหมือนที่เห็นคำตอบค่อยๆ พิมพ์ออกมาในห้องแชต การใส่ false คือบอกว่าขอรอให้คิดเสร็จ แล้วส่งมาเป็นก้อนเดียว อ่านง่ายกว่าสำหรับการลองครั้งแรก
ผลลัพธ์ (จัดบรรทัดให้อ่านง่าย ของจริงจะอยู่บรรทัดเดียว)
{
  "model": "gemma4:e2b",
  "created_at": "2026-10-22T07:15:02.481Z",
  "message": {
    "role": "assistant",
    "content": "Hello! It's nice to meet you."
  },
  "done": true,
  "done_reason": "stop"
}

คำตอบของ AI อยู่ที่ ==message.content== ส่วน done: true บอกว่าคิดเสร็จแล้ว ของจริงจะมีช่องตัวเลขเพิ่มอีกหลายช่อง เช่น total_duration คือเวลาที่ใช้ หน่วยเป็นนาโนวินาที

เช็กว่าได้แล้ว: ได้ JSON ที่มี "role":"assistant" และมีข้อความตอบอยู่ใน content

เรียกจาก Node.js

Node.js ตั้งแต่เวอร์ชัน 18 มี fetch ติดมาให้แล้ว ไม่ต้องลงแพ็กเกจเพิ่ม เช็กเวอร์ชันก่อนด้วย node -v ถ้าได้ v18 ขึ้นไปก็ใช้ได้ แล้วสร้างไฟล์ชื่อ chat.mjs

chat.mjs
const res = await fetch("http://localhost:11434/api/chat", {
  method: "POST",
  headers: { "Content-Type": "application/json" },
  body: JSON.stringify({
    model: "gemma4:e2b",
    messages: [
      { role: "user", content: "อธิบาย API ให้มือใหม่เข้าใจใน 3 บรรทัด" },
    ],
    stream: false,
  }),
});
 
if (!res.ok) {
  console.error("Ollama ตอบกลับมาว่า", res.status, await res.text());
  process.exit(1);
}
 
const data = await res.json();
console.log(data.message.content);
Terminal
node chat.mjs

สิ่งที่ควรรู้ในสคริปต์นี้

  • ไฟล์ลงท้าย .mjs เพื่อบอก Node ว่าเป็น ES Module ซึ่งยอมให้ใช้ await ที่ชั้นนอกสุดของไฟล์ได้เลย ไม่ต้องห่อด้วยฟังก์ชัน async
  • บรรทัด if (!res.ok) กันกรณีที่ Ollama ตอบกลับเป็น error เช่น พิมพ์ชื่อโมเดลผิด จะได้เห็นสาเหตุชัดๆ แทนที่จะไปพังตอนอ่าน data.message
  • บรรทัดสุดท้ายหยิบเฉพาะข้อความตอบมาพิมพ์ ตรงกับช่อง message.content ที่เห็นใน curl

เช็กว่าได้แล้ว: Terminal พิมพ์คำอธิบายเรื่อง API ภาษาไทยออกมา โดยไม่มี JSON ปน

เรียกจาก PowerShell (Windows)

ใน PowerShell คำสั่ง curl ข้างบนใช้ตรงๆ ไม่ได้ เพราะเครื่องหมาย \ ท้ายบรรทัดไม่ใช่วิธีขึ้นบรรทัดใหม่ของ PowerShell และการใส่เครื่องหมายคำพูดก็ต่างกัน ทางที่ง่ายกว่าคือใช้ Invoke-RestMethod ซึ่งมีในเครื่องอยู่แล้ว

PowerShell (Windows)
$body = @{
  model    = "gemma4:e2b"
  messages = @(
    @{ role = "user"; content = "Say hello in one sentence." }
  )
  stream   = $false
}
 
$res = Invoke-RestMethod -Uri "http://localhost:11434/api/chat" -Method Post -ContentType "application/json" -Body (ConvertTo-Json -Depth 5 $body)
 
$res.message.content
  • @{ ... } คือก้อนข้อมูลแบบชื่อคู่ค่า และ @( ... ) คือรายการ เทียบได้กับ {} และ [] ใน JSON
  • ConvertTo-Json -Depth 5 แปลงก้อนข้อมูลเป็นข้อความ JSON ที่ต้องใส่ -Depth เพราะค่าเริ่มต้นแปลงลึกได้แค่ 2 ชั้น ข้อความที่ซ้อนอยู่ใน messages จะถูกแปลงผิดรูป
  • Invoke-RestMethod อ่าน JSON ที่ตอบกลับมาเป็นออบเจกต์ให้อัตโนมัติ เราจึงเขียน $res.message.content ได้เลย

อยากถามเป็นภาษาไทยใน PowerShell Windows PowerShell 5.1 ที่ติดมากับเครื่องไม่ได้ส่งข้อความเป็น UTF-8 เสมอไป ภาษาไทยจึงอาจเพี้ยนระหว่างทาง ทางแก้ที่ง่ายสุดคือใช้ PowerShell 7 (คำสั่ง pwsh) ซึ่งตั้งแต่ 7.4 ส่งเป็น UTF-8 เป็นค่าเริ่มต้น หรือถ้าต้องใช้ 5.1 ให้แปลงเป็นไบต์เองด้วย -Body ([System.Text.Encoding]::UTF8.GetBytes((ConvertTo-Json -Depth 5 $body)))

เช็กว่าได้แล้ว: บรรทัดสุดท้ายพิมพ์ประโยคทักทายภาษาอังกฤษออกมาหนึ่งประโยค

เจอปัญหา ลองเช็กตามนี้

อาการสาเหตุวิธีแก้
พิมพ์ ollama แล้วขึ้น command not foundTerminal ยังไม่รู้จักโปรแกรมที่เพิ่งลงปิดแล้วเปิด Terminal ใหม่ ถ้ายังไม่หายให้ติดตั้งซ้ำ
could not connect to a running Ollama instanceตัว Ollama ไม่ได้ทำงานอยู่Windows/Mac เปิดแอป Ollama ส่วน Linux สั่ง ollama serve ค้างไว้อีกหน้าต่าง
ตอบช้ามาก ทีละคำหน่วยความจำไม่พอปิดโปรแกรมอื่น หรือเปลี่ยนไปใช้โมเดลที่เล็กลง
ดาวน์โหลดค้างหรือหลุดเน็ตสะดุดระหว่างทางสั่ง ollama run หรือ ollama pull ซ้ำ จะโหลดต่อจากที่ค้าง
ดิสก์เต็มเก็บโมเดลไว้หลายตัวดูด้วย ollama list แล้ว ollama rm ตัวที่ไม่ใช้
Node ขึ้น fetch failedต่อ localhost:11434 ไม่ได้เปิด http://localhost:11434 ในเบราว์เซอร์ ต้องเห็น Ollama is running
error ว่าหาโมเดลไม่เจอ (not found)ชื่อหรือ Tag ไม่ตรงกับที่โหลดไว้เทียบชื่อกับ ollama list หรือ ollama pull ก่อน

ไปต่อ

  • เลือกโมเดลอื่นจาก ollama.com/library ดูขนาดของแต่ละ Tag ก่อนโหลด ถ้าเครื่องไหวก็ลอง gemma4:e4b
  • ในหน้าของแต่ละโมเดลบน ollama.com จะมีคำสั่ง ollama launch ให้ก๊อปไปใช้ต่อโมเดลเข้ากับเครื่องมือเขียนโค้ดอย่าง Claude Code
  • อ่านรายละเอียด API และตัวเลือกทั้งหมดที่ docs.ollama.com
  • ถ้ายังไม่คุ้นกับเลข Status ที่ API ตอบกลับมา อ่านต่อได้ที่ HTTP Status Code

สรุป

  • Ollama คือเครื่องเล่น ส่วนโมเดลคือแผ่น Tag หลัง : บอกขนาดหรือรุ่นย่อย เช่น gemma4:e2b
  • โมเดลต้องวางบน RAM หรือ VRAM ได้ ยิ่งที่ว่างมากยิ่งตอบเร็ว gemma4:e2b แนะนำที่ว่างราว 8 GB
  • ollama run โหลดและเปิดแชตในคำสั่งเดียว ใช้ """ พิมพ์หลายบรรทัด และ /bye เพื่อออก
  • ตัดเน็ตแล้วยังตอบได้ แปลว่ารันในเครื่องจริง ยกเว้นโมเดลที่ลงท้ายด้วย cloud ซึ่งส่งไปคิดที่เซิร์ฟเวอร์
  • list, ps, pull, stop, rm คือคำสั่งจัดชั้นวาง และ API ที่ localhost:11434/api/chat ให้โค้ดของเราใช้ AI ได้ โดยคำตอบอยู่ที่ message.content

พร้อมแล้วก็ไปทำ Quiz ท้ายบทด้านล่างเพื่อรับ XP ได้เลยครับ

Quiz ท้ายบท

5 ข้อ · ข้อละ 10 XP

ทดสอบความเข้าใจเรื่อง Ollama ตอบถูกข้อละ 10 XP

  • 5 ข้อ
  • ไม่จับเวลา
  • เฉลยทันทีทุกข้อ