# Initialize mock data for event_daily_prompts if empty
cur.execute("SELECT COUNT(*) FROM event_daily_prompts")
ifcur.fetchone()[0]==0:
mock_events=[
('daily_default','Daily Standard','Daily','Mỗi ngày',0,'- Tư vấn dựa trên yêu cầu cơ bản của khách hàng.\n- Tập trung vào tính tiện dụng và sự thoải mái.\n- Ưu tiên các sản phẩm mới nhất hoặc best seller nếu khách không có yêu cầu đặc biệt.'),
('womens_day','Quốc Tế Phụ Nữ 8/3','Campaign','08/03/2026',1,'- Ưu tiên gợi ý các sản phẩm váy đầm, đồ đôi, hoặc quà tặng cho phái nữ.\n- Gợi ý các combo quà tặng có giá trị cao.\n- Tone giọng: Nhẹ nhàng, tôn vinh phái đẹp, kèm lời chúc mừng 8/3.\n- Báo cho khách biết đang có chương trình giảm giá 30% cho đồ nữ.'),
('summer_sale','Đón Hè Sôi Động','Campaign','01/05/2026 - 31/05/2026',0,'- Tuyệt đối không gợi ý áo khoác dày, áo len.\n- Chỉ tập trung vào áo phông, đồ bơi, quần short, chất liệu thoáng mát (cotton, lanh).\n- Gợi ý đồ mặc đi biển, đi chơi ngày hè.'),
('black_friday','Black Friday Siêu Sale','Campaign','27/11/2026',0,'- NHẤN MẠNH vào giá sale cực sốc.\n- Up-sale mạnh tay, gợi ý mua theo combo để được giảm thêm.\n- Tạo cảm giác khan hiếm: \'Số lượng có hạn\', \'Sale lớn nhất năm\'.')
]
cur.executemany(
"""
INSERT INTO event_daily_prompts (event_id, event_name, event_type, event_date, is_today, prompt)
VALUES (?, ?, ?, ?, ?, ?)
""",
mock_events
)
conn.commit()
conn.close()
logger.info("Auto-Train DB initialized at %s",DB_PATH)
# Find rows where description_data_full is short or only contains mau_sac
c.execute("SELECT magento_ref_code, description_data_full FROM sr__test_db__magento_product_dimension_with_text_embedding WHERE description_data_full LIKE '%mau_sac%' AND length(description_data_full) < 100 LIMIT 10")
rows_mau_sac=c.fetchall()
print("--- Rows with short JSON / only mau_sac ---")
forrinrows_mau_sac:
print(r)
c.execute("SELECT magento_ref_code, description_data_full FROM sr__test_db__magento_product_dimension_with_text_embedding WHERE description_data_full NOT LIKE '{%' LIMIT 5")
<h3style="font-size:12px; color:var(--m); margin:0; text-transform:uppercase; letter-spacing:1px; font-weight:600;">Context: Trích xuất User Feedback</h3>
</div>
<buttonclass="btn btn-outline"style="padding:4px 10px; font-size:11px;"><idata-lucide="history"class="icon-sm"></i> Xem full Chat History</button>
dev:{id:105,version:2,content_length:300,created_by:"dev_user",created_at:newDate(Date.now()-3600000).toISOString(),notes:"Add season mapping",langfuse_synced:false},
production:null
}
];
}
functiongetMockContent(versionId){
if(versionId===101)return"Bạn là trợ lý AI thông minh của Canifa...\n[DEV ONLY RULE]: Luôn xin lỗi nếu không có thông tin.";
if(versionId===102)return"Bạn là trợ lý AI thông minh của Canifa...\nLuôn giữ thái độ chuyên nghiệp và lịch sự.";
if(versionId===103)return"Tìm kiếm sản phẩm theo yêu cầu khách.\n\n## Parameters\n- query: string\n- category: string?\n- color: string?\n- size: string? (S/M/L/XL/XXL)\n- price_range: [min, max]?\n\n## Returns\nDanh sách sản phẩm phù hợp, tối đa 10 kết quả.";
if(versionId===104)return"Tra cứu đơn hàng Canifa.\n- phone: SDT khách hàng\n- order_code: Mã đơn hàng (nếu có)";
if(versionId===105)return"Context: Thời tiết hiện tại\nRule: Gợi ý đồ hợp thời tiết (Ví dụ: 30 độ thì gợi ý đồ mát).";