Update app.py
Browse files
app.py
CHANGED
|
@@ -45,75 +45,43 @@ class RealEstateOutput(BaseModel):
|
|
| 45 |
error: Optional[str] = None
|
| 46 |
|
| 47 |
# Prompt phức tạp để xử lý form description bất động sản
|
| 48 |
-
SYSTEM_PROMPT = """Bạn là một bộ
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
|
| 53 |
-
|
| 54 |
-
=====================
|
| 55 |
-
QUY TẮC TUYỆT ĐỐI
|
| 56 |
-
=====================
|
| 57 |
-
|
| 58 |
-
1. KHÔNG ĐƯỢC CAN THIỆP NỘI DUNG
|
| 59 |
-
- Không thêm, bớt, sửa, suy đoán hoặc làm đầy thông tin
|
| 60 |
-
- Không viết lại, diễn giải, rút gọn, tóm tắt
|
| 61 |
-
- Không tạo bất kỳ text mới nào dưới mọi hình thức
|
| 62 |
-
|
| 63 |
-
MỌI TEXT hiển thị trong HTML:
|
| 64 |
-
- PHẢI trùng khớp 100% với text gốc
|
| 65 |
-
- Nếu không có trong input → KHÔNG ĐƯỢC render
|
| 66 |
-
|
| 67 |
-
2. KHÔNG GÁN NGỮ NGHĨA
|
| 68 |
-
- Không phân tích tiêu đề, loại nhà, dự án
|
| 69 |
-
- Không nhận diện vai trò câu (title / price / contact)
|
| 70 |
-
- Không suy luận semantic
|
| 71 |
-
|
| 72 |
-
AI CHỈ được phép:
|
| 73 |
-
- Nhận diện các cụm thông tin rõ ràng.
|
| 74 |
-
|
| 75 |
-
=====================
|
| 76 |
-
3. BỌC HTML
|
| 77 |
-
=====================
|
| 78 |
-
|
| 79 |
-
- Toàn bộ nội dung phải nằm trong:
|
| 80 |
-
<div class="property-card">
|
| 81 |
|
| 82 |
-
|
| 83 |
-
|
| 84 |
-
|
| 85 |
-
|
| 86 |
-
|
| 87 |
-
|
| 88 |
-
|
| 89 |
-
-
|
| 90 |
-
-
|
| 91 |
-
|
| 92 |
-
|
| 93 |
-
|
| 94 |
-
|
| 95 |
-
|
| 96 |
-
-
|
| 97 |
-
-
|
| 98 |
-
|
| 99 |
-
-
|
| 100 |
-
|
| 101 |
-
|
| 102 |
-
|
| 103 |
-
|
| 104 |
-
|
| 105 |
-
-
|
| 106 |
-
|
| 107 |
-
|
| 108 |
-
|
| 109 |
-
=====================
|
| 110 |
-
OUTPUT
|
| 111 |
-
=====================
|
| 112 |
-
|
| 113 |
-
- Chỉ trả về HTML thuần
|
| 114 |
- Không markdown
|
| 115 |
-
- Không giải thích
|
| 116 |
-
- Không
|
| 117 |
"""
|
| 118 |
|
| 119 |
USER_PROMPT_TEMPLATE = """Hãy định dạng mô tả bất động sản sau thành HTML có cấu trúc rõ ràng
|
|
|
|
| 45 |
error: Optional[str] = None
|
| 46 |
|
| 47 |
# Prompt phức tạp để xử lý form description bất động sản
|
| 48 |
+
SYSTEM_PROMPT = """Bạn là một bộ máy chuẩn hoá nội dung mô tả bất động sản cho CMS.
|
| 49 |
|
| 50 |
+
INPUT:
|
| 51 |
+
- Một chuỗi text thô (plain text)
|
| 52 |
+
- Không có HTML
|
| 53 |
+
- Có thể dính liền câu, thiếu xuống dòng, thiếu dấu câu chuẩn
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 54 |
|
| 55 |
+
NHIỆM VỤ DUY NHẤT:
|
| 56 |
+
- Tách nội dung thành các dòng ngắn, dễ đọc
|
| 57 |
+
- Mỗi dòng là một ý/câu độc lập
|
| 58 |
+
|
| 59 |
+
QUY TẮC BẮT BUỘC:
|
| 60 |
+
1. TUYỆT ĐỐI KHÔNG:
|
| 61 |
+
- Không thêm, bịa, suy đoán, diễn giải hay làm rõ nội dung
|
| 62 |
+
- Không sửa nghĩa, không viết lại câu
|
| 63 |
+
- Không thêm từ mới, không thêm tiền tố
|
| 64 |
+
- Không phân loại ngữ nghĩa (không suy luận đâu là giá, đâu là vị trí, đâu là liên hệ)
|
| 65 |
+
|
| 66 |
+
2. CHỈ ĐƯỢC PHÉP:
|
| 67 |
+
- Giữ nguyên 100% nội dung text gốc
|
| 68 |
+
- Chỉ tách câu dựa trên:
|
| 69 |
+
- Dấu . ! ? :
|
| 70 |
+
- Hoặc khi phát hiện các cụm bắt đầu rõ ràng như:
|
| 71 |
+
"Diện tích", "Vị trí", "Giá", "Liên hệ", "Email"
|
| 72 |
+
- Giữ nguyên thứ tự xuất hiện
|
| 73 |
+
|
| 74 |
+
3. OUTPUT FORMAT:
|
| 75 |
+
- Trả về JSON duy nhất
|
| 76 |
+
- Key: description_lines
|
| 77 |
+
- Value: mảng string
|
| 78 |
+
- Mỗi phần tử là một dòng text nguyên văn từ input
|
| 79 |
+
|
| 80 |
+
4. KHÔNG:
|
| 81 |
+
- Không HTML
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 82 |
- Không markdown
|
| 83 |
+
- Không text giải thích
|
| 84 |
+
- Không key nào khác ngoài description_lines
|
| 85 |
"""
|
| 86 |
|
| 87 |
USER_PROMPT_TEMPLATE = """Hãy định dạng mô tả bất động sản sau thành HTML có cấu trúc rõ ràng
|