귀하의 LLM은 더 나은 의견을 받을 자격이 있습니다.
리더는 두 가지 작업을 수행합니다.
읽기 : https://r.jina.ai/https://your.url
사용하여 모든 URL을 LLM 친화적인 입력으로 변환합니다. 무료로 에이전트 및 RAG 시스템의 향상된 출력을 얻으세요.
검색 : https://s.jina.ai/your+query
로 웹에서 특정 쿼리를 검색합니다. 이를 통해 LLM은 웹에서 최신 세계 지식에 액세스할 수 있습니다.
라이브 데모를 확인해보세요
아니면 다음 URL을 방문하세요. ( 읽기 ) https://r.jina.ai/https://github.com/jina-ai/reader, ( 검색 ) https://s.jina.ai/Who%20will%20win %202024%20US%20presidential%20election%3F 직접 확인해보세요.
프로덕션에서 자유롭게 Reader API를 사용해 보세요. 무료이고 안정적이며 확장 가능합니다. 진아AI의 핵심 제품 중 하나로 적극적으로 유지하고 있습니다. 속도 제한 확인
2024-10-08 : adaptive crawler
출시. 웹사이트를 재귀적으로 크롤링하고 특정 웹페이지와 가장 관련성이 높은 페이지를 추출할 수 있습니다.
2024-07-15 : s.jina.ai
의 결과를 특정 도메인/웹사이트로 제한하려면 예를 들어 쿼리 매개변수에 site=jina.ai
설정하면 사이트 내 검색이 가능해집니다. 더 많은 옵션을 보려면 업데이트된 라이브 데모를 사용해 보세요.
2024-07-01 : 6월 27일부터 DDoS 공격 및 기타 트래픽 남용을 해결했습니다. 또한 6월 28일에 일부 웹사이트에서 대기 시간이 길어질 수 있는 버그를 발견했습니다. 공격과 버그가 해결되었습니다. 6월 27일부터 30일 사이에 r.jina.ai의 높은 대기 시간을 경험했다면 이제 정상으로 돌아올 것입니다.
2024-05-30 : 이제 독자는 모든 URL에서 임의의 PDF를 읽을 수 있습니다! NASA.gov에서 원본과 비교하여 이 PDF 결과를 확인하세요.
2024-05-15 : 웹에서 검색하고 상위 5개 결과를 각각 LLM 친화적인 형식으로 반환하는 새로운 엔드포인트 s.jina.ai
도입했습니다. 여기에서 이 새로운 기능에 대해 자세히 알아보세요.
2024-05-08 : 대기 시간 단축을 위해 이미지 캡션이 기본적으로 꺼져 있습니다. 이 기능을 켜려면 요청 헤더에 x-with-generated-alt: true
설정하세요.
2024-05-03 : 4월 29일 이후 발생한 DDoS 공격을 드디어 해결했습니다. 이제 우리의 API는 그 어느 때보다 훨씬 더 안정적이고 확장 가능합니다!
2024-04-24 : 이제 헤더를 사용하여 Reader API를 더욱 세밀하게 제어할 수 있습니다(예: HTTP 프록시 사용, 쿠키 전달).
2024-04-15 : 이제 리더에서 이미지 읽기를 지원합니다! 지정된 URL의 모든 이미지에 캡션을 추가하고 Image [idx]: [caption]
alt 태그로 추가합니다(처음에 없는 경우). 이를 통해 다운스트림 LLM은 추론, 요약 등을 통해 이미지와 상호 작용할 수 있습니다. 여기 예를 참조하세요.
r.jina.ai
사용 URL 앞에 https://r.jina.ai/
추가하기만 하면 됩니다. 예를 들어 URL https://en.wikipedia.org/wiki/Artificial_intelligence
LLM 친화적인 입력으로 변환하려면 다음 URL을 사용하십시오.
https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
r.jina.ai
사용(Google Colab)s.jina.ai
사용하기 검색어 앞에 https://s.jina.ai/
추가하기만 하면 됩니다. 코드에서 이를 사용하는 경우 먼저 검색 쿼리를 인코딩해야 합니다. 예를 들어 쿼리가 Who will win 2024 US presidential election?
인 경우입니다. 그러면 URL은 다음과 같아야 합니다.
https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F See More
그 뒤에서 Reader는 웹을 검색하고 상위 5개 결과를 가져온 다음 각 URL을 방문하고 r.jina.ai
적용합니다. 이는 종종 검색 엔진 API에서 제공하는 제목, URL 및 설명만 반환하는 에이전트/RAG 프레임워크의 많은 web search function-calling
과 다릅니다. 하나의 결과를 더 자세히 읽으려면 해당 URL에서 직접 콘텐츠를 가져와야 합니다. Reader를 사용하면 http://s.jina.ai
상위 5개 검색 결과 URL에서 자동으로 콘텐츠를 가져옵니다( http://r.jina.ai
뒤의 기술 스택 재사용). 이는 브라우저 렌더링, 차단 또는 JavaScript 및 CSS와 관련된 문제를 직접 처리할 필요가 없음을 의미합니다.
s.jina.ai
사용하기 다음과 같이 쿼리 매개변수에 site
지정하기만 하면 됩니다.
컬 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
Reader API의 다양한 매개변수 조합을 탐색하려면 코드 빌더를 사용하는 것이 좋습니다.
위에서 이미 본 것처럼 요청 헤더를 사용하여 Reader API의 동작을 제어할 수 있습니다. 지원되는 헤더의 전체 목록은 다음과 같습니다.
x-with-generated-alt: true
헤더를 통해 이미지 캡션 기능을 활성화할 수 있습니다.
x-set-cookie
헤더를 통해 쿠키 설정을 전달하도록 Reader API에 요청할 수 있습니다.
쿠키가 포함된 요청은 캐시되지 않습니다.
x-respond-with
헤더를 통해 readability
필터링을 우회할 수 있습니다. 특히 다음과 같습니다.
x-respond-with: markdown
reability
거치지 않고 마크다운을 반환합니다.
x-respond-with: html
documentElement.outerHTML
반환합니다.
x-respond-with: text
document.body.innerText
를 반환합니다.
x-respond-with: screenshot
웹페이지 스크린샷의 URL을 반환합니다.
x-proxy-url
헤더를 통해 프록시 서버를 지정할 수 있습니다.
x-cache-tolerance
헤더(초 단위의 정수)를 통해 캐시 허용 오차를 사용자 정의할 수 있습니다.
x-no-cache: true
헤더( x-cache-tolerance: 0
과 동일)를 통해 캐시된 페이지(수명 3600초)를 우회할 수 있습니다.
대상 페이지의 HTML 구조를 이미 알고 있는 경우 x-target-selector
또는 x-wait-for-selector
지정하여 Reader API가 페이지의 특정 부분에 집중하도록 지시할 수 있습니다.
x-target-selector
헤더를 CSS 선택기로 설정하면 Reader API는 전체 HTML 대신 일치하는 요소 내의 콘텐츠를 반환합니다. 이 헤더를 설정하는 것은 자동 콘텐츠 추출이 원하는 콘텐츠를 캡처하지 못하고 올바른 대상을 수동으로 선택할 수 있는 경우에 유용합니다.
x-wait-for-selector
헤더를 CSS 선택기로 설정하면 Reader API는 콘텐츠를 반환하기 전에 일치하는 요소가 렌더링될 때까지 기다립니다. x-wait-for-selector
이미 지정한 경우 동일한 요소를 기다리려는 경우 이 헤더를 생략할 수 있습니다.
r.jina.ai
사용오늘날 많은 웹사이트는 JavaScript 프레임워크와 클라이언트측 렌더링에 의존합니다. 일반적으로 단일 페이지 애플리케이션(SPA)으로 알려져 있습니다. Puppeteer와 헤드리스 Chrome 브라우저 덕분에 Reader는 기본적으로 이러한 웹사이트 가져오기를 지원합니다. 그러나 특정 접근 방식으로 인해 일부 SPA가 개발되었으므로 취해야 할 추가 예방 조치가 있을 수 있습니다.
웹 표준 정의에 따라 URL에서 #
뒤에 오는 내용은 서버로 전송되지 않습니다. 이 문제를 완화하려면 본문에 url
매개변수가 있는 POST
메서드를 사용하세요.
컬 -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
일부 SPA 또는 엄밀히 말하면 SPA가 아닌 일부 웹사이트에서는 나중에 기본 콘텐츠를 동적으로 로드하기 전에 미리 로드된 콘텐츠를 표시할 수 있습니다. 이 경우 Reader는 기본 콘텐츠 대신 미리 로드된 콘텐츠를 캡처할 수 있습니다. 이 문제를 완화하기 위한 몇 가지 가능한 해결 방법은 다음과 같습니다.
x-timeout
제한 지정시간 초과가 명시적으로 지정되면 Reader는 조기 반환을 시도하지 않고 시간 초과에 도달할 때까지 네트워크 유휴 상태를 기다립니다. 이는 대상 웹사이트가 결국 네트워크 유휴 상태가 될 때 유용합니다.
컬 'https://example.com/' -H 'x-timeout: 30'
x-wait-for-selector
지정선택기 대기가 명시적으로 지정되면 Reader는 시간 초과에 도달할 때까지 지정된 CSS 선택기가 나타날 때까지 기다립니다. 이는 대기할 요소가 무엇인지 정확히 알 때 유용합니다.
컬 'https://example.com/' -H 'x-wait-for-selector: #content'
스트리밍 모드는 표준 모드가 불완전한 결과를 제공하는 경우 유용합니다. 이는 페이지가 안정적으로 렌더링될 때까지 Reader가 조금 더 오래 기다리기 때문입니다. 스트리밍 모드를 전환하려면 accept-header를 사용하세요.
컬 -H "수락: text/event-stream" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
데이터는 스트림으로 제공됩니다. 각 후속 청크에는 더 완전한 정보가 포함됩니다. 마지막 청크는 가장 완전하고 최종적인 결과를 제공해야 합니다. LLM에서 온 경우 LLM의 텍스트 생성 스트리밍과 동작이 다르다는 점에 유의하세요.
예를 들어 아래 두 개의 컬 명령을 비교해 보세요. 스트리밍 모드는 마침내 완전한 정보를 제공하는 반면 표준 모드는 그렇지 않다는 것을 알 수 있습니다. 이는 페이지가 완전히 로드된 후 일부 js에 의해 이 특정 사이트의 콘텐츠 로드가 트리거되고 표준 모드가 페이지를 "너무 빨리" 반환하기 때문입니다.
컬 -H 'x-no-cache: true' https://access.redhat.com/security/cve/CVE-2023-45853 컬 -H "수락: text/event-stream" -H 'x-no-cache: true' https://r.jina.ai/https://access.redhat.com/security/cve/CVE-2023 -45853
참고:
-H 'x-no-cache: true'
캐시를 우회하기 위한 데모 목적으로만 사용됩니다.
스트리밍 모드는 다운스트림 LLM/에이전트 시스템에 즉각적인 콘텐츠 전달이 필요하거나 I/O 및 LLM 처리 시간을 인터리브하기 위해 데이터를 청크로 처리해야 하는 경우에도 유용합니다. 이를 통해 보다 빠른 액세스와 보다 효율적인 데이터 처리가 가능해졌습니다.
Reader API: streamContent1 ----> streamContent2 ----> streamContent3 ---> ...
| | |
v | |
Your LLM: LLM(streamContent1) | |
v |
LLM(streamContent2) |
v
LLM(streamContent3)
완전성 측면에서 ... > streamContent3 > streamContent2 > streamContent1
각 후속 청크에 더 완전한 정보가 포함됩니다.
이는 아직 초기 단계이며 결과는 실제로 "유용한" JSON이 아닙니다. 여기에는 url
, title
및 content
세 개의 필드만 포함됩니다. 그럼에도 불구하고 accept-header를 사용하여 출력 형식을 제어할 수 있습니다.
컬 -H "수락: application/json" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
JSON 모드는 아마도 r.jina.ai
보다 s.jina.ai
에서 더 유용할 것입니다. JSON 모드를 사용하는 s.jina.ai
의 경우 각각 {'title', 'content', 'url'}
구조로 된 5개의 결과를 목록으로 반환합니다.
alt
태그가 없는 해당 페이지의 모든 이미지는 VLM(비전 언어 모델)에 의해 자동 캡션이 추가되고 !(Image [idx]: [VLM_caption])[img_URL]
형식으로 지정될 수 있습니다. 이렇게 하면 다운스트림 텍스트 전용 LLM에 해당 이미지를 추론, 선택 및 요약에 포함할 만큼 충분한 힌트가 제공됩니다. 스트리밍 모드를 전환하려면 x-with-generated-alt 헤더를 사용하세요.
컬 -H "X-With-Generated-Alt: true" https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
프로젝트를 실행하려면 다음 도구가 필요합니다.
Node v18(Node 버전 >18에서는 빌드가 실패함)
Firebase CLI( npm install -g firebase-tools
)
백엔드의 경우 backend/functions
디렉터리로 이동하여 npm 종속성을 설치합니다.
git clone [email protected]:jina-ai/reader.gitcd 백엔드/함수 npm 설치
thinapps-shared
서브 모듈이란 무엇입니까? 제품 전체에서 코드를 공유하는 데 사용하는 내부 패키지인 thinapps-shared
하위 모듈에 대한 참조를 볼 수 있습니다. 오픈 소스가 아니며 Reader의 기능에 필수적이지는 않지만 주로 데코레이터, 로깅, 비밀 관리 등에 도움이 됩니다. 지금은 무시해도 됩니다.
즉, 이는 https://r.jina.ai
뒤에 있는 단일 코드베이스 이므로 여기에서 커밋할 때마다 https://r.jina.ai
에 새 버전을 배포하게 됩니다.
문제가 있는 URL에 대해 문제를 제기해 주세요. 우리는 그것을 조사하고 고치도록 노력할 것입니다.
Reader는 Jina AI의 지원을 받으며 Apache-2.0에 따라 라이센스가 부여됩니다.