본문으로 건너뛰기

트렌딩 - GitHub 인기 레포 & HuggingFace 모델

nageoffer/ragent

Java0 / 0

Java로 문서 입고부터 다중 검색, MCP 호출과 추적까지 연결한 Agentic RAG 플랫폼입니다.

TL;DR

Ragent는 특정 IDE 플러그인이나 단일 SDK가 아니라 Spring 생태계의 생산 지향 Java Agentic RAG 애플리케이션 플랫폼입니다. 문서 파싱과 Pipeline 입고부터 질의 재작성, 의도 라우팅, 벡터·키워드·지식 그래프·웹 검색, Rerank, MCP 도구 호출과 SSE 답변까지 한 흐름으로 묶습니다. 모델 후보 라우팅과 Circuit Breaker, Redis 동시성 제어, 세션 요약, 출처 인용, Trace와 관리자 콘솔을 포함해 실제 서비스 운영에서 필요한 경계까지 다룹니다. Java로 AI 애플리케이션 구조를 학습하거나 검색·모델·저장소를 교체하며 확장할 개발자에게 적합하지만, 여러 외부 인프라를 직접 구성해야 하고 공개 성능 수치는 없습니다.

핵심 포인트

  • Ragent는 단순한 RAG 예제가 아니라 Spring 생태계에서 동작하는 생산 지향 Java AI 애플리케이션 플랫폼입니다. 문서 입고, 질의 이해, 검색, 답변 생성, 출처 표시와 운영 추적을 하나의 모듈형 단일 애플리케이션으로 연결합니다. Java 기반으로 Agentic RAG의 전체 실행 경로를 학습하거나 확장하려는 개발자에게 적합합니다.
  • 질의 처리는 벡터, Elasticsearch 키워드, LightRAG 지식 그래프, You.com 검색을 병렬 실행한 뒤 중복 제거, RRF 융합, Rerank와 메타데이터 보강을 거칩니다. 문제 재작성과 분할, 트리형 의도 인식, 다중 지식베이스 라우팅이 검색 전에 적용되어 짧거나 모호한 질문도 보완합니다. 단일 Vector TopK보다 검색 품질과 도메인별 라우팅을 세밀하게 조정할 수 있지만 검색 인프라 구성이 복잡합니다.
  • 모델 호출은 여러 후보 모델, 첫 토큰 지연 감지, 삼상 Circuit Breaker와 자동 대체 경로를 사용해 특정 공급자의 장애를 격리합니다. Redis ZSET 기반 공정 대기열, Lua 원자 점유, 만료 Semaphore와 Pub/Sub 재개로 동시 요청을 제어하고, SSE에서는 전역 타임아웃과 클라이언트 연결 종료 취소를 처리합니다. 모델 비용과 장애 대응이 중요한 서비스의 참고 구현으로 유용하지만 운영하려면 Redis와 모델 공급자별 설정을 직접 준비해야 합니다.
  • 확장 지점은 ChatClient, EmbeddingClient, RerankClient, SearchChannel, IngestionNode, DocumentFetcher와 MCP 도구 규격으로 분리되어 있습니다. 새 구현을 Spring Bean과 설정에 연결하면 기존 추적, 로깅, 재시도와 관리 흐름을 재사용할 수 있으며 PostgreSQL과 pgvector, Milvus, Redis, RocketMQ, S3 호환 저장소가 구성에 포함됩니다. Apache-2.0 라이선스와 React 18 관리 콘솔, 84개 @Test 지점이 있어 소스 학습과 2차 개발에는 강점이 있지만 공개 성능 벤치마크는 README에서 확인되지 않습니다.

이미지 분석

Frontend, API와 Streaming, RAG Pipeline, Platform Services, Infra-AI, Storage와 Infrastructure가 계층별로 연결된 Ragent 전체 구성도입니다.
상단에는 React 18, TypeScript, Vite 5, Tailwind CSS, Radix UI, Zustand와 React Router가 배치되고, 중간에는 RESTful API와 SSE 스트리밍, Sa-Token 인증이 놓여 있습니다. RAG 단계는 세션 기억, 질의 재작성과 분할, 의도 분류, 다중 검색, Prompt 조립을 거치며 하단에서 SiliconFlow, Ollama, 임베딩과 Rerank, MCP 도구, PostgreSQL과 pgvector, Milvus, Redis, RocketMQ, S3로 이어집니다.
원천 데이터 수집부터 Chunk 분할, Embedding, 인덱싱, 검색과 LLM 답변 생성까지 RAG의 6단계 처리 흐름을 나타낸 도식입니다.
문서는 먼저 작은 Chunk로 나뉘고 각 Chunk가 벡터로 변환되어 Vector Index에 저장됩니다. 사용자 Query는 인덱스에서 관련 Chunk를 점수와 함께 검색한 뒤 검색 문맥과 결합되어 LLM의 답변 생성 입력으로 전달되며, 하단 수식은 이 순서를 Ingest, Chunk, Embed, Index, Retrieve, Generate로 정리합니다.
frontend와 mcp-server가 bootstrap을 거쳐 framework와 infra-ai를 사용하고 resources에 연결되는 계층 및 기술 선택표입니다.
접근 계층의 frontend와 mcp-server는 REST API를 통해 bootstrap으로 들어가며, bootstrap은 framework와 infra-ai를 조립하고 두 모듈은 Docker Compose, S3와 설정으로 구성된 resources를 사용합니다. 표에는 Java 17, Spring Boot 3.5.7, MyBatis Plus, React 18, Vite, TypeScript, MySQL, Milvus 2.6, PGVector, Redis와 Redisson, RocketMQ 5.x, Apache Tika 3.2, Sa-Token과 Spotless가 정리되어 있습니다.
StreamChatPipeline의 세션 기억, 질의 재작성과 분할, 의도 분석, 증거 인용, 시스템 직답, 다중 검색, Prompt 편집과 스트림 출력을 연결한 실행 흐름입니다.
초기 단계에서 대화 이력과 요약을 불러오고 질의를 재작성하거나 분할한 뒤 의도를 판별하며, 필요하면 증거 인용과 시스템 직답을 거쳐 지식베이스 검색과 MCP 도구 호출을 병렬 처리합니다. 이후 Prompt를 편집해 LLM 서비스 게이트웨이로 보내고 사고 과정, 본문, Token과 SSE 이벤트를 스트리밍하며, 별도의 단축 경로는 검색 결과가 비어 있거나 즉시 응답이 가능한 경우 빠른 반환을 지원합니다.

3.6k

Stars

728

Forks

+204

Trending

0

조회수

3.6k watchers49 open issuesApache License 2.0

관련 토론

아직 관련 토론이 없습니다.

댓글

댓글을 작성하려면 로그인이 필요합니다.