Spaces:
Sleeping
Sleeping
File size: 1,761 Bytes
300df0f | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 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()
|