สร้าง Spring Boot REST API เชื่อมต่อ Ollama AI

 บทนำ: Spring AI + Ollama คืออะไร

  • Spring AI → เป็น framework เสริมของ Spring Boot ที่ช่วยเชื่อมระบบ AI (LLM) เช่น OpenAI, Anthropic, Ollama ฯลฯ ได้ง่ายโดยไม่ต้องเขียน HTTP request เอง
  • Ollama → คือ local LLM server ที่คุณสามารถรันโมเดลอย่าง llama2mistralphi3gemma ได้ ออฟไลน์ 100%

ตัวอย่างนี้จะทำให้ Spring Boot ของคุณสามารถ “คุยกับโมเดล Ollama” ได้เหมือนกับที่คุยกับ ChatGPT แต่รันในเครื่องเราเอง!

1️⃣ ทำความเข้าใจแนวคิดก่อนเริ่ม

ก่อนลงมือโค้ด มาดูแนวคิดของระบบนี้ก่อนครับ

🧩 โครงสร้างโดยรวม

เราจะสร้าง Spring Boot Application ที่ทำหน้าที่เป็น “ตัวกลาง (middleware)” ระหว่าง

  • ผู้ใช้ (หรือ frontend)
  • และโมเดล Ollama (LLM) ที่รันอยู่ในเครื่องเรา
1
User → Spring Boot API → Spring AI → Ollama Model (local)

เป้าหมายคือ:

  • เราส่งข้อความ (prompt) ไปหา Ollama
  • Ollama คิดและตอบกลับข้อความ (response)
  • Spring Boot ส่งคำตอบนั้นกลับให้ client ผ่าน REST API

2️⃣ ติดตั้ง Ollama (AI Engine ในเครื่องเรา)

ทำไมต้องติดตั้งก่อน?

เพราะ Ollama ทำหน้าที่เป็น “สมอง” ของระบบ
Spring AI จะเพียงส่งข้อความไปให้ Ollama คิด → แล้วรับคำตอบกลับมา

วิธีติดตั้ง

  1. เข้าเว็บ https://ollama.com/download
  2. ติดตั้งตามระบบปฏิบัติการ (Windows / macOS / Linux)
  3. เปิด Terminal แล้วลองโหลดโมเดลตัวแรก เช่น:ollama pull llama3 หมายถึง “โหลดโมเดลชื่อ llama3 มาติดตั้งไว้ในเครื่อง”
  4. ทดสอบรันโมเดล:ollama run llama3 ถ้าได้ prompt ให้พิมพ์ถาม เช่น>>> Hello และมันตอบกลับมาได้ — แสดงว่า Ollama พร้อมใช้งานแล้ว ✅

💡 Ollama เปิด API อยู่ที่ http://localhost:11434 โดยอัตโนมัติ


3️⃣ สร้างโปรเจกต์ Spring Boot

ทำไมต้อง Spring Boot?

เพราะมันช่วยจัดการ lifecycle, dependency, configuration ต่าง ๆ ให้เราง่ายมาก
และเราจะได้ REST API ที่สามารถติดต่อกับ Ollama ได้ทันที

วิธีสร้าง

ไปที่ 👉 https://start.spring.io

เลือก:

  • Project: Maven
  • Language: Java
  • Spring Boot: 3.3.0+
  • Dependencies:
    • ✅ Spring Web (สำหรับสร้าง REST API)
    • ✅ Spring AI Ollama Spring Boot Starter (สำหรับเชื่อม Ollama)

จากนั้นกด “Generate Project” แล้ว unzip มาลงในเครื่อง
เปิดด้วย IntelliJ / VS Code ก็ได้ครับ


4️⃣ ตั้งค่าเชื่อมกับ Ollama ใน application.properties

เปิดไฟล์ src/main/resources/application.properties แล้วใส่:

1
2
3
4
5
# URL ของ Ollama server (ค่า default คือ localhost:11434)
spring.ai.ollama.base-url=http://localhost:11434
 
# โมเดลที่ต้องการใช้ (เช่น llama3, mistral, phi3)
spring.ai.ollama.chat.options.model=llama3

ทำเพื่อให้ Spring AI รู้ว่าจะส่งข้อความไปที่ไหน และใช้โมเดลตัวไหนตอบกลับ
Spring Boot จะ auto-configure ตัว OllamaChatModel ให้เราเอง (ไม่ต้อง new object เองเลย)

ทำไมต้องมี Controller?

เพราะมันคือ “API Endpoint” ที่ให้ client ภายนอกเรียกเข้ามาได้ เช่น Postman, browser, หรือ frontend


5️⃣ เขียน Controller — จุดรับคำสั่งจากผู้ใช้

สร้างไฟล์ใหม่ชื่อ ChatController.java:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import org.springframework.web.bind.annotation.*;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.ollama.OllamaChatModel;
 
@RestController
@RequestMapping("/api/prompt")
public class PromptController {
 
    private final OllamaChatModel ollamaChatModel;
 
    public PromptController(OllamaChatModel ollamaChatModel) {
        this.ollamaChatModel = ollamaChatModel;
    }
 
    @GetMapping
    public String get(@RequestParam String message) {
        Prompt prompt = new Prompt(message);
        ChatResponse response = ollamaChatModel.call(prompt);
        return response.getResult().getOutput().getText();
    }
     
}

🔍 อธิบายโค้ดทีละส่วน

ส่วนทำเพื่ออะไร
@RestControllerทำให้ class นี้เป็น REST API ที่สามารถรับ request ได้
@RequestMapping("/api/prompt")กำหนด base path ของ API
OllamaChatModelเป็น object ที่ Spring AI สร้างไว้ให้เพื่อคุยกับ Ollama
Prompt prompt = new Prompt(message)สร้าง prompt เพื่อส่งข้อความนั้นไปให้โมเดล
ollamaChatModel.call(prompt)เรียกโมเดลให้ประมวลผลและตอบกลับ
@GetMappingใช้เรียกดูบทสนทนาในรูปแบบ List ผ่าน browser

6️⃣ รันโปรเจกต์และทดสอบ

เปิด Terminal แล้วพิมพ์:

1
mvn spring-boot:run

✅ GET: ดูประวัติการคุย

เปิด browser แล้วเข้า:


7️⃣ สรุปแนวคิด

ขั้นตอนทำเพื่ออะไร
ติดตั้ง Ollamaสร้าง LLM ที่รันบนเครื่องเรา
ตั้งค่า base-url + modelบอก Spring ว่าจะเชื่อมกับ Ollama instance ไหน
สร้าง Controllerสร้าง REST API สำหรับรับส่งข้อความ
ใช้ OllamaChatModelใช้งาน abstraction ของ Spring AI แทน HTTP Request
เพิ่ม method GETเพื่อให้เรา test ได้ง่าย

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

จากสมศรี 422R สู่หุ่นยนต๋ในยุค llm