4 / 10 sequenceDiagram v0.0.1 상세

4. 시간 순서 — 런타임 호출

사용자 질문이 들어와서 응답이 나가는 런타임 호출 시퀀스

사용자 질문이 들어와서 응답이 나가는 런타임 호출 시퀀스.

💡 핵심 개념: 데이터 흐름(3번)이 "데이터 어디로 가나"라면, 이 도식은 "누가 언제 누구를 부르나". API 서버·Retriever·LLM은 각각 다른 프로세스/스레드일 수 있어 호출 순서·latency 파악이 중요.
sequenceDiagram actor User as 👤 사용자 participant API as 🖥️ API participant R as 🔍 Retriever participant VDB as 🗄️ Vector DB participant L as 🧠 LLM User->>API: 질문 입력 activate API API->>R: 검색 요청 (질의) activate R R->>R: 질의 임베딩 R->>VDB: top-k 검색 activate VDB VDB-->>R: 관련 chunk들 deactivate VDB R-->>API: 리랭킹된 chunk들 deactivate R API->>L: 컨텍스트 + 질문 activate L L-->>API: 응답 생성 deactivate L API-->>User: 최종 응답 deactivate API

🔧 단계별 latency (typical)

📋 구체적 예시 (토스 FAQ 챗봇):
  1. 사용자 "적금 해지 어떻게 해?" 입력
  2. API 서버(FastAPI)가 인증·rate-limit 체크 → Retriever 호출
  3. Retriever가 질의 임베딩 + Qdrant 검색 (top-10)
  4. Cohere rerank로 top-3 압축
  5. Prompt 조립: "고객 상담사처럼 답해. 매뉴얼: {top3}. 질문: {q}"
  6. GPT-4o 응답 (streaming, 첫 토큰 800ms 후)
  7. SSE로 사용자에게 토큰 단위 전송
⚠️ 흔한 함정:
🛠️ 도식화 도구: sequenceDiagram(mermaid)이 이 패턴의 표준. PlantUML도 가능. 코드 추적은 OpenTelemetry(분산 trace).