# Step 3: 지식 추출 ## 추출 프로세스 각 소스에 대해: 1. **가져오기** — `webfetch` 도구로 콘텐츠 수집 2. **파싱** — HTML → 텍스트, 보일러플레이트 제거 3. **청킹** — 논리적 섹션별 분할 (제목, 단락, 코드 블록) 4. **추출** — LLM으로 구조화된 지식 추출 ## 추출 프롬프트 ``` 다음 콘텐츠에서 "{topic.title}"에 대한 구조화된 지식을 추출하십시오. JSON 형식으로 반환: { "concepts": [ { "title": "개념 이름", "definition": "명확한 정의", "examples": ["예시1", "예시2"], "related": ["관련 개념1", "관련 개념2"] } ], "facts": [ { "statement": "팩트 진술", "evidence": "출처에서의 인용", "confidence": 0.9 } ], "procedures": [ { "name": "절차 이름", "description": " 설명", "steps": ["단계1", "단계2", "단계3"] } ], "code_patterns": [ { "language": "python", "pattern_name": "패턴 이름", "code": "코드", "explanation": "설명" } ] } 콘텐츠: {source.content} ``` ## 교차 검증 1. 여러 소스에서 추출된 팩트를 비교 2. 일치하지 않는 내용 표시 3. 2개 이상 소스에서 확인된 팩트만 신뢰도 높음으로 처리 ## 신뢰도 점수 - 단일 소스 확인: confidence = 0.5 - 2개 소스 확인: confidence = 0.7 - 3개 이상 소스 확인: confidence = 0.9 - 소스 간 불일치: confidence = 0.3 ## 출력 ``` { "concepts": [...], "facts": [...], "procedures": [...], "code_patterns": [...], "source_id": "source_id", "extraction_confidence": 0.7 } ```