LLM 기반 비정형 텍스트 구조화 추출 Python 라이브러리 (Google 제작, Gemini/OpenAI/Ollama 지원)
중간맛 분석
LangExtract는 Python 라이브러리로, Gemini(Flash/Pro)·OpenAI·Ollama 등 다양한 LLM 백엔드를 지원합니다. few-shot 예시만으로 도메인 특화 추출 스키마를 정의하고, 텍스트 청킹·병렬 처리·멀티패스 전략으로 장문서 처리를 최적화합니다. pip install langextract 후 키 설정만으로 즉시 사용 가능하며, 임상 노트·방사선 보고서·문학 작품 등 다양한 도메인에서 바로 쓸 수 있는 예제가 제공됩니다. Vertex AI 배치 ·OpenAI 배치 도 지원해 대규모 운영 환경에도 적합합니다.
이런 레포예요
이럴 때 쓰면 좋아요
- 임상 노트·방사선 보고서 등 의료 문서에서 구조화된 정보를 자동 추출할 때
- 소설·논문 등 장문 텍스트에서 등장인물·감정·관계 등 엔티티를 대량으로 수집할 때
- 비정형 업무 문서를 LLM으로 파싱하여 DB나 스프레드시트에 적재하는 파이프라인을 구축할 때
핵심 기능
대안 대비 차별점
추출 결과마다 원본 텍스트 위치(char_interval)를 추적하고 환각을 자동 탐지하는 소스 그라운딩 기능이 LangChain·Instructor 등 유사 도구와의 핵심 차별점이다.
준비물
- Python 3.10 이상
- Gemini/OpenAI API 키 (클라우드 모델 사용 시)
- Ollama 설치 및 실행 (로컬 LLM 사용 시)
바로 시작하기
- 패키지 설치
pip install langextract
- API 키 환경변수 설정 (Gemini 사용 시)
export LANGEXTRACT_API_KEY="your-api-key-here"
- 추출 작업 정의 및 실행 (Python 코드)
python - <<'EOF'
import langextract as lx
import textwrap
prompt = textwrap.dedent("""\
Extract characters, emotions, and relationships in order of appearance.
Use exact text for extractions. Do not paraphrase or overlap entities.
Provide meaningful attributes for each entity to add context.""")
examples = [
lx.data.ExampleData(
text="ROMEO. But soft! What light through yonder window breaks? It is the east, and Juliet is the sun.",
extractions=[
lx.data.Extraction(extraction_class="character", extraction_text="ROMEO", attributes={"emotional_state": "wonder"}),
]
)
]
result = lx.extract(
text_or_documents="Lady Juliet gazed longingly at the stars, her heart aching for Romeo",
prompt_description=prompt,
examples=examples,
model_id="gemini-3.5-flash",
)
print(result)
EOF
- 결과를 JSONL 파일로 저장 및 HTML 시각화 생성
python - <<'EOF'
import langextract as lx
lx.io.save_annotated_documents([result], output_name="extraction_results.jsonl", output_dir=".")
html_content = lx.visualize("extraction_results.jsonl")
with open("visualization.html", "w") as f:
f.write(html_content.data if hasattr(html_content, 'data') else html_content)
EOF
이 레포로 만든 것들
🖋 완주 인증하기아직 이 레포로 만든 완주 인증이 없어요. 첫 밥도장을 찍어보세요!
별 추이 · 7일
활용성 · 따라 만들기 좋은가
- 관대한 라이선스
- 테스트 있음
- 예제 디렉토리
- 최근 활동
- AGENTS.md
- llms.txt
- 템플릿
🟢 최근 활동 있음 · 2025년 생성
시식평 · 먹어본 사람 한마디
아직 시식평이 없어요. 먹어보셨다면 첫 한마디를 남겨주세요.
시식평은 로그인 후 남길 수 있어요. 로그인 →
「LLM 도구·RAG」 이런 레포, 매주 받아보실래요?
매주 월요일 아침, 골라 담은 밥상만. 광고 없이 · 언제든 해지.
이 레포에 깃밥 배지 달기
[](https://www.gitbap.com/r/google/langextract)🔌 클로드에서 바로 써보기
깃밥을 클로드에 연결하면 이런 레포를 클로드·커서·Codex에서 바로 찾고 체험할 수 있어요.
클로드 설정 → 커넥터에 이 주소를 붙여넣기.
https://www.gitbap.com/api/mcp플러그인을 설치하면 /gitbap-trending·/gitbap-try 슬래시 커맨드로 레포를 그 자리에서 체험. Claude Code에서 아래 두 줄을 차례로 실행하세요.
/plugin marketplace add jakeparkcolde/gitbap-cowork/plugin install gitbap-cowork@gitbapAI가 README 기반으로 요약했습니다 · 원문 보기