06bcdb03ac
- 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>
2.0 KiB
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 모델 교체 필요.
난이도: 높음 | 임팩트: 높음 (장기 과제)