Spring AI 소개

Spring AI 소개 (Introduction)

Spring AI는 인공지능 기능을 담은 애플리케이션을 불필요한 복잡성 없이 개발할 수 있게 돕는 프로젝트예요. LangChain이나 LlamaIndex 같은 Python 프로젝트에서 영감을 받았지만 직접 포팅한 것은 아니고요, 다음 세대 Generative AI 애플리케이션이 Python 개발자만의 것이 아니라 여러 언어에서 널리 쓰일 거라는 믿음에서 시작했어요.

출처: 문서

본문

Introduction

Spring AI 프로젝트는 불필요한 복잡성 없이 인공지능 기능을 통합한 애플리케이션 개발을 간소화하는 것을 목표로 해요.

이 프로젝트는 LangChain과 LlamaIndex 같은 유명한 Python 프로젝트에서 영감을 받았지만, Spring AI는 그 프로젝트들의 직접 포팅은 아니에요. 다음 세대 Generative AI 애플리케이션이 Python 개발자들만을 위한 것이 아니라 많은 프로그래밍 언어에 걸쳐 널리 쓰이게 될 것이라는 믿음으로 시작되었어요.

Spring AI는 AI 통합의 근본적인 과제를 해결해요: 엔터프라이즈 데이터와 API를 AI 모델에 연결하기 (Connecting your enterprise Data and APIs with AI Models).

Spring AI는 AI 애플리케이션 개발의 기초가 되는 추상화(abstractions)를 제공해요. 이 추상화들은 여러 구현을 가지므로 최소한의 코드 변경으로 컴포넌트를 쉽게 교체할 수 있어요.

Spring AI는 다음과 같은 기능을 제공해요:

  • Chat, text-to-image, Embedding 모델에 대해 AI provider를 넘나드는 휴대 가능한(Portable) API 지원. 동기(synchronous)와 스트리밍 API 옵션을 모두 지원하고, 모델 고유 기능 접근도 가능해요.

  • Anthropic, OpenAI, Microsoft, Amazon, Google, Ollama 같은 주요 AI Model provider 지원. 지원되는 모델 유형은 다음과 같아요:

  • Apache Cassandra, Azure Vector Search, Chroma, Elasticsearch, GemFire, MariaDB, Milvus, MongoDB Atlas, Neo4j, OpenSearch, Oracle, PostgreSQL/PGVector, Pinecone, Qdrant, Redis, Typesense, Weaviate 같은 주요 Vector Database provider 지원.

  • Vector Store provider를 넘나드는 휴대 가능한 API와, 독특한 SQL 형태의 메타데이터 필터 API를 제공해요.

  • Tools/Function Calling - 모델이 클라이언트 측 도구와 함수의 실행을 요청해서 필요할 때 실시간 정보에 접근하고 행동을 취할 수 있게 해요.

  • Observability - AI 관련 작업에 대한 인사이트를 제공해요.

  • 데이터 엔지니어링을 위한 문서 수집 ETL framework.

  • AI Model Evaluation - 생성된 콘텐츠를 평가하고 할루시네이션 응답을 방지하는 유틸리티.

  • MCP (Model Context Protocol) - MCP 서버를 사용하거나 Spring 기반 서비스를 AI 생태계에 노출하는 AI 애플리케이션을 위한 원활한 통합.

  • AI 모델과 Vector Store를 위한 Spring Boot Auto Configuration과 Starters.

  • ChatClient API - WebClient와 RestClient API와 관용적으로 유사한, AI Chat 모델과 통신하기 위한 플루언트(fluent) API.

  • Advisors API - 반복되는 Generative AI 패턴을 캡슐화하고, LLM에 주고받는 데이터를 변환하며, 다양한 모델과 사용 사례에 걸친 이식성을 제공해요.

  • Chat 대화 메모리와 Retrieval Augmented Generation (RAG) 지원.

이 기능 구성 덕분에 "문서에 대한 Q&A"나 "문서와 채팅하기" 같은 일반적인 사용 사례를 구현할 수 있어요.

개념 섹션은 AI 개념과 Spring AI에서의 표현에 대한 높은 수준의 개요를 제공해요. Getting Started 섹션은 첫 AI 애플리케이션을 만드는 방법을 보여 주고요. 이후 섹션들은 각 컴포넌트와 일반적인 사용 사례를 코드 중심으로 다룹니다.

더 알아보기 (Learn more)