google/langextract

A Python library for extracting structured information from unstructured text using LLMs with precise source grounding and interactive visualization.

해결하는 문제

LangExtract는 대규모 언어 모델(LLM)을 사용하여 비구조화된 텍스트 문서(임상 노트 또는 보고서 등)에서 구조화된 정보를 추출하도록 설계되었습니다. 특히 긴 문서에서의 "건더기 찾기(needle-in-a-haystack)" 추출 문제와 정확한 소스 그라운딩(grounding)의 필요성을 해결하여, 추출된 모든 데이터가 원본 텍스트의 정확한 위치로 추적될 수 있도록 보장합니다.

작동 방식

이 라이브러리는 사용자 정의 프롬프트와 few-shot 예시를 결합하여 LLM이 핵심 세부 정보를 식별하고 정리하도록 안내합니다. 대규모 문서를 처리하기 위해 텍스트 청킹, 병렬 처리 및 재현율을 높이기 위한 다중 추출 패스 전략을 사용합니다. Google Gemini 및 OpenAI와 같은 클라우드 기반 옵션부터 Ollama를 통한 로컬 모델까지 폭넓은 모델을 지원합니다. 시스템은 추출 내용이 소스 텍스트에 근거한 것인지, 아니면 LLM이 예시에서 정보를 환각(hallucination)한 것인지 자동으로 감지하여, 후자의 경우 null 문자 간격으로 표시합니다.

대상 사용자

모델 미세 조정(fine-tuning) 없이 비구조화된 텍스트를 구조화된 데이터로 변환해야 하는 개발자 및 연구자, 특히 긴 문서를 다루거나 추적 가능성과 검증이 중요한 의료 분야 종사자에게 적합합니다.

주요 특징

  • 정밀한 소스 그라운딩: 모든 추출 항목을 소스 텍스트의 정확한 문자 범위에 매핑하여 쉬운 검증을 지원합니다.
  • 신뢰할 수 있는 구조화된 출력: 제어된 생성 및 few-shot 예시를 사용하여 일관된 출력 스키마를 강제합니다.
  • 긴 문서 최적화: 병렬 처리와 청킹을 사용하여 대규모 텍스트 전반에 걸쳐 높은 재현율을 유지합니다.
  • 대화형 시각화: 자체 포함된 HTML 파일을 생성하여 원래 컨텍스트 내에서 추출된 엔티티를 시각적으로 검토할 수 있습니다.
  • 유연한 모델 지원: Gemini, OpenAI 및 Ollama를 통한 로컬 LLM과 호환되며, 커스텀 제공자를 위한 플러그인 시스템을 갖추고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트