LLM には、より良い意見が求められます。
Reader は次の 2 つのことを行います。
読む: https://r.jina.ai/https://your.url
を使用して、あらゆる URL をLLM 対応の入力に変換します。エージェントと RAG システムの出力を無料で改善できます。
Search : https://s.jina.ai/your+query
を使用して、指定されたクエリを Web 上で検索します。これにより、LLM は Web から最新の世界の知識にアクセスできるようになります。
ライブデモをチェックしてください
または、これらの 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 を自由に使用してください。無料で安定しており、スケーラブルです。 Jina AI の中核製品の 1 つとして積極的にメンテナンスを行っています。レート制限を確認する
2024-10-08 : adaptive crawler
を導入しました。 Web サイトを再帰的にクロールし、特定の Web ページに最も関連性の高いページを抽出できます。
2024-07-15 : s.jina.ai
の結果を特定のドメイン/ウェブサイトに制限するには、クエリ パラメーターにsite=jina.ai
などを設定すると、サイト内検索が有効になります。その他のオプションについては、更新されたライブデモを試してください。
2024-07-01 : 6 月 27 日以来の DDoS 攻撃とその他のトラフィック悪用を解決しました。また、6 月 28 日に導入されたバグも発見され、一部の Web サイトで遅延が長くなる可能性があります。攻撃とバグは解決されました。 6 月 27 日から 30 日の間に r.jina.ai の遅延が長くなっていた場合は、現在は正常に戻っているはずです。
2024-05-30 : Reader は任意の URL から任意の PDF を読めるようになりました。 NASA.gov とオリジナルの PDF 結果を比較してください。
2024-05-15 : Web 上で検索し、LLM に適した形式で上位 5 位の結果を返す新しいエンドポイントs.jina.ai
を導入しました。この新機能の詳細については、こちらをご覧ください。
2024-05-08 : 遅延を改善するために、画像キャプションはデフォルトでオフになっています。これをオンにするには、リクエスト ヘッダーでx-with-generated-alt: true
を設定します。
2024-05-03 : 4 月 29 日以来の DDoS 攻撃をついに解決しました。当社の API は、これまでよりもはるかに信頼性と拡張性が向上しました。
2024-04-24 : HTTP プロキシを使用した Cookie の転送など、ヘッダーを使用して Reader API をより詳細に制御できるようになりました。
2024-04-15 : Reader が画像の読み取りをサポートしました。指定された URL にあるすべての画像にキャプションを付け、 Image [idx]: [caption]
alt タグとして追加します (最初に alt タグがない場合)。これにより、下流の LLM が推論や要約などで画像を操作できるようになります。例はこちらを参照してください。
r.jina.ai
を使用した単一 URL フェッチ任意の 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
を使用した Web サイト全体の取得 (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
Reader は舞台裏で Web を検索し、上位 5 件の結果を取得し、各 URL にアクセスして、それにr.jina.ai
を適用します。これは、検索エンジン API によって提供されるタイトル、URL、説明のみを返すエージェント/RAG フレームワークでの多くのweb search function-calling
とは異なります。 1 つの結果をより深く読みたい場合は、その 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 に Cookie 設定を転送するように依頼できます。
Cookie を含むリクエストはキャッシュされないことに注意してください。
具体的には、 x-respond-with
ヘッダーを使用してreadability
フィルタリングをバイパスできます。
x-respond-with: markdown
reability
を経由せずにmarkdown を返します。
x-respond-with: html
documentElement.outerHTML
を返します
x-respond-with: text
document.body.innerText
を返します
x-respond-with: screenshot
Web ページのスクリーンショットの 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
を使用したシングル ページ アプリケーション (SPA) のフェッチ現在、多くの Web サイトは JavaScript フレームワークとクライアント側のレンダリングに依存しています。通常はシングル ページ アプリケーション (SPA) として知られています。 Puppeteer とヘッドレス Chrome ブラウザのおかげで、Reader はこれらの Web サイトの取得をネイティブにサポートしています。ただし、一部の SPA は特殊なアプローチを開発しているため、追加の予防措置が必要になる場合があります。
Web 標準の定義により、URL 内の#
以降のコンテンツはサーバーに送信されません。この問題を軽減するには、本文にurl
パラメータを指定したPOST
メソッドを使用します。
カール -X POST 'https://r.jina.ai/' -d 'url=https://example.com/#/route'
一部の SPA、または厳密には SPA ではない一部の Web サイトでは、後でメイン コンテンツを動的にロードする前に、プリロード コンテンツが表示される場合があります。この場合、Reader はメイン コンテンツではなくプリロード コンテンツをキャプチャしている可能性があります。この問題を軽減するには、次のような解決策が考えられます。
x-timeout
の指定タイムアウトが明示的に指定されている場合、Reader は早期に復帰しようとせず、タイムアウトに達するまでネットワークがアイドルになるまで待機します。これは、ターゲット Web サイトが最終的にネットワーク アイドル状態になる場合に便利です。
カール 'https://example.com/' -H 'x-タイムアウト: 30'
x-wait-for-selector
指定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 のテキスト生成ストリーミングとは異なる動作であることに注意してください。
たとえば、以下の 2 つのcurl コマンドを比較してください。ストリーミングモードでは最終的に完全な情報が得られますが、標準モードではそうではないことがわかります。これは、この特定のサイトでのコンテンツの読み込みは、ページが完全に読み込まれた後にいくつかの js によってトリガーされ、標準モードでは「早すぎる」ページが返されるためです。
カール -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
注:
-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
3 つのフィールドのみが含まれます。それにもかかわらず、accept-header を使用して出力形式を制御できます。
curl -H "Accept: 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
の場合、リスト内の 5 つの結果が返され、それぞれが{'title', 'content', 'url'}
の構造になります。
そのページ内の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
プロジェクトを実行するには次のツールが必要です。
ノード v18 (ノード バージョンが 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 に基づいてライセンスされています。