m92vyas/llm-reader
Turn Webpage to LLM friendly input text. Similar to Firecrawl and Jina Reader API. Makes RAG, AI web scraping, image & webpage links extraction easy.
llm‑reader – 모든 웹페이지를 LLM 친화적 텍스트로 변환
기능
- URL(또는 모든 HTML 문자열)을 가져와 웹페이지의 노이즈 부분을 제거하고, 대규모 언어 모델의 프롬프트에 적합한 깔끔한 markdown 스타일 텍스트를 생성합니다.
- 테이블, 링크, 이미지 및 기타 구조화된 요소를 처리하여 LLM이 최소한의 토큰 낭비로 추출할 수 있도록 합니다.
- Playwright 기반으로 빠르고 동시적인 헤드리스 브라우징을 지원합니다(이전 Selenium 구현 대체).
중요한 이유
원시 HTML을 모델에 공급하면 태그, 스크립트, 레이아웃 노이즈에 토큰을 낭비하고 실제로 필요한 데이터(제품명, 가격, 테이블 등)를 놓치는 경우가 많습니다. llm‑reader는 전처리 단계를 자동화하여 프롬프트와 다운스트림 추출 로직에 집중할 수 있게 해줍니다.
주요 구성 요소
get_page_source(url): Playwright 브라우저를 실행하고 페이지를 로드하여 원시 HTML을 반환하는 비동기 헬퍼. 원하는 경우 다른 스크레이퍼나 유료 API로 대체할 수 있습니다.get_processed_text(html, url): HTML을 LLM 소비에 최적화된 깨끗한 markdown 유사 표현으로 변환하는 비동기 함수.
설치
pip install git+https://github.com/m92vyas/llm-reader.git
# Playwright 설정 (브라우저 및 시스템 종속성 다운로드)
playwright install
playwright install-deps
기본 사용법
import asyncio
from url_to_llm_text.get_html_text import get_page_source
from url_to_llm_text.get_llm_input_text import get_processed_text
async def llm_ready(url: str) -> str:
html = await get_page_source(url) # 원시 HTML 가져오기
clean = await get_processed_text(html, url) # LLM 친화적 텍스트로 변환
return clean
text = asyncio.run(llm_ready("https://example.com"))
print(text)
그런 다음 text를 모든 프롬프트에 포함하고, 모델의 컨텍스트 창에 맞게 필요에 따라 잘라낼 수 있습니다.
제품 데이터 추출 예시
README에는 전체 워크플로가 나와 있습니다: IKEA의 카테고리 페이지를 가져오고, get_processed_text를 실행한 다음, OpenAI의 gpt‑4o‑mini용 JSON 스타일 프롬프트를 만듭니다. 모델은 이름, 링크, 이미지 URL 및 가격이 포함된 구조화된 제품 목록을 반환합니다.
특징 및 하이라이트
- 비동기 및 동시 처리: Playwright를 사용하면 여러 페이지를 병렬로 스크레이핑할 수 있습니다.
- Markdown 출력: 제목, 목록, 테이블 및 링크를 LLM이 잘 이해하는 형식으로 유지합니다.
- 플러그 가능한 소스:
get_page_source를 프록시 서비스, 유료 API(예: Scrappey) 또는 자체 Selenium 설정으로 교체할 수 있습니다. - 오픈소스 MIT 라이선스 – 상업용 파이프라인에 수정 및 포함 가능.
제한 사항
- 라이브러리는 텍스트 준비만 수행하며 LLM 프롬프트 작성 및 토큰 제한 처리는 직접 해야 합니다.
- JavaScript가 많은 복잡한 사이트는 추가 대기 시간이나 맞춤 Playwright 스크립트가 필요할 수 있습니다.
- 내장 OCR 또는 PDF 처리는 없습니다 – 별도의 서비스(ParseExtract, RedactLocal)에서 제공됩니다.
추가 자료
- 상세 문서: https://github.com/m92vyas/llm-reader/wiki/Documentation
- 관련 스크레이퍼: https://github.com/m92vyas/AI-web_scraper (검색, 다중 페이지 크롤링, 프롬프트 템플릿 추가)
사용 대상
- 깨끗한 웹 텍스트가 필요한 RAG 파이프라인을 구축하는 데이터 엔지니어.
- 전자상거래 또는 뉴스 사이트에서 구조화된 정보(가격, 사양, 테이블)를 추출하는 연구자.
- Firecrawl이나 Jina Reader 같은 상용 서비스의 무료 대안을 원하는 모든 사람.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트