kcsc-mcp / src /data_migration.py
nicefree19's picture
Upload 105 files
0ee3c92 verified
Raw
History Blame Contribute Delete
2.38 kB
import os
import shutil
import logging
from pathlib import Path
# λ‘œκΉ… μ„€μ •
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')
logger = logging.getLogger("DataMigration")
SOURCE_DIR = Path(r"D:\00.Work_AI_Tool\06.GPTs_kcsc")
TARGET_DIR = Path(r"D:\00.Work_AI_Tool\03.KCSC_MCP\data")
MAPPING_PLAN = [
{
"src": SOURCE_DIR / "enhanced_markdown_contents_improved.json",
"dst": TARGET_DIR / "raw" / "standards.json",
"desc": "ν‘œμ€€ κ·œμ • νŒŒμ‹± 데이터 (KDS/KCS)"
},
{
"src": SOURCE_DIR / "extracted_qa_data.json",
"dst": TARGET_DIR / "raw" / "qa_dataset.json",
"desc": "ν‰κ°€μš© QA 데이터셋"
},
{
"src": SOURCE_DIR / "kcsc_final_url_mapping_20250811_190643.json",
"dst": TARGET_DIR / "raw" / "mappings.json",
"desc": "URL 및 μ½”λ“œ λ§΅ν•‘ 데이터"
},
{
"src": SOURCE_DIR / "knowledge_graph.db",
"dst": TARGET_DIR / "graph" / "knowledge_graph.db",
"desc": "지식 κ·Έλž˜ν”„ DB"
}
]
def create_directory_structure():
logger.info("데이터 트리 ꡬ쑰 생성 μ‹œμž‘...")
dirs_to_create = [
TARGET_DIR / "raw",
TARGET_DIR / "graph",
TARGET_DIR / "indices" / "chromadb",
TARGET_DIR / "indices" / "bm25"
]
for d in dirs_to_create:
d.mkdir(parents=True, exist_ok=True)
logger.info(f"디렉토리 쀀비됨: {d}")
def migrate_data():
logger.info("데이터 볡사 및 이관 μ‹œμž‘...")
for item in MAPPING_PLAN:
src = item["src"]
dst = item["dst"]
desc = item["desc"]
if src.exists():
logger.info(f"[{desc}] 볡사 쀑...\n - Source: {src}\n - Target: {dst}")
# λŒ€μš©λŸ‰ 파일 볡사
try:
shutil.copy2(src, dst)
size_mb = dst.stat().st_size / (1024 * 1024)
logger.info(f"[{desc}] 볡사 μ™„λ£Œ (크기: {size_mb:.2f} MB)")
except Exception as e:
logger.error(f"[{desc}] 볡사 μ‹€νŒ¨: {e}")
else:
logger.warning(f"[{desc}] 원본 νŒŒμΌμ„ 찾을 수 μ—†μŠ΅λ‹ˆλ‹€: {src}")
if __name__ == "__main__":
create_directory_structure()
migrate_data()
logger.info("λͺ¨λ“  λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ μž‘μ—…μ΄ μ™„λ£Œλ˜μ—ˆμŠ΅λ‹ˆλ‹€.")