ChinaYiqun/java-rag
요약
이 프로젝트는 Spring Boot 같은 프레임워크 의존성 없이 순수 Java로 구현된 RAG(Retrieval-Augmented Generation) 파이프라인 및 Agent 패턴을 제공합니다. Redis, Elastic Search 등 주요 DB 통합과 다양한 청킹/검색 전략을 지원하여 엔터프라이즈 환경에 적합한 모듈형 아키텍처를 갖추고 있습니다.
핵심 포인트
- 순수 Java 기반으로 구현되어 프레임워크 의존성이 낮음
- Redis, Elastic Search 등 주요 DB 통합 및 다중 턴 대화 지원
- 다양한 청킹(Semantic/Recursive) 및 검색 전략 구성 가능
- OpenAI 스타일의 LLM/Embedding 인터페이스 제공
RAG (Retrieval - Augmented Generation) 프로젝트로, JFinal이나 spring-boot 같은 프레임워크에 의존하지 않고 순수 Java로 구현되었습니다. RAG 파이프라인과 Agent 패턴을 제공하여 엔터프라이즈 레벨 환경에 적응하기 쉽고 2차 개발에 더 용이합니다.
public void demoNaiveRAG() {
NaiveRAG naiveRAG = new NaiveRAG(
new Document("./202X Enterprise Plan.pdf"),
...
-
Redis를 이용한 다중 턴(multi-turn) 대화 읽기 및 쓰기
-
MinIO 파일 저장소
-
Elastic Search 검색 엔진
-
OpenAI 채팅 인터페이스
-
Ollama 채팅 인터페이스
-
다중 턴 대화 기반 채팅
-
Word
-
PPT
-
EXCEL
-
PPT
-
Markdown, HTML
-
고정 크기(Fixed size)
-
문장 분할(Sentence splitting)
-
재귀적 분할(Recursive splitting)
-
의미론적 청킹(Semantic chunking)
-
Jina-Cobert
-
Baichuan
-
검색(Recall)
-
정렬(Sorting)
-
재순위화(Re-ranking)
-
고급 RAG (Advanced RAG)
-
모듈형 RAG (Modular RAG)
-
MASExample.java
-
RoundRobinLoadBalancer
-
WeightedRandomLoadBalancer
설명
├── agent
├── chunk
├── constant
...
-
코드 복제 (Clone the code)
git clone https://github.com/ChinaYiqun/java-rag.git -
프로젝트 디렉토리로 이동
cd java-rag -
Maven 의존성 구성
mvn clean install -
관련 데이터베이스 생성
sysctl -w vm.max_map_count=262144
# Docker 네트워크 생성
docker network create elastic
...
-
자세한 내용은 링크를 참조하세요.
-
OpenAI 스타일의 LLM/Embedding 인터페이스
-
pom.xml (Maven)을 이용한 매우 간단한 의존성 관리
-
다중 사용자 및 다중 지식 기반 관리를 지원합니다.
-
검색 전략의 자유로운 구성: 다중 채널 검색(multi-channel recall), 거친 정렬(rough sorting), 미세 정렬(fine sorting), 재순위화(re-ranking)
-
파일 청킹의 자유로운 구성: 고정 크기, 문장 분할, 재귀적 분할, 의미론적 청킹
-
Apache POI을 이용한 주류 파일 파싱 지원
-
주요 데이터베이스 통합: Elastic Search, Redis, Mysql, MinIO
-
Nacos를 통한 높은 사용자 정의 구성
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Tools의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기