สร้าง 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 ได้ง่าย

ความคิดเห็น

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