Introduction
Spring AI 프로젝트는 복잡성을 최소화하여 AI 기능을 통합한 애플리케이션 개발을 간소화하는 것을 목표로 합니다.
이 프로젝트는 LangChain 및 LlamaIndex와 같은 주목할 가치가 있는 Python 프로젝트에서 영감을 받았지만, Spring AI는 이러한 프로젝트의 직접적인 포팅이 아닙니다. 이 프로젝트는 차세대 생성적 AI 애플리케이션이 Python 개발자뿐만 아니라 여러 프로그래밍 언어에서 보편적으로 사용될 것이라는 믿음으로 개발되었습니다.
Spring AI는 AI 통합의 근본적인 도전 과제를 해결하고자 합니다: 기업의 데이터와 API를 AI 모델에 연결하는 것입니다.
인터랙티브
Spring AI는 AI 애플리케이션 개발의 기초가 되는 추상화를 제공합니다. 이러한 추상화는 여러 구현을 가지고 있어 최소한의 코드 변경으로 구성 요소를 쉽게 교체할 수 있습니다.
Spring AI는 다음과 같은 기능을 제공합니다:
-
Chat, text-to-image 및 Embedding 모델을 위한 AI 제공업체 간의 portable API 지원. 동기식 및 스트리밍 API 옵션 모두 지원됩니다. 모델별 기능에 대한 접근도 가능합니다.
-
Anthropic, OpenAI, Microsoft, Amazon, Google 및 Ollama와 같은 모든 주요 AI 모델 제공업체 지원. 지원되는 모델 유형은 다음과 같습니다:
-
Chat Completion Chat Completion
-
Embedding Embedding
-
Text to Image Text to Image
-
Audio Transcription Audio Transcription
-
Text to Speech Text to Speech
-
Moderation Moderation
구조화된 출력
- AI 모델 출력과 POJO 매핑.
벡터 데이터베이스 제공자
Apache Cassandra, Azure Cosmos DB, Azure Vector Search, Chroma, Elasticsearch, GemFire, Milvus, MongoDB Atlas, Neo4j, OpenSearch, Oracle, PostgreSQL/PGVector, PineCone, Qdrant, Redis, SAP Hana, Typesense 및 Weaviate와 같은 모든 주요 벡터 데이터베이스 제공자에 대한 지원.
벡터 스토어 제공자 간의 휴대 가능한 API, 새로운 SQL 유사 메타데이터 필터 API 포함.
도구/함수 호출
- 모델이 클라이언트 측 도구 및 함수의 실행을 요청할 수 있도록 하여 필요한 실시간 정보에 접근할 수 있게 합니다.
관찰 가능성
- AI 관련 작업에 대한 통찰력을 제공합니다.
ETL 프레임워크
데이터 엔지니어링을 위한 문서 주입 ETL 프레임워크.
AI 모델 평가
- 생성된 콘텐츠를 평가하고 환각 응답으로부터 보호하는 데 도움이 되는 유틸리티.
Spring Boot 자동 구성
AI 모델 및 벡터 스토어를 위한 Spring Boot 자동 구성 및 스타터.
ChatClient API
- AI 채팅 모델과 통신하기 위한 유창한 API로, WebClient 및 RestClient API와 유사한 관용구를 사용합니다.
Advisors API
- 반복적인 생성 AI 패턴을 캡슐화하고, 언어 모델(LLM) 간에 전송되는 데이터를 변환하며, 다양한 모델 및 사용 사례 간의 이식성을 제공합니다. 지원하는 Chat Conversation Memory 및 Retrieval Augmented Generation (RAG).
이 기능 세트를 사용하면 "문서에 대한 Q&A" 또는 "문서와의 채팅"과 같은 일반적인 사용 사례를 구현할 수 있습니다.
개념 섹션은 AI 개념과 Spring AI에서의 표현에 대한 높은 수준의 개요를 제공합니다.
시작하기 섹션에서는 첫 번째 AI 애플리케이션을 만드는 방법을 보여줍니다. 이후 섹션에서는 각 구성 요소와 코드 중심의 접근 방식으로 일반적인 사용 사례를 깊이 있게 다룹니다.