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

57 lines
2.0 KiB
Markdown

# 율봇 개발 로드맵
## 현재 구현 상태 (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` 모델 교체 필요.
**난이도**: 높음 | **임팩트**: 높음 (장기 과제)