ARCHITECTURE
구성도.
프로젝트의 검색·도구 연결과 시스템 설계를 확인합니다.
LLM 연결 구조
ARCHITECTURE
LLM 예상 연결 구성도
구성 요소의 역할과 데이터 흐름을 확인할 수 있습니다.
구성도 텍스트 설명
- 화면 → FastAPI: 요청 검증과 실행 상태 관리.
- FastAPI ↔ LLM: 질문·검색 근거·도구 정의를 전달하고 답변 또는 도구 호출 요청을 받습니다.
- 서버 실행 계층: 허용 도구와 인자·권한을 검증하고 RAG·API·DB·웹 검색을 실행합니다. 모델이 직접 DB나 API 자격증명에 접근하지 않습니다.
- RAG는 문서에서 근거를 검색하고, API·DB·웹 검색은 각각 필요한 데이터를 가져옵니다. 모든 요청이 네 가지 연결을 모두 사용할 필요는 없습니다.
- 결과는 서버를 거쳐 LLM에 전달하고, 답변·출처·조회 조건을 화면에 반환하는 설계입니다.
- 현재는 UI 미리보기입니다. 모델·서버·검색·도구의 실제 연결은 예정이며 공급자는 미선정입니다.
시스템 구성도
ARCHITECTURE
전체 시스템 구성도
구성 요소의 역할과 데이터 흐름을 확인할 수 있습니다.
구성도 텍스트 설명
- 직접 업로드 문서는 브라우저에서 추출·청킹·MPNet 768차원 임베딩 후 Next.js의 보안 API를 거쳐 Supabase에 저장합니다. 업로드 전처리 부하는 방문자 브라우저가 맡습니다.
- 질문 원문은 Vercel API에서 세션 확인 후 인증된 Cloudflare Tunnel을 거쳐 제작자 PC의 Python FastAPI로 전달됩니다. Python이 PC MPNet 임베딩 어댑터를 호출하고 LangChain BaseRetriever가 Supabase의 세션 검증 RPC를 실행합니다.
- 기본 RAG의 유사도 임계값과 키워드 RAG의 BM25Retriever·EnsembleRetriever(RRF), 근거 선정, 답변 프롬프트·출력 처리는 Python RAG 서비스가 조정합니다.
- Supabase PostgreSQL/pgvector가 유일한 문서 데이터베이스입니다. 쿠키 UUID별 문서 권한은 DB RPC에서 검증합니다.
- 답변 작업은 Python FastAPI 프로세스의 Redis FIFO 워커가 직접 소비합니다. Python RAG 파이프라인이 Cross-Encoder와 Ollama Gemma 4 어댑터를 호출해 답변합니다. GTX 1060 3GB에서 Gemma 4 언어 모델 36개 레이어는 CUDA GPU로 처리합니다. 다중모달 비전 인코더는 CPU backend입니다. Next.js는 세션·쿠키와 DB 비밀값을 지키는 얇은 API 경계로 남고, Redis는 대기열이며 문서 저장소가 아닙니다.
- Supabase 비밀 키는 서버 환경에만 두고, 브라우저에 내려보내지 않습니다.