프로젝트 소개

LangExtract는 대규모 언어 모델을 활용해 비정형 텍스트 문서에서 사용자 정의 지시사항에 따라 구조화된 정보를 추출하는 Python 라이브러리다. 임상 기록이나 보고서와 같은 자료에 적합하며, 중요한 세부 정보를 식별하고 조직화하면서 추출된 데이터가 원본 텍스트와 대응되도록 보장한다. README에 명시된 주요 기능: - 정확한 소스 기반 grounding: 모든 추출 결과는 원본 텍스트의 정확한 문자 범위로 매핑되어 추적성과 검증이 가능한 시각적 하이라이트를 제공한다. 소스에서 찾을 수 없는 추출 결과는 char_interval = None이 되며 필터링 가능하다. - 안정적인 구조화된 출력: 출력 스키마는 퓨샷 예시에 기반하며 Gemini와 같은 모델에서 제어된 생성을 지원한다. - 긴 문서 처리: 텍스트 청킹, 병렬 처리, 다중 추출 패스로 대규모 문서에서의 재현율을 향상시킨다. - 대화형 시각화: 추출된 엔티티를 원래 컨텍스트에서 검토할 수 있는 단일 대화형 HTML 파일을 생성한다. - 유연한 모델 지원: Google Gemini 계열 클라우드 모델, 선택적 의존성을 통한 OpenAI 모델, 내장 Ollama 인터페이스를 통한 로컬 오픈소스 모델을 지원한다. 플러그인 시스템을 통해 사용자 정의 모델 공급자를 별도 패키지로 등록 및 배포할 수 있다. - 도메인 적응력: 추출 작업은 모델 파인튜닝 없이 프롬프트와 몇 가지 예시로 정의된다. 일반적인 사용법은 프롬프트와 예시 추출을 정의한 후 lx.extract를 텍스트 또는 문서 URL에 호출하고, 결과를 JSONL로 저장하며 HTML 시각화를 생성하는 것이다. 긴 문서 확장을 위해 extraction_passes, max_workers, max_char_buffer 옵션과 대규모 워크로드를 위한 Vertex AI 및 OpenAI 배치 처리 설정이 제공된다. 설치는 PyPI(pip install langextract), 소스(pyproject.toml), Docker를 통해 가능하다. 클라우드 모델은 환경 변수, .env 파일, 직접 파라미터 또는 Vertex AI 서비스 계정을 통해 구성되는 API 키가 필요하다. 프로젝트에는 pytest, tox, pylint, pre-commit 훅 등 테스트 및 개발 도구 포함되어 있다. README는 이 프로젝트가 공식 Google 지원 제품이 아니며 Apache 2.0 라이선스에 따라 사용된다고 안내하며, 건강 관련 애플리케이션에 대해서는 추가 조항이 적용될 수 있음을 명시한다.