Spaces:
Sleeping
Sleeping
| import os | |
| import logging | |
| import pandas as pd | |
| from dotenv import load_dotenv | |
| from src.embeddings.retriever import EmbeddingRetriever | |
| load_dotenv() | |
| logging.basicConfig(level=logging.INFO, format="%(asctime)s %(levelname)s — %(message)s") | |
| logger = logging.getLogger(__name__) | |
| def export_to_parquet(): | |
| uri = os.getenv("NEO4J_URI") | |
| user = os.getenv("NEO4J_USER") | |
| password = os.getenv("NEO4J_PASSWORD") | |
| logger.info("--- BẮT ĐẦU TRÍCH XUẤT TOÀN BỘ DỮ LIỆU TỪ NEO4J ---") | |
| retriever = EmbeddingRetriever(uri, user, password) | |
| try: | |
| # Lấy toàn bộ segments (không truyền doc_id) | |
| segments = retriever.get_all_segments() | |
| logger.info(f"Đã lấy xong {len(segments)} segments.") | |
| if not segments: | |
| logger.warning("Không có dữ liệu để xuất!") | |
| return | |
| # Chuyển sang DataFrame | |
| df = pd.DataFrame(segments) | |
| # Đường dẫn file output | |
| output_path = "data/legal_segments_for_colab.parquet" | |
| # Xuất ra Parquet (yêu cầu pyarrow hoặc fastparquet) | |
| logger.info(f"Đang ghi dữ liệu ra file: {output_path}...") | |
| df.to_parquet(output_path, engine='pyarrow', index=False) | |
| logger.info(f"=== XUẤT DỮ LIỆU THÀNH CÔNG ===") | |
| logger.info(f"Tổng số bản ghi: {len(df)}") | |
| logger.info(f"File path: {os.path.abspath(output_path)}") | |
| except ImportError: | |
| logger.error("Thiếu thư viện 'pyarrow'. Hãy chạy: pip install pyarrow") | |
| except Exception as e: | |
| logger.error(f"Lỗi khi xuất dữ liệu: {e}") | |
| finally: | |
| retriever.close() | |
| if __name__ == "__main__": | |
| export_to_parquet() | |