우와한 개발자

[Spring AI] AI Agent 아키텍처 설계하기 - 연구자 지원 AI Agent 시스템 아키텍처

by 우와한개발자

1. 시스템 개요

  • 연구자가 논문 PDF를 업로드하면 AI가 내용을 분석하고 질문에 답변하는 시스템
  • Notion과 연동해 회의록, 연구일지 등을 조회하고 수정할 수 있다
  • 질문 입력 및 스트리밍 답변 수신, 논문 PDF 업로드, 대화 이력 조회 세 가지 기능을 제공한다

 

2. 전체 아키텍처

 

3. 주요 컴포넌트

1) Spring Boot WAS

  • WebFlux 기반 비동기/논블로킹 처리
  • JWT 인증 필터로 토큰 검증
  • SSE 스트리밍으로 AI 응답을 실시간 전달

 

2) Spring AI

  • ChatClient : OpenAI API 호출, 프롬프트 증강, Tool 실행
  • ChatMemory : MongoDB에 대화 이력 저장
  • VectorStore : PGVector와 연동해 문서 유사도 검색 (RAG)
  • Tool Calling : Notion MCP 서버와 연동해 회의록/연구일지 조회

 

3) Python AI Server

  • FastAPI 기반으로 문서 처리 요청을 수신한다
  • PDF 파싱, OCR, 텍스트 전처리, 청킹, 임베딩 저장까지 처리한다
  • 처리 결과를 Callback으로 Spring 서버에 전달한다

 

4) Notion MCP 서버

  • JSON-RPC 2.0 요청을 수신하고 파싱한다
  • Notion API 토큰 인증 후 회의록, 연구일지 등 페이지를 조회한다

 

5) 데이터베이스

DB 역할
PGVector 문서 청크/임베딩 저장, Top-k 유사도 검색
PostgreSQL 사용자 정보, 문서 메타데이터 저장
MongoDB 대화 내용 저장

 

4. 기술 스택

 

5. 통신 방식

구간 방식
Client → Spring Boot HTTP (비동기)
Spring Boot → OpenAI HTTP (비동기)
Spring Boot → Python AI Server HTTP (비동기)
Spring Boot → Notion MCP 서버 HTTP (동기)
Spring Boot → DB 동기

 

6. 주요 흐름

 

블로그의 정보

우와한개발자 님의 블로그

우와한개발자

활동하기