Files
2nd/01_Archive/2026-04-20/mega_batch_2.py
T

122 lines
3.9 KiB
Python

import os
import re
import uuid
import sys
from datetime import datetime
# UTF-8 Output support
if sys.stdout.encoding != 'utf-8':
import io
sys.stdout = io.TextIOWrapper(sys.stdout.buffer, encoding='utf-8')
base_dir = r"e:\Wiki\2nd"
raw_dir = os.path.join(base_dir, "00_Raw", "2026-04-20")
# List of files to process
batch_files = [
"ARG-Alternate-Reality-Games.md",
"Arkane Studios.md",
"ArrayBuffer.md",
"Arthrokinematics.md",
"Artificial Life (ALife).md",
"Artificial-Intelligence-Explainability.md",
"as const Assertion.md",
"ASP.NET Core.md",
"Assignability-Relation.md",
"AST-based-Static-Analysis.md",
"Athletic Peak Performance.md",
"Atomic Design Pattern.md",
"Auction Theory.md",
"Augmented Reality (AR) Interfaces.md"
]
mapping = {
"ARG-Alternate-Reality-Games.md": "Game Design",
"Arkane Studios.md": "Game Design",
"ArrayBuffer.md": "Programming & Memory",
"Arthrokinematics.md": "Health & Science",
"Artificial Life (ALife).md": "AI & Biology",
"Artificial-Intelligence-Explainability.md": "AI & Ethics",
"as const Assertion.md": "Programming & Language",
"ASP.NET Core.md": "Programming & Web",
"Assignability-Relation.md": "Programming & Language",
"AST-based-Static-Analysis.md": "Programming & Tools",
"Athletic Peak Performance.md": "Health & Science",
"Atomic Design Pattern.md": "Design & Experience",
"Auction Theory.md": "Economics & Algorithms",
"Augmented Reality (AR) Interfaces.md": "Design & Experience"
}
def wikify(filename):
raw_path = os.path.join(raw_dir, filename)
if not os.path.exists(raw_path):
return
try:
with open(raw_path, "r", encoding="utf-8") as f:
content = f.read()
except:
return
title_match = re.search(r'^#\s*\[\[(.*?)\]\]', content, re.M)
if not title_match:
title_match = re.search(r'^\[\[(.*?)\]\]', content, re.M)
title = title_match.group(1) if title_match else filename.replace(".md", "")
sub_folder = mapping.get(filename, "Uncategorized")
category_path = f"10_Wiki/💡 Topics/{sub_folder}"
summary_match = re.search(r'##?\s*📌\s*Brief Summary\n(.*?)(?=\n##|$)', content, re.S)
summary = summary_match.group(1).strip() if summary_match else "지식 요약 작업 중"
core_match = re.search(r'##?\s*📖\s*Core Content\n(.*?)(?=\n##|$)', content, re.S)
core = core_match.group(1).strip() if core_match else "본문 구조화 작업 중"
conn_match = re.search(r'##?\s*🔗\s*Knowledge Connections\n(.*?)(?=\n##|$)', content, re.S)
conn = conn_match.group(1).strip() if conn_match else ""
doc_id = f"P-REINFORCE-{uuid.uuid4().hex[:6].upper()}"
today = "2026-04-20"
wiki_content = f"""---
id: {doc_id}
category: "[[{category_path}]]"
confidence_score: 0.95
tags: []
last_reinforced: {today}
github_commit: "[P-Reinforce] Mega Batch 2 - Wikified {title}"
---
# [[{title}]]
## 📌 한 줄 통찰 (The Karpathy Summary)
> {summary}
## 📖 구조화된 지식 (Synthesized Content)
{core}
## ⚠️ 모순 및 업데이트 (Contradictions & RL Update)
- **과거 데이터와의 충돌:** 지식 자산화 및 기존 네트워크 연동 단계.
- **정책 변화:** {sub_folder} 카테고리의 전문성 확보 및 링크 밀도 최적화.
## 🔗 지식 연결 (Graph)
{conn}
- Raw Source: [[00_Raw/2026-04-20/{filename}]]
---
"""
target_dir = os.path.join(base_dir, category_path.replace("/", os.sep))
if not os.path.exists(target_dir):
os.makedirs(target_dir)
safe_title = re.sub(r'[^\w\s\(\)\[\]-]', '', title).strip()
target_path = os.path.join(target_dir, f"{safe_title}.md")
with open(target_path, "w", encoding="utf-8") as f:
f.write(wiki_content)
print(f"Processed: {filename}")
if __name__ == "__main__":
for f in batch_files:
wikify(f)