Jina AI Reader 프로젝트 상세 소개
프로젝트 개요
Jina AI Reader는 임의의 URL을 대규모 언어 모델(LLM)에 친숙한 입력 형식으로 변환하는 오픈 소스 도구입니다. 이 프로젝트는 Jina AI에서 개발 및 유지 관리하며, Apache-2.0 오픈 소스 라이선스를 채택하여 AI Agent 및 RAG(검색 증강 생성) 시스템에 고품질의 웹 페이지 콘텐츠 추출 서비스를 제공합니다.
핵심 기능
1. 웹 페이지 콘텐츠 변환 (Read 기능)
- 주요 기능: 모든 URL을 LLM에 친숙한 입력 형식으로 변환
- 사용 방법: 임의의 URL 앞에
https://r.jina.ai/접두사 추가 - 예시:
원본 URL: https://en.wikipedia.org/wiki/Artificial_intelligence 변환 URL: https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
2. 스마트 웹 페이지 검색 (Search 기능)
- 주요 기능: 쿼리를 기반으로 웹 페이지를 검색하고 LLM 친화적인 형식으로 결과 반환
- 사용 방법: 쿼리 앞에
https://s.jina.ai/접두사 추가 - 작동 원리: 자동으로 웹 페이지 검색, 상위 5개 결과 획득, 각 URL에 접근하여 콘텐츠 변환 적용
- 예시:
쿼리: Who will win 2024 US presidential election? 검색 URL: https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F
3. 고급 기능 특성
이미지 인식 및 설명
- 기능: alt 태그가 없는 이미지에 대해 자동으로 설명 생성
- 형식:
Image [idx]: [caption] - 활성화 방법: 요청 헤더
x-with-generated-alt: true사용
PDF 문서 지원
- 기능: PDF 문서를 직접 읽고 분석
- 업데이트 시간: 2024년 5월 30일 신규 기능 추가
사이트 내 검색
- 기능: 검색 결과를 특정 도메인 또는 웹사이트로 제한
- 사용 방법: 쿼리 파라미터에
site=example.com설정 - 예시:
curl 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
기술 아키텍처
지원하는 웹 페이지 유형
- 정적 웹 페이지: 전통적인 HTML 페이지
- 단일 페이지 애플리케이션 (SPA): JavaScript 프레임워크 기반의 현대적인 웹 애플리케이션
- 동적 콘텐츠: 클라이언트 렌더링에 의존하는 웹 페이지
기반 기술
- 렌더링 엔진: Puppeteer 및 헤드리스 Chrome 브라우저 기반
- 개발 언어: TypeScript
- 라이선스: Apache-2.0
API 구성 옵션
요청 헤더 제어
기본 구성
# 이미지 설명 활성화
x-with-generated-alt: true
# Cookie 설정 전달
x-set-cookie: [cookie_string]
# 캐시 우회
x-no-cache: true
# 사용자 정의 캐시 허용 오차 (초)
x-cache-tolerance: [seconds]
프록시 및 선택기
# 프록시 서버 지정
x-proxy-url: [proxy_url]
# 대상 요소 선택기
x-target-selector: [css_selector]
# 특정 요소가 나타날 때까지 대기
x-wait-for-selector: [css_selector]
# 타임아웃 시간 설정
x-timeout: [seconds]
응답 형식 제어
# Markdown 형식으로 반환 (가독성 필터링 우회)
x-respond-with: markdown
# 원본 HTML 반환
x-respond-with: html
# 순수 텍스트 반환
x-respond-with: text
# 웹 페이지 스크린샷 URL 반환
x-respond-with: screenshot
출력 형식
스트리밍 출력
# 스트리밍 모드 활성화
curl -H "Accept: text/event-stream" https://r.jina.ai/[URL]
JSON 형식
# JSON 형식 응답 획득
curl -H "Accept: application/json" https://r.jina.ai/[URL]
JSON 응답 구조:
{
"url": "원본 URL",
"title": "페이지 제목",
"content": "추출된 내용"
}
특수 상황 처리
단일 페이지 애플리케이션 (SPA) 지원
SPA의 특수성으로 인해 다음과 같은 솔루션 제공:
Hash 라우팅 처리
#을 포함하는 URL의 경우, POST 메서드 사용:
curl -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
프리로딩 콘텐츠 처리
프리로딩 콘텐츠를 표시하는 웹 페이지의 경우:
- 타임아웃 대기 지정:
curl 'https://example.com/' -H 'x-timeout: 30'
- 특정 요소 대기:
curl 'https://example.com/' -H 'x-wait-for-selector: #content'
- 스트리밍 모드 사용:
curl -H "Accept: text/event-stream" https://r.jina.ai/https://example.com/
배포 및 사용
생산 환경 사용
- 서비스 상태: 무료, 안정적, 확장 가능한 생산 수준 서비스
- 유지 관리 상태: Jina AI의 핵심 제품 중 하나로 적극적으로 유지 관리 중
- 서비스 주소: https://r.jina.ai/ 및 https://s.jina.ai/
활용 시나리오
AI Agent 시스템
- AI Agent에 구조화된 웹 페이지 콘텐츠 제공
- Agent의 웹 페이지 정보 수집 및 분석 지원
- 실시간 웹 페이지 검색 기능 제공
RAG 시스템
- 웹 페이지 콘텐츠를 벡터 데이터베이스 친화적인 형식으로 변환
- 검색 증강 생성을 위한 지식 획득 지원
- 고품질의 외부 지식 소스 제공
콘텐츠 분석
- 웹 페이지 콘텐츠 추출 및 정리
- 멀티미디어 콘텐츠 이해 (이미지 설명)
- 문서 형식 통일화
성능 및 제한
응답 성능
- 처리 시간: 일반적으로 2초 이내에 URL 처리 및 콘텐츠 반환
- 복잡한 페이지: 복잡하거나 동적인 페이지는 더 많은 시간 소요 가능
사용 제한
- 속도 제한 존재 (자세한 내용은 공식 문서 참조)
- 반환되는 콘텐츠는 원본 언어 유지, 번역 서비스는 제공하지 않음
Jina AI Reader는 현대적인 AI 시스템을 위해 특별히 설계된 강력한 오픈 소스 도구로, LLM이 웹 페이지 콘텐츠를 처리할 때 직면하는 형식 및 품질 문제를 해결합니다. 간단한 URL 접두사 추가를 통해 고품질의 구조화된 웹 페이지 콘텐츠를 얻을 수 있으며, AI Agent 및 RAG 시스템 구축에 이상적인 도구입니다.