2.2 KiB
2.2 KiB
Blog RAG
Hệ thống Retrieval-Augmented Generation (RAG) cho blog orangepi.vn — trợ lý AI trả lời câu hỏi về sản phẩm Orange Pi dựa trên dữ liệu thực tế.
Tính năng
- Truy vấn ngữ nghĩa qua FAISS + sentence-transformers (hỗ trợ tiếng Việt)
- Giao diện web với quản lý phiên chat, lịch sử hội đồng, hiển thị markdown
- Chế độ Light/Dark mode
- Dữ liệu sẵn có: 199 bài viết orangepi.vn, 36 model Orange Pi
- API tương thích OpenAI (OpenAI, Together.ai, Groq, v.v.)
Cài đặt
pip install -r requirements.txt
cp .env.example .env
# Chỉnh sửa .env — điền LLM_API_KEY
Sử dụng nhanh
# Chạy web UI với dữ liệu orangepi.vn có sẵn
python web_app.py --data-dir ./orangepi_data --index-dir ./orangepi_data/rag_index --port 5000
Mở trình duyệt tại http://localhost:5000 → tạo phiên mới → đặt câu hỏi.
Lưu ý: Lần đầu cần build index trước khi chạy web. Xem hướng dẫn chi tiết tại HDSD.md.
Cấu trúc thư mục
orangepi-rag/
├── web_app.py # Web server (Flask)
├── rag_app.py # Core RAG pipeline (FAISS + LLM)
├── crawl_blog.py # Crawler tổng quát (Firecrawl + sitemap)
├── crawl_orangepi_blog.py # Crawler đặc thù orangepi.vn
├── keywords_example.json # Ví dụ từ khóa theo danh mục
├── requirements.txt # Dependencies
├── .env.example # Template API key
├── orangepi_data/ # Dữ liệu orangepi.vn đã crawl
│ ├── articles.jsonl
│ ├── chunks.jsonl
│ ├── orangepi_models.json
│ └── ...
├── templates/index.html # HTML template
├── static/
│ ├── app.js # Frontend JavaScript
│ └── style.css # Styles (Dark/Light theme)
└── HDSD.md # Hướng dẫn sử dụng chi tiết
Tài liệu
- HDSD.md — Hướng dẫn sử dụng chi tiết (cài đặt, crawl dữ liệu, build index, chạy web)