Files
youlbot/docs/ROADMAP.md
T
shinalok 06bcdb03ac Implement Phase 4~14: LangGraph Agent, RAG pipeline, Gradio Web UI, voice interface
- Upgrade LLM to Qwen3-14B-4bit with Thinking mode (MlxChatModel as LangChain BaseChatModel)
- Add LangGraph ReAct agent with tool calling loop (search_documents, web_search, get_current_date, remember/recall_user_info)
- Add RAG pipeline: BAAI/bge-m3 embeddings + Qdrant vector store + semantic chunking (SemanticSplitter via cosine similarity)
- Replace fixed-size RecursiveCharacterTextSplitter with meaning-based SemanticSplitter (numpy only, no extra deps)
- Add Gradio Web UI (app.py): chat, document ingestion, document management tabs
- Add multi-user support (user_id isolation in DB + per-user agent cache + dropdown selector)
- Add conversation history restore from MySQL on agent init (Phase 11)
- Add UserProfileRepository for persistent user profile (remember/recall tools)
- Add thread-local DB connections to fix pymysql thread-safety with LangGraph ToolNode
- Add Phase 14 voice interface: Whisper STT (microphone → text) + macOS TTS (say -v Yuna)
- Enforce search_documents-first policy in system prompt and tool descriptions
- Update ROADMAP2.md: Phase 14 완료, Phase 13 청킹 부분 완료

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-27 14:06:22 +09:00

2.0 KiB

율봇 개발 로드맵

현재 구현 상태 (Phase 1~7 완료)

영역 현황
LLM Qwen2.5-7B-Instruct-4bit (MLX, Apple Silicon)
Agent LangGraph ReAct + Tool Calling + Thinking 모드
RAG Qdrant + BAAI/bge-m3 임베딩
Tools search_documents, get_current_date, web_search, remember_user_info, recall_user_info (5개)
UI Gradio Web UI (app.py) + CLI (main.py)
Memory LangGraph MemorySaver (세션 내) + MySQL (대화 영구 저장) + td_user_profile (장기 사용자 메모리)
Streaming 비동기 토큰 스트리밍 + <think> 블록 파싱
Tracing LangSmith 트레이싱 설정 완료 (.env에서 활성화 가능)

Phase 4 — Web UI (Gradio)

  • app.py — Gradio ChatInterface + stream_response() 연결
  • PDF/TXT 파일 업로드 → 인제스트 버튼
  • 사고 과정(thinking) 표시 토글
  • 대화 초기화 버튼

Phase 5 — 장기 사용자 메모리

  • MySQL td_user_profile 테이블 + Tool 2개 등록
  • remember_user_info(key, value) — 영구 저장 (아이 생년, 재정 목표 등)
  • recall_user_info(key) — 이전 저장 정보 조회
  • UserProfileRepository (services/db/user_profile_repository.py)

Phase 6 — 실시간 웹 검색 Tool

  • web_search(query) — DuckDuckGo (무료, API 키 불필요)
  • 최신 금리, 육아 정책, 뉴스 등 실시간 정보 검색 가능

Phase 7 — LangSmith 트레이싱

  • .env에서 LANGCHAIN_TRACING_V2=true + LANGCHAIN_API_KEY 설정으로 활성화
  • Tool Call 실패 원인, RAG 청크 내용, 에이전트 루프 흐름 시각화 가능

Phase 8 — 멀티모달 이미지 이해 ★☆☆

배경: 이유식 사진 → "이 재료로 만들 수 있는 이유식은?", 금융 서류 사진 → 내용 분석 등 이미지 기반 질문 처리.

제약: Qwen2.5-7B는 이미지 미지원 → mlx-community/Qwen2.5-VL-7B-Instruct-4bit 모델 교체 필요.

난이도: 높음 | 임팩트: 높음 (장기 과제)