[Dev-Fortune] 시리즈 다시보기

1. 서론: 왜 유료 API 대신 로컬 LLM인가?

이번 2편에서는 본격적인 구현의 첫 단추인 AI 모델 환경 구축을 다룹니다. 우리는 비용 제로, 데이터 보안, 완전한 통제를 위해 Ollama를 활용한 로컬 LLM 방식을 선택했습니다.

2. 로컬 AI 서버 연동 구조

Spring Boot가 로컬에서 실행 중인 Ollama와 통신하는 물리적 구조입니다.

graph LR subgraph "Local PC" A[Spring Boot App] -- "HTTP Post (11434)" --> B[Ollama Server] B -- "Model Load" --> C[qwen2.5:3b]
    subgraph "Application.properties"
        D[Base-URL]
        E[Temperature: 0.4]
        F[Model Name]
    end
    D -.-> A
    E -.-> A
end

3. Spring Boot 프로젝트 설정: application.properties

application.properties 파일에 담긴 설정값들을 하나씩 뜯어보며 그 의미를 파헤쳐 보겠습니다.

spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=qwen2.5:3b
spring.ai.ollama.chat.options.num-ctx=4096
spring.ai.ollama.chat.options.temperature=0.4

핵심 파라미터 분석

  • temperature=0.4: 사주라는 데이터에 기반하되, 개발자 특유의 시니컬한 변주를 주기 위한 최적의 밸런스입니다.
  • num-ctx=4096: AI가 한 번에 기억할 수 있는 대화의 맥락 크기입니다.

4. Spring AI의 ChatClient

설정을 마쳤다면 코드에서는 ChatClient를 통해 아주 간편하게 AI와 대화할 수 있습니다.

다음 3편에서는 메모리 기반 벡터 저장소(SimpleVectorStore)를 활용하여 사주 데이터를 AI에게 학습시키는 RAG 시스템 구축 과정을 다루겠습니다.