ThomasVitale/llm-apps-java-spring-ai

Samples showing how to build Java applications powered by Generative AI and LLMs using Spring AI and Spring Boot.

해결하고자 하는 문제

이 저장소는 Java 개발자가 Spring AI 프레임워크를 활용해 생성형 AI 애플리케이션을 만들 수 있도록 포괄적인 샘플 애플리케이션과 구현 패턴을 제공합니다. AI 개념과 실제 Java 구현 사이의 격차를 메우며, LLM, 벡터 데이터베이스, 멀티모달 기능을 엔터프라이즈 Java 애플리케이션에 통합하는 구체적인 예시를 제시합니다.

작동 방식

프로젝트는 Spring AI로 구현된 다양한 사용 사례와 패턴을 모아 구성되었습니다. OpenAI, Mistral AI, Ollama 등 여러 모델 제공자와 PGVector와 같은 벡터 저장소 도구와의 통합을 보여줍니다. 샘플은 데이터 수집(PDF, JSON, Markdown 읽기) 및 문서 변환(분할 및 메타데이터 풍부화)부터 순차, 분기, 조건부 RAG(검색 강화 생성) 흐름을 포함한 고급 RAG 흐름까지 AI 애플리케이션 전체 수명 주기를 다룹니다.

대상 독자

Spring AI를 사용해 AI가 결합된 애플리케이션을 구축하고자 하는 Java 개발자 및 소프트웨어 아키텍트. 특히 RAG, 툴 호출, 구조화된 출력과 같은 일반적인 AI 패턴의 실용적이고 실행 가능한 샘플을 찾는 분들에게 적합합니다.

주요 특징

  • 다양한 모델 지원: OpenAI, Mistral AI 및 Ollama를 통한 로컬 LLM 통합.
  • 고급 RAG 패턴: naive, advanced, sequential, branching, conditional RAG 흐름 구현.
  • 포괄적인 툴링: 구조화 데이터 추출, 텍스트 분류, 멀티모달 프롬프트 예시.
  • 엔터프라이즈 수준 패턴: 채팅 메모리(JDBC, 벡터 스토어, Spring Security) 및 입출력 가드레일 구현.
  • 데이터 수집 파이프라인: PDF, JSON, Markdown, Tika 등 다양한 포맷을 지원하는 내장 문서 리더와 청크화 및 메타데이터 풍부화를 위한 문서 변환기 제공.