Commit 7ad768a9 authored by Vũ Hoàng Anh's avatar Vũ Hoàng Anh

chore: sync fashion rules to outfit rules and add cookbook doing plan

parent 7c58b324
# 🚀 DOING: Canifa AI Platform Cookbook
## 📌 Context
- **Idea:** Tạo trang Cookbook documentation kiểu Anthropic Claude Cookbooks, tích hợp trực tiếp vào Platform sidebar
- **Status:** 🚧 In Progress
- **Skills:** `fireworks-tech-graph` (SVG diagrams), `acquire-codebase-knowledge` (scan codebase), `fastapi-pro` (đọc hiểu API), `frontend-developer` (UI), `high-end-visual-design` (styling)
## 🎯 Goal
Tạo trang `static/cookbook/` hiển thị documentation A-Z cho toàn bộ 36+ module của Canifa AI Platform, mỗi module có sơ đồ SVG, bảng API endpoints, code mẫu, và hướng dẫn step-by-step.
## ⚠️ Active Trade-offs
- Data documentation hardcode trong JS/JSON (không cần backend route mới)
- SVG diagrams gen offline bằng `fireworks-tech-graph`, lưu file tĩnh vào `static/cookbook/diagrams/`
- Không dùng Jupyter Notebook (.ipynb) như Anthropic — dùng HTML/CSS/JS thuần cho nhất quán với platform
## 🛠 Impact & Files Touched
| File | Change | Blast Radius |
|------|--------|--------------|
| `static/cookbook/cookbook.html` | ADD | 0 (trang mới) |
| `static/cookbook/cookbook.css` | ADD | 0 |
| `static/cookbook/cookbook.js` | ADD | 0 |
| `static/cookbook/data/` | ADD | 0 (JSON data) |
| `static/cookbook/diagrams/` | ADD | 0 (SVG files) |
| `static/main.html` | MODIFY | Thêm 1 nav item sidebar |
**Risk:** Low (hoàn toàn additive, không modify code cũ)
---
## 📋 Execution Checklist
---
### Phase 1: Scaffold & Khung giao diện (~2h)
- [x] Task 1.1: Tạo folder `static/cookbook/` + `diagrams/` + `data/`
- [x] Task 1.2: Tạo `cookbook.html` — layout 2 cột (sidebar trái = mục lục, phải = nội dung)
- [x] Task 1.3: Tạo `cookbook.css` — style premium dark theme nhất quán với platform (dùng `theme.css` variables)
- [x] Task 1.4: Tạo `cookbook.js` — logic render, navigation giữa các recipe, search/filter
- [x] Task 1.5: Thêm nav item `Cookbook` vào sidebar trong `main.html` (nhóm Workspace, icon 📖 dạng SVG)
- [x] Task 1.6: Tạo `data/registry.json` — file manifest chứa danh sách tất cả recipes, phân nhóm
- [x] Task 1.7: Implement hàm `loadRecipe(id)` trong JS — đọc JSON data và render ra HTML
- [x] Task 1.8: Implement sidebar mục lục — collapsible sections theo 6 nhóm (Architecture, AI Agents, Product, Social, Monitoring, Workspace)
- [x] Task 1.9: Implement search bar — filter recipes theo keyword
- [x] Task 1.10: Implement breadcrumb navigation (Cookbook > Nhóm > Recipe)
- [ ] Task 1.11: Smoke test — mở `localhost:5000/static/main.html?page=cookbook/cookbook.html` verify khung hiển thị đúng
---
### Phase 2: Sơ đồ tổng quan Platform (~1.5h)
> **Skill:** `fireworks-tech-graph` — Style 1 (Flat Icon) hoặc Style 4 (Notion Clean)
### Phase 2: Sơ đồ tổng quan Platform (~1.5h)
- [x] Task 2.1: Đọc `main_router.py` — liệt kê tất cả 33 API module, phân nhóm theo comment trong code
- [x] Task 2.2: Vẽ sơ đồ **Platform Architecture Overview** (Architecture Diagram) — 5 layer: Client → Sidebar/iframe → FastAPI Router → API Modules → Database/External
- [x] Task 2.3: Validate SVG bằng `rsvg-convert` → export PNG 1920px (Bỏ qua PNG do thiếu tool)
- [x] Task 2.4: Lưu `diagrams/platform-architecture.svg` + `.png`
- [x] Task 2.5: Vẽ sơ đồ **Database Layer** (Data Flow Diagram) — SQLite Mock ↔ Pool Wrapper ↔ StarRocks/Postgres
- [x] Task 2.6: Validate + lưu `diagrams/database-layer.svg`
- [x] Task 2.7: Vẽ sơ đồ **Auth & Routing Flow** (Flowchart) — login → JWT → auth.js → main.html → iframe load
- [x] Task 2.8: Validate + lưu `diagrams/auth-routing.svg`
- [x] Task 2.9: Tạo `data/01-architecture.json` — chứa nội dung recipe: overview, endpoints, diagrams paths, code samples
---
### Phase 3: Cookbook — Nhóm Core AI & Chatbot (~2h)
#### 3A: Chatbot Core
- [x] Task 3.1: Đọc `api/common/chatbot_route.py` — liệt kê tất cả endpoints (POST /chat, streaming, etc.)
- [x] Task 3.2: Đọc `api/common/n8n_api_route.py` — liệt kê endpoints n8n webhook
- [x] Task 3.3: Vẽ sơ đồ **Chatbot Pipeline** (Data Flow) — User → API → n8n Agent → LLM → Tool calls → Response
- [x] Task 3.4: Validate + lưu `diagrams/chatbot-pipeline.svg`
- [x] Task 3.5: Tạo `data/02-chatbot-core.json` — endpoints, request/response samples, mô tả luồng
#### 3B: Prompt & Tool System
- [x] Task 3.6: Đọc `api/common/prompt_route.py` + `tool_prompt_route.py` — liệt kê CRUD prompt endpoints
- [x] Task 3.7: Vẽ sơ đồ **Prompt Management Flow** (Flowchart) — Admin CRUD → DB → n8n fetch → LLM inject
- [x] Task 3.8: Validate + lưu `diagrams/prompt-management.svg`
- [x] Task 3.9: Tạo `data/03-prompt-system.json`
#### 3C: Feedback & Diagram Agent
- [x] Task 3.10: Đọc `api/common/feedback_route.py` + `api/feedback_agent/` — liệt kê endpoints
- [x] Task 3.11: Đọc `api/diagram_agent/ai_diagram_route.py` — liệt kê endpoints
- [x] Task 3.12: Vẽ sơ đồ **Feedback Classification Pipeline** (Data Flow) — User reaction → API → GPT-4.1-mini classifier → Langfuse score
- [x] Task 3.13: Validate + lưu `diagrams/feedback-pipeline.svg`
- [x] Task 3.14: Tạo `data/04-feedback-diagram.json`
---
### Phase 4: Cookbook — Nhóm Product & Fashion (~2h)
#### 4A: Ultra Description
- [x] Task 4.1: Đọc `api/product_desc/product_desc_route.py` + `n8n_desc.py` + `bulk_ops_route.py` — liệt kê endpoints
- [x] Task 4.2: Đọc `common/ultra_desc_db.py` — hiểu DB schema (ultra_descriptions table)
- [x] Task 4.3: Vẽ sơ đồ **Ultra Description Pipeline** (Data Flow) — Magento → StarRocks → AI Agent → ultra_descriptions → Chatbot context
- [x] Task 4.4: Validate + lưu `diagrams/ultra-desc-pipeline.svg`
- [x] Task 4.5: Tạo `data/05-ultra-description.json`
#### 4B: Fashion Matches & Outfit Logic
- [x] Task 4.6: Đọc `api/fashion_matches/router.py` + `simulator.py` — liệt kê endpoints
- [x] Task 4.7: Đọc `chatbot_fashion_rules` table schema
- [x] Task 4.8: Vẽ sơ đồ **Fashion Matching Engine** (Agent Architecture) — Query → Rule engine → Category mapping → Product filter → Outfit result
- [x] Task 4.9: Validate + lưu `diagrams/fashion-matches.svg`
- [x] Task 4.10: Tạo `data/06-fashion-matches.json`
#### 4C: Product Performance & Stock
- [x] Task 4.11: Đọc `api/product/product_route.py` + `stock_route.py` + `canifa_product_api.py` — liệt kê endpoints
- [x] Task 4.12: Vẽ sơ đồ **Stock Cache Architecture** (Architecture Diagram) — Magento API → Cache layer → Dashboard display
- [x] Task 4.13: Validate + lưu `diagrams/stock-cache.svg`
- [x] Task 4.14: Tạo `data/07-product-stock.json`
---
### Phase 5: Cookbook — Nhóm Search & AI Tools (~2h)
#### 5A: Lead Search Agent
- [x] Task 5.1: Đọc `api/lead_flow/lead_flow_route.py` + `simulate_route.py` — liệt kê endpoints
- [x] Task 5.2: Đọc `agent/lead_stage_agent/graph.py` + `lead_search_tool.py` — hiểu LangGraph flow
- [x] Task 5.3: Vẽ sơ đồ **Lead Search Agent Graph** (Agent Architecture / State Machine)
- [x] Task 5.4: Validate + lưu `diagrams/lead-search-agent.svg`
- [x] Task 5.5: Tạo `data/08-lead-search.json`
#### 5B: Image Search Agent
- [x] Task 5.6: Đọc `api/image_search/ai_image_search.py` + `agent/image_search_agent/` — liệt kê endpoints
- [x] Task 5.7: Vẽ sơ đồ **Image Search Flow** (Data Flow) — Upload image → Embedding → Vector search → Results
- [x] Task 5.8: Validate + lưu `diagrams/image-search.svg`
- [x] Task 5.9: Tạo `data/09-image-search.json`
#### 5C: SKU Search & Store Search
- [x] Task 5.10: Đọc `api/sku_search/ai_answer_sku.py` + `api/store_search/ai_store_search.py`
- [x] Task 5.11: Vẽ sơ đồ **SKU & Store Search** (Flowchart) — Query → Parse SKU → DB lookup → AI answer
- [x] Task 5.12: Validate + lưu `diagrams/sku-store-search.svg`
- [x] Task 5.13: Tạo `data/10-sku-store.json`
#### 5D: Text-to-SQL & AI Data Analyst
- [x] Task 5.14: Đọc `api/api_sql/text_to_sql_route.py` + `sql_chat_route.py` + `ai_sql_trace_route.py`
- [x] Task 5.15: Đọc `api/api_sql/user_insight_route.py`
- [x] Task 5.16: Vẽ sơ đồ **Text-to-SQL Pipeline** (Data Flow) — Natural language → LLM → SQL generation → StarRocks execute → Result format
- [x] Task 5.17: Validate + lưu `diagrams/text-to-sql.svg`
- [x] Task 5.18: Tạo `data/11-text-to-sql.json`
---
### Phase 6: Cookbook — Nhóm Social Content (~1.5h)
- [x] Task 6.1: Đọc `api/social_inbox/social_inbox_route.py` — liệt kê endpoints
- [x] Task 6.2: Đọc `api/content_approval/content_approval_route.py` + `templates_route.py`
- [x] Task 6.3: Đọc `api/media_library/media_route.py`
- [x] Task 6.4: Đọc `api/common/queue_route.py` + `notification_route.py`
- [x] Task 6.5: Vẽ sơ đồ **Social Content Pipeline** (Data Flow) — Composer → Approval → Calendar → Publish → Inbox monitor
- [x] Task 6.6: Validate + lưu `diagrams/social-content-pipeline.svg`
- [x] Task 6.7: Tạo `data/12-social-inbox.json`
- [x] Task 6.8: Tạo `data/13-content-composer.json`
- [x] Task 6.9: Tạo `data/14-content-approval.json`
- [x] Task 6.10: Tạo `data/15-media-library.json`
---
### Phase 7: Cookbook — Nhóm Monitoring & Testing (~1.5h)
#### 7A: Realtime Monitor & Live Dashboard
- [x] Task 7.1: Đọc `api/live_monitor/live_monitor_route.py` — liệt kê endpoints (WebSocket, polling)
- [x] Task 7.2: Vẽ sơ đồ **Realtime Monitor Architecture** (Architecture Diagram) — WebSocket → Event stream → Dashboard widgets
- [x] Task 7.3: Validate + lưu `diagrams/realtime-monitor.svg`
- [x] Task 7.4: Tạo `data/16-realtime-monitor.json`
#### 7B: Testing Suite
- [x] Task 7.5: Đọc `api/regression_test/regression_test_route.py`
- [x] Task 7.6: Đọc `api/stress_test/stress_test_route.py`
- [x] Task 7.7: Đọc `api/user_simulator/user_simulator_route.py`
- [x] Task 7.8: Đọc `api/reaction_simulator/reaction_simulator_route.py`
- [x] Task 7.9: Vẽ sơ đồ **Testing & Simulation Suite** (Architecture Diagram) — 4 tools: Regression, Stress, User Sim, Reaction Sim
- [x] Task 7.10: Validate + lưu `diagrams/testing-suite.svg`
- [x] Task 7.11: Tạo `data/17-regression-test.json`
- [x] Task 7.12: Tạo `data/18-stress-test.json`
- [x] Task 7.13: Tạo `data/19-user-simulator.json`
- [x] Task 7.14: Tạo `data/20-reaction-simulator.json`
---
### Phase 8: Cookbook — Nhóm Workspace & Tools (~1.5h)
- [ ] Task 8.1: Đọc `api/common/faq_route.py` + `common/match_algo.py` — FAQ CRUD + BM25 Simulator
- [ ] Task 8.2: Đọc `api/common/dashboard_route.py` — Dashboard links, settings
- [ ] Task 8.3: Đọc `api/prompt_optimizer/prompt_optimizer_route.py`
- [ ] Task 8.4: Đọc `api/experiment_log/experiment_log_route.py` + `experiment_links_route.py`
- [ ] Task 8.5: Đọc `api/roadmap/roadmap_flow_route.py`
- [ ] Task 8.6: Đọc `api/cache/cache_route.py`
- [ ] Task 8.7: Đọc `api/limit/limit_route.py`
- [ ] Task 8.8: Vẽ sơ đồ **FAQ Manager & BM25 Hybrid Search** (Flowchart) — User query → Remove diacritics → BM25 score → Fuzzy match → Weighted merge → Top results
- Skill: `fireworks-tech-graph`, diagram type: Flowchart
- [ ] Task 8.9: Validate + lưu `diagrams/faq-bm25-search.svg`
- [ ] Task 8.10: Tạo `data/21-faq-manager.json`
- [ ] Task 8.11: Tạo `data/22-prompt-optimizer.json`
- [ ] Task 8.12: Tạo `data/23-experiment-log.json`
- [ ] Task 8.13: Tạo `data/24-cache-rate-limit.json`
---
### Phase 9: Cookbook — Nhóm History & Auth (~1h)
- [ ] Task 9.1: Đọc `api/history/check_history_route.py` + `conservation_route.py`
- [ ] Task 9.2: Đọc `api/merge_history/merge_history_route.py`
- [ ] Task 9.3: Đọc `api/common/auth_route.py` + `api/mock_fe/mock_auth_route.py`
- [ ] Task 9.4: Vẽ sơ đồ **History & Session Management** (Data Flow) — Chat session → History DB → Merge → Export
- [ ] Task 9.5: Validate + lưu `diagrams/history-session.svg`
- [ ] Task 9.6: Tạo `data/25-history.json`
- [ ] Task 9.7: Tạo `data/26-auth.json`
---
### Phase 10: Polish UI & Final Integration (~1.5h)
- [ ] Task 10.1: Implement code syntax highlighting trong recipe view (dùng Prism.js CDN hoặc custom highlight)
- [ ] Task 10.2: Implement copy-to-clipboard cho code blocks (cURL, Python snippets)
- [ ] Task 10.3: Implement SVG diagram viewer — click để zoom full screen
- [ ] Task 10.4: Implement dark/light mode toggle cho cookbook (nhất quán với platform theme)
- [ ] Task 10.5: Implement responsive layout — mobile friendly (sidebar collapse thành hamburger)
- [ ] Task 10.6: Implement "Tải DOCX" button — dùng `generate_docx.py` pattern để export recipe ra file .docx
- [ ] Task 10.7: Implement progress indicator — hiện bao nhiêu % recipes đã đọc (localStorage)
- [ ] Task 10.8: Implement "Quay lại đầu trang" floating button
- [ ] Task 10.9: Thêm meta tags SEO cho cookbook page
- [ ] Task 10.10: Final smoke test — mở tất cả 26 recipes, verify diagrams load, code blocks render, links hoạt động
---
### Phase 11: Commit & Deploy (~15min)
- [ ] Task 11.1: Dọn dẹp file tạm (nếu có)
- [ ] Task 11.2: `git add . && git commit -m "feat: canifa ai platform cookbook — full documentation site"`
- [ ] Task 11.3: `git push origin HEAD`
- [ ] Task 11.4: Verify trên GitLab — tất cả files đã lên
---
## 📊 Tổng kết khối lượng
| Hạng mục | Số lượng |
|----------|----------|
| Tổng tasks | **96 tasks** |
| SVG Diagrams cần vẽ (fireworks-tech-graph) | **15 diagrams** |
| JSON data files | **26 recipes** |
| Frontend files mới | **3 files** (html, css, js) |
| Files modify | **1 file** (main.html) |
## 🔄 Sub-Doings
_None yet_
## ✅ Completion Gate
- [ ] All tasks [x]
- [ ] Sub-Doings resolved
- [ ] Smoke test passed — tất cả 26 recipes hiển thị đúng
- [ ] Tất cả 15 SVG diagrams validate pass
- [ ] Code pushed to GitLab
---
_Started: 2026-04-29 | Updated: 2026-04-29_
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment