--- title: Real Estate Formatter emoji: 🏠 colorFrom: indigo colorTo: pink sdk: gradio sdk_version: 6.5.1 app_file: app.py pinned: false --- # 🏠 Real Estate Description Formatter API sử dụng AI models nhẹ từ HuggingFace để format mô tả bất động sản từ dạng "xấu" (không cấu trúc) sang dạng HTML đẹp mắt với CSS inline. ## 🎯 Tính năng - **Format tự động**: Chuyển đổi mô tả BDS xấu thành HTML được styling đẹp - **Giữ nguyên nội dung**: Không thay đổi text gốc, chỉ thêm HTML/CSS - **AI nhẹ & nhanh**: Sử dụng Small Language Models (1.7B params) - **Free & Open-source**: Hoàn toàn miễn phí sử dụng ## 🤖 AI Models được sử dụng Dự án hỗ trợ các model mạnh và miễn phí từ HuggingFace: - **Qwen2.5-7B-Instruct** (mặc định) - 7B params, hỗ trợ tiếng Việt, instruction-tuned - **Mistral-7B-Instruct-v0.3** - 7B params, outperforms Llama 2 13B - **Gemma-2-7B-IT** - 7B params, Google, chat-optimized ### Models nhẹ hơn (nếu cần tiết kiệm tài nguyên): - **Qwen2.5-3B-Instruct** - 3B params, cân bằng tốt - **Phi-4-mini-instruct** - 3.8B params, Microsoft, reasoning tốt Bạn có thể thay đổi model bằng biến môi trường `MODEL_NAME`. ## 📋 Ví dụ **Input (form xấu):** ``` NHÀ 2 TẦNG HẺM OTO LIÊN HOA VĨNH NGỌC - TÂY NHA TRANG- Diện tích 92m² full ONT- Hướng Đông Bắc- Pháp lý sổ hồng hoàn công. Hẻm betong rộng 3m- Kết cấu 1 trệt 1 lầu với 4Pn, 2wc, bếp, p.khách, p.thờ, sân để xe ô tô... Full nội thất như hình..- Khu dân cư đông đúc, cách Bệnh viện Sài Gòn Nha Trang 450m, gần siêu thị Big C Go 700m.G.iá bán 4tỷ5 ( thương lượng )0905 124 *** ``` **Output (HTML đẹp):** ```html

NHÀ 2 TẦNG HẺM OTO LIÊN HOA VĨNH NGỌC - TÂY NHA TRANG

92m² Đông Bắc Sổ hồng hoàn công

Hẻm betong rộng 3m

Kết cấu: 1 trệt 1 lầu

4 Pn, 2 wc, bếp, phòng khách, phòng thờ, sân để xe ô tô

Full nội thất

Khu dân cư đông đúc

Cách Bệnh viện Sài Gòn Nha Trang 450m

Gần siêu thị Big C Go 700m

4 tỷ 500 triệu

(Thương lượng)

0905 124 ***

``` ## 🚀 Cài đặt & Chạy ### 1. Cài đặt dependencies ```bash pip install -r requirements.txt ``` ### 2. Chạy server ```bash python app.py ``` Server sẽ chạy tại: `http://0.0.0.0:7860` ### 3. Sử dụng API **Endpoint:** `POST /format` **Request:** ```json { "description": "NHÀ 2 TẦNG HẺM OTO LIÊN HOA VĨNH NGỌC..." } ``` **Response:** ```json { "original": "NHÀ 2 TẦNG HẺM OTO...", "formatted_html": "
...
", "success": true, "error": null } ``` ### 4. Test với cURL ```bash curl -X POST "http://localhost:7860/format" \ -H "Content-Type: application/json" \ -d '{ "description": "NHÀ 2 TẦNG HẺM OTO LIÊN HOA VĨNH NGỌC - TÂY NHA TRANG- Diện tích 92m² full ONT- Hướng Đông Bắc- Pháp lý sổ hồng hoàn công..." }' ``` ## ⚙️ Cấu hình ### Thay đổi model AI Sử dụng biến môi trường `MODEL_NAME`: ```bash # Model mặc định - Qwen2.5-7B-Instruct (khuyên dùng cho tiếng Việt) python app.py # Sử dụng Mistral-7B (mạnh, nhanh) export MODEL_NAME="mistralai/Mistral-7B-Instruct-v0.3" python app.py # Sử dụng Gemma-2-7B (Google) export MODEL_NAME="google/gemma-2-7b-it" python app.py # Sử dụng model nhẹ hơn nếu cần (3B params) export MODEL_NAME="Qwen/Qwen2.5-3B-Instruct" python app.py ``` ### Sử dụng HuggingFace Token (cho private models) ```bash export HF_TOKEN="your_huggingface_token" python app.py ``` ## 📚 API Documentation Sau khi chạy server, truy cập: - Swagger UI: `http://localhost:7860/docs` - ReDoc: `http://localhost:7860/redoc` ## 🎨 Prompt Engineering Prompt được thiết kế phức tạp để: - ✅ Giữ nguyên nội dung text gốc - ✅ Phân tích và nhận diện các thành phần (tiêu đề, specs, giá, liên hệ...) - ✅ Thêm CSS inline với màu sắc hiện đại - ✅ Xử lý viết tắt với tooltip - ✅ Output HTML thuần, không kèm markdown ## 🌐 Deploy lên HuggingFace Spaces 1. Tạo Space mới trên HuggingFace 2. Chọn SDK: **Gradio** hoặc **Docker** 3. Upload code và đợi build 4. Truy cập URL của Space ## 📖 Tài liệu tham khảo **AI Models:** - [Qwen2.5-7B-Instruct](https://huggingface.co/Qwen/Qwen2.5-7B-Instruct) - Model mặc định, hỗ trợ tiếng Việt - [10 Best Open-Source LLM Models 2025](https://huggingface.co/blog/daya-shankar/open-source-llms) - [Open LLM Leaderboard](https://huggingface.co/collections/open-llm-leaderboard/open-llm-leaderboard-best-models) - [HuggingFace Text Generation Models](https://huggingface.co/models?pipeline_tag=text-generation) - [Best Open Source LLMs of 2025](https://klu.ai/blog/open-source-llm-models) ## 📝 License MIT License - Free to use ## 👨‍💻 Author Created with ❤️ using Claude Code