import json import time import os from voice_generator import generate_voice_script # ============================================================================== # CẤU HÌNH CHIẾN DỊCH # ============================================================================== # Bạn có thể đổi range(1, 11) thành range(1, 101) nếu muốn chạy 100 khách CUSTOMER_IDS_TO_PROCESS = range(1, 11) OUTPUT_FILE = 'final_voice_scripts.json' def main(): print(f" BẮT ĐẦU DÂY CHUYỀN SẢN XUẤT KỊCH BẢN ({len(CUSTOMER_IDS_TO_PROCESS)} KHÁCH)...\n") packaged_data = [] success_count = 0 fail_count = 0 start_time = time.time() # --- VÒNG LẶP XỬ LÝ TỪNG KHÁCH HÀNG --- for cid in CUSTOMER_IDS_TO_PROCESS: print(f" Đang xử lý ID {cid}...", end=" ", flush=True) try: # 1. GỌI AI (Chỉ nhận 1 giá trị duy nhất) script_data = generate_voice_script(cid) if script_data: # 2. BỔ SUNG METADATA (Thông tin quản lý) script_data['created_at'] = time.strftime("%Y-%m-%d %H:%M:%S") script_data['status'] = "READY_TO_CALL" # Thêm vào danh sách đóng gói packaged_data.append(script_data) success_count += 1 print(" XONG") else: fail_count += 1 print(" BỎ QUA (Không có gói cước phù hợp)") except Exception as e: print(f"LỖI CODE: {e}") fail_count += 1 # Nghỉ 1.5 giây để tránh bị Google chặn API (Rate Limit) time.sleep(1.5) # --- GHI FILE JSON (FINAL PACKAGING) --- print("\n" + "-"*50) print("📦 ĐANG ĐÓNG GÓI DỮ LIỆU...") try: with open(OUTPUT_FILE, 'w', encoding='utf-8') as f: # ensure_ascii=False để giữ nguyên tiếng Việt có dấu json.dump(packaged_data, f, indent=4, ensure_ascii=False) elapsed_time = time.time() - start_time print(f"HOÀN TẤT! File kết quả: {OUTPUT_FILE}") print(f"Tổng: {len(CUSTOMER_IDS_TO_PROCESS)} | Thành công: {success_count} | Bỏ qua: {fail_count}") print(f" Tổng thời gian: {elapsed_time:.1f} giây") except Exception as e: print(f"LỖI GHI FILE: {e}") print("-"*50) if __name__ == "__main__": main()