Ihre LLMs verdienen mehr Input.
Reader macht zwei Dinge:
Lesen Sie : Es konvertiert jede URL in eine LLM-freundliche Eingabe mit https://r.jina.ai/https://your.url
. Erhalten Sie kostenlos eine verbesserte Leistung für Ihre Agenten- und RAG-Systeme.
Suche : Durchsucht das Web nach einer bestimmten Suchanfrage mit https://s.jina.ai/your+query
. Dies ermöglicht Ihren LLMs den Zugriff auf das neueste Weltwissen aus dem Internet.
Schauen Sie sich die Live-Demo an
Oder besuchen Sie einfach diese URLs ( Lesen ) https://r.jina.ai/https://github.com/jina-ai/reader, ( Suchen ) https://s.jina.ai/Who%20will%20win %202024%20US%20presidential%20election%3F und sehen Sie sich selbst.
Fühlen Sie sich frei, die Reader-API in der Produktion zu verwenden. Es ist kostenlos, stabil und skalierbar. Wir pflegen es aktiv als eines der Kernprodukte von Jina AI. Schauen Sie sich das Ratenlimit an
08.10.2024 : Einführung eines adaptive crawler
. Es kann die Website rekursiv crawlen und die relevantesten Seiten für eine bestimmte Webseite extrahieren.
15.07.2024 : Um die Ergebnisse von s.jina.ai
auf bestimmte Domains/Websites zu beschränken, können Sie z. B. site=jina.ai
in den Abfrageparametern festlegen, was eine In-Site-Suche ermöglicht. Weitere Optionen finden Sie in unserer aktualisierten Live-Demo.
01.07.2024 : Wir haben einen DDoS-Angriff und anderen Traffic-Missbrauch seit dem 27. Juni behoben. Wir haben außerdem einen am 28. Juni aufgetretenen Fehler gefunden, der bei einigen Websites zu einer höheren Latenz führen kann. Der Angriff und der Fehler wurden behoben; Wenn Sie zwischen dem 27. und 30. Juni eine hohe Latenz von r.jina.ai festgestellt haben, sollte diese jetzt wieder normal sein.
30.05.2024 : Der Leser kann jetzt ein beliebiges PDF von jeder URL aus lesen! Schauen Sie sich dieses PDF-Ergebnis von NASA.gov im Vergleich zum Original an.
15.05.2024 : Wir haben einen neuen Endpunkt s.jina.ai
eingeführt, der im Web sucht und Top-5-Ergebnisse zurückgibt, jeweils in einem LLM-freundlichen Format. Lesen Sie hier mehr über diese neue Funktion.
08.05.2024 : Die Bildunterschrift ist zur besseren Latenz standardmäßig deaktiviert. Um es zu aktivieren, legen Sie x-with-generated-alt: true
im Anforderungsheader fest.
03.05.2024 : Wir haben endlich einen DDoS-Angriff seit dem 29. April behoben. Jetzt ist unsere API viel zuverlässiger und skalierbarer als je zuvor!
24.04.2024 : Sie haben jetzt eine detailliertere Kontrolle über die Reader-API mithilfe von Headern, z. B. Weiterleitungscookies, mithilfe eines HTTP-Proxys.
15.04.2024 : Reader unterstützt jetzt das Lesen von Bildern! Es beschriftet alle Bilder unter der angegebenen URL und fügt Image [idx]: [caption]
als Alt-Tag hinzu (falls zunächst eines fehlt). Dadurch können nachgeschaltete LLMs mit den Bildern interagieren, um Überlegungen anzustellen, sie zusammenzufassen usw. Siehe Beispiel hier.
r.jina.ai
zum Abrufen einzelner URLs Stellen Sie einfach https://r.jina.ai/
einer beliebigen URL voran. Um beispielsweise die URL https://en.wikipedia.org/wiki/Artificial_intelligence
in eine LLM-freundliche Eingabe umzuwandeln, verwenden Sie die folgende URL:
https://r.jina.ai/https://en.wikipedia.org/wiki/Artificial_intelligence
r.jina.ai
für einen vollständigen Website-Abruf (Google Colab)s.jina.ai
für die Websuche Stellen Sie Ihrer Suchanfrage einfach https://s.jina.ai/
voran. Beachten Sie, dass Sie, wenn Sie dies im Code verwenden, darauf achten müssen, Ihre Suchanfrage zuerst zu kodieren, z. B. wenn Ihre Suchanfrage lautet: Who will win 2024 US presidential election?
dann sollte Ihre URL so aussehen:
https://s.jina.ai/Who%20will%20win%202024%20US%20presidential%20election%3F
Hinter den Kulissen durchsucht Reader das Web, ruft die Top-5-Ergebnisse ab, besucht jede URL und wendet r.jina.ai
darauf an. Dies unterscheidet sich von vielen web search function-calling
in Agent-/RAG-Frameworks, die oft nur den Titel, die URL und die Beschreibung zurückgeben, die von der Suchmaschinen-API bereitgestellt werden. Wenn Sie ein Ergebnis genauer lesen möchten, müssen Sie den Inhalt selbst von dieser URL abrufen. Mit Reader ruft http://s.jina.ai
automatisch den Inhalt der Top-5-Suchergebnis-URLs für Sie ab (wobei der Tech-Stack hinter http://r.jina.ai
wiederverwendet wird). Dies bedeutet, dass Sie sich nicht selbst um das Rendern, Blockieren oder andere Probleme im Zusammenhang mit JavaScript und CSS kümmern müssen.
s.jina.ai
für die In-Site-Suche Geben Sie einfach site
in den Abfrageparametern an, z. B.:
curl 'https://s.jina.ai/When%20was%20Jina%20AI%20founded%3F?site=jina.ai&site=github.com'
Wir empfehlen dringend, den Code-Builder zu verwenden, um verschiedene Parameterkombinationen der Reader-API zu erkunden.
Wie Sie oben bereits gesehen haben, kann man das Verhalten der Reader-API mithilfe von Anforderungsheadern steuern. Hier ist eine vollständige Liste der unterstützten Header.
Sie können die Bildunterschriftsfunktion über den Header x-with-generated-alt: true
aktivieren.
Sie können die Reader-API bitten, Cookie-Einstellungen über den x-set-cookie
Header weiterzuleiten.
Beachten Sie, dass Anfragen mit Cookies nicht zwischengespeichert werden.
Sie können die readability
über den x-respond-with
-Header umgehen, insbesondere:
x-respond-with: markdown
gibt Markdown zurück, ohne reability
zu durchlaufen
x-respond-with: html
gibt documentElement.outerHTML
zurück
x-respond-with: text
gibt document.body.innerText
zurück
x-respond-with: screenshot
gibt die URL des Screenshots der Webseite zurück
Sie können einen Proxyserver über den x-proxy-url
Header angeben.
Sie können die Cache-Toleranz über den Header x-cache-tolerance
anpassen (Ganzzahl in Sekunden).
Sie können die zwischengespeicherte Seite (Lebensdauer 3600 Sekunden) über den Header x-no-cache: true
(entspricht x-cache-tolerance: 0
) umgehen.
Wenn Sie die HTML-Struktur Ihrer Zielseite bereits kennen, können Sie x-target-selector
oder x-wait-for-selector
angeben, um die Reader-API anzuweisen, sich auf einen bestimmten Teil der Seite zu konzentrieren.
Durch Festlegen x-target-selector
Headers auf einen CSS-Selektor gibt die Reader-API den Inhalt innerhalb des übereinstimmenden Elements anstelle des vollständigen HTML zurück. Das Festlegen dieses Headers ist nützlich, wenn die automatische Inhaltsextraktion den gewünschten Inhalt nicht erfasst und Sie das richtige Ziel manuell auswählen können.
Durch Festlegen x-wait-for-selector
Headers auf einen CSS-Selektor wartet die Reader-API, bis das übereinstimmende Element gerendert wurde, bevor sie den Inhalt zurückgibt. Wenn Sie x-wait-for-selector
bereits angegeben haben, kann dieser Header weggelassen werden, wenn Sie auf dasselbe Element warten möchten.
r.jina.ai
zum Abrufen von Einzelseitenanwendungen (SPA).Viele Websites verlassen sich heutzutage auf JavaScript-Frameworks und clientseitiges Rendering. Wird normalerweise als Single Page Application (SPA) bezeichnet. Dank Puppeteer und dem Headless-Browser Chrome unterstützt Reader nativ das Abrufen dieser Websites. Aufgrund des spezifischen Ansatzes, den einige SPAs entwickeln, können jedoch zusätzliche Vorsichtsmaßnahmen erforderlich sein.
Gemäß der Definition der Webstandards werden Inhalte, die in einer URL nach dem #
stehen, nicht an den Server gesendet. Um dieses Problem zu beheben, verwenden Sie POST
-Methode mit url
Parameter im Textkörper.
curl -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
Einige SPAs oder sogar einige Websites, die keine reinen SPAs sind, zeigen möglicherweise vorab geladene Inhalte an, bevor der Hauptinhalt später dynamisch geladen wird. In diesem Fall erfasst der Reader möglicherweise den Preload-Inhalt anstelle des Hauptinhalts. Um dieses Problem zu beheben, finden Sie hier einige mögliche Lösungen:
x-timeout
Wenn eine Zeitüberschreitung explizit angegeben wird, versucht der Reader nicht, vorzeitig zurückzukehren, und wartet auf die Netzwerkinaktivität, bis die Zeitüberschreitung erreicht ist. Dies ist nützlich, wenn die Zielwebsite irgendwann in den Leerlauf des Netzwerks gerät.
curl 'https://example.com/' -H 'x-timeout: 30'
x-wait-for-selector
Wenn „wait-for-selector“ explizit angegeben wird, wartet Reader auf das Erscheinen des angegebenen CSS-Selektors, bis das Timeout erreicht ist. Dies ist nützlich, wenn Sie genau wissen, auf welches Element Sie warten müssen.
curl 'https://example.com/' -H 'x-wait-for-selector: #content'
Der Streaming-Modus ist nützlich, wenn Sie feststellen, dass der Standardmodus ein unvollständiges Ergebnis liefert. Dies liegt daran, dass der Reader etwas länger wartet, bis die Seite stabil gerendert wird. Verwenden Sie den Accept-Header, um den Streaming-Modus umzuschalten:
curl -H „Akzeptieren: text/event-stream“ https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
Die Daten kommen in einem Stream; Jeder nachfolgende Block enthält umfassendere Informationen. Der letzte Block sollte das vollständigste und endgültigste Ergebnis liefern. Wenn Sie von LLMs kommen, beachten Sie bitte, dass es sich hierbei um ein anderes Verhalten als das Textgenerierungs-Streaming der LLMs handelt.
Vergleichen Sie beispielsweise diese beiden Curl-Befehle unten. Sie können sehen, dass Streaming eins Ihnen endlich vollständige Informationen liefert, während dies im Standardmodus nicht der Fall ist. Dies liegt daran, dass das Laden des Inhalts auf dieser bestimmten Website durch einige js ausgelöst wird, nachdem die Seite vollständig geladen ist, und der Standardmodus die Seite „zu früh“ zurückgibt.
curl -H 'x-no-cache: true' https://access.redhat.com/security/cve/CVE-2023-45853 curl -H "Accept: text/event-stream" -H 'x-no-cache: true' https://r.jina.ai/https://access.redhat.com/security/cve/CVE-2023 -45853
Hinweis:
-H 'x-no-cache: true'
wird nur zu Demonstrationszwecken verwendet, um den Cache zu umgehen.
Der Streaming-Modus ist auch nützlich, wenn Ihr nachgelagertes LLM-/Agentensystem eine sofortige Bereitstellung von Inhalten erfordert oder Daten in Blöcken verarbeiten muss, um E/A- und LLM-Verarbeitungszeiten zu verzahnen. Dies ermöglicht einen schnelleren Zugriff und eine effizientere Datenverarbeitung:
Reader API: streamContent1 ----> streamContent2 ----> streamContent3 ---> ...
| | |
v | |
Your LLM: LLM(streamContent1) | |
v |
LLM(streamContent2) |
v
LLM(streamContent3)
Beachten Sie, dass im Hinblick auf die Vollständigkeit: ... > streamContent3 > streamContent2 > streamContent1
jeder nachfolgende Block vollständigere Informationen enthält.
Dies ist noch sehr früh und das Ergebnis ist kein wirklich „nützlicher“ JSON. Es enthält nur die drei Felder url
, title
und content
. Nichtsdestotrotz können Sie Accept-Header verwenden, um das Ausgabeformat zu steuern:
curl -H „Akzeptieren: application/json“ https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
Der JSON-Modus ist in s.jina.ai
wahrscheinlich nützlicher als in r.jina.ai
Für s.jina.ai
mit JSON-Modus werden 5 Ergebnisse in einer Liste zurückgegeben, jeweils in der Struktur {'title', 'content', 'url'}
.
Alle Bilder auf dieser Seite, denen alt
-Tag fehlt, können von einem VLM (Vision-Sprachmodell) automatisch beschriftet und als !(Image [idx]: [VLM_caption])[img_URL]
formatiert werden. Dies sollte Ihrem nachgelagerten Nur-Text-LLM gerade genug Hinweise geben, um diese Bilder in die Argumentation, Auswahl und Zusammenfassung einzubeziehen. Verwenden Sie den Header x-with-generated-alt, um den Streaming-Modus umzuschalten:
curl -H „X-With-Generated-Alt: true“ https://r.jina.ai/https://en.m.wikipedia.org/wiki/Main_Page
Zum Ausführen des Projekts benötigen Sie die folgenden Tools:
Node v18 (Der Build schlägt für Node-Version >18 fehl)
Firebase-CLI ( npm install -g firebase-tools
)
Gehen Sie für das Backend in das Verzeichnis backend/functions
und installieren Sie die npm-Abhängigkeiten.
git clone [email protected]:jina-ai/reader.gitcd backend/functions npm installieren
thinapps-shared
Submodul? Möglicherweise fällt Ihnen ein Verweis auf das thinapps-shared
“-Submodul auf, ein internes Paket, das wir verwenden, um Code für unsere Produkte gemeinsam zu nutzen. Obwohl es nicht Open-Source ist und nicht in die Funktionen des Readers integriert ist, hilft es hauptsächlich bei Dekoratoren, Protokollierung, Geheimnisverwaltung usw. Sie können es vorerst einfach ignorieren.
Das heißt, dies ist die einzige Codebasis hinter https://r.jina.ai
. Jedes Mal, wenn wir uns hier engagieren, werden wir die neue Version auf https://r.jina.ai
bereitstellen.
Bitte melden Sie ein Problem mit der URL, mit der Sie Probleme haben. Wir werden es untersuchen und versuchen, es zu beheben.
Reader wird von Jina AI unterstützt und ist unter Apache-2.0 lizenziert.