ChatGPTをはじめとする大規模言語モデル(LLM)を使いこなすには、適切な「プロンプト」を与えることが重要だ。
プロンプトとは、ChatGPTなどのAIモデルへの指示や質問のこと。プロンプトが具体的で詳細であればあるほど、LLMはより的確で質の高い回答を生成してくれる。
特に、複雑な作業を依頼する際には、回答生成時に役立ちそうなWebページやPDFに掲載されている情報などまで、丸っとプロンプトに含めてしまうことで、それらの知識・情報を踏まえて回答が生成され、より精度が高まることが多い。
筆者の経験では、特にo1, o3, o3-miniのような「推論モデル」を利用する際には、こうしたコンテキスト(背景情報・文脈)をできるだけ沢山与えた方が、いい回答が出力される傾向があると思う。
しかし、コンテキストを充実させようとすると、WebページやPDFのテキストを、ChatGPTのアプリにコピー&ペーストを繰り返す必要がある。
Webサイトによっては、邪魔な広告や特殊なレイアウトのせいで、コピペがうまくいかないことも多く、非常にストレスが溜まる作業だ。
そこで便利なのが、Jina AIが提供するReader APIである。
Reader APIは、WebページのURLを入力するだけで、そのページのテキスト情報だけを瞬時にプレーンテキストやMarkdownテキスト形式で抽出してくれる。
ChatGPTなどのLLMにWebページの情報をプロンプトとして与える際に、非常に便利だ。
本記事では、Jina AIのReader APIの使い方を詳しく解説する。
1分で分かるWebページをテキスト化する方法
Jina Reader APIの詳細については以下で詳しく説明するが、急いでいる人のために、最もシンプルな使い方を先に説明しておく。
まず、テキストを抽出したいWebページのURLを用意する。
そして、そのURLの冒頭に、r.jina.ai
をつけて、アクセスするだけで完了だ。
例えば、当サイトの記事からテキストを抽出したいとすれば、適当な記事のURL(例
:https://notai.jp/o3-mini/
)をコピーして、冒頭にjinaのURLを足す(例:r.jina.ai/https://notai.jp/o3-mini/
)。
これをブラウザで開いてみただけで、以下のようなMarkdownテキストだけのページへと変換された。
あとは、このテキストを丸ごとコピーして、ChatGPTなどのLLMに対するプロンプトに含めればいいだけだ。
URLをテキストに変換する「Jina Reader API」の概要
以上で手順だけ先に説明したが、これは「Jina Reader API」というツールによって実現されている。
Jina Reader APIは、Webサイトからテキストと、見出し構造などを正確に抽出するサービスだ。広告やサイドバーなどの余計な部分は除外して、本文だけを綺麗に抽出してくれる。
ユーザーは、URLを用意するだけでよいので、使い方も非常に簡単だ。
なお、1分間に20リクエストまでという使用量制限はあるが、無料で利用し続けることが可能だ。
開発者やヘビーユーザーでなければ、ほとんどこの制限に引っかかることはない。
Jina Reader APIを使う方法は、主に以下の三つである。
- 公式サイトでブラウザ上で利用する
- Jina AIの公式サイトにアクセスし、Reader APIのページでURLを入力するだけで、テキストを取得できる。
- 会員登録は不要で、誰でも簡単に利用できる。
- URLの冒頭に
r.jina.ai
をつける- 変換したいWebページのURLの冒頭に
r.jina.ai/
を付け加えるだけで、Markdown形式に変換されたページにアクセスできる。 - 例えば、
https://www.example.com/
というURLをテキストに変換したい場合は、https://r.jina.ai/www.example.com/
にアクセスすればよい。 - こちらも会員登録は不要だ。
- 変換したいWebページのURLの冒頭に
- APIを利用してPythonコード内などで利用する
- APIキーを取得することで、PythonコードなどからReader APIを利用できる。
なお、いずれの方法でも、APIキーを使うと、20回/分の制限が200〜1000回/分へと引き上げられる。
APIキーを使う場合、非商用利用なら100万トークンまで無料、商用利用したい場合には20ドルで10億トークンのプラン、アプリ等に組み込みたい場合には200ドルで110億トークンのプランが必要だ。
Jina Readerでより正確なMarkdown変換を行う方法
冒頭で紹介した、URLにr.jina.ai
をつける方法は、最もシンプルなデフォルトのWeb→テキスト変換の方法だ。
一方、Jina Readerの公式サイトにアクセスすると、より細かく設定を変更することが可能で、単なるプレーンテキストではなく、構造化したMarkdownテキストなどにも変換できる。
Markdownとは、見出しを#
記号で、箇条書きを-
記号で、太字を*
記号で、さらにはテーブルを記号のみで表現、といった感じで、シンプルな記号だけで文章の構造を表現できる便利なテキストフォーマットだ。
Webサイトの記事の構造(見出しの親子関係など)を維持した状態でテキスト化できるので、LLMにプロンプトとして与える場合にも、構造をLLMに理解させることができるので有用だ。
従って、基本は、Jina Readerのブラウザ版で、Markdown変換を行うことを勧める。
使い方は簡単で、まずはJina ReaderのWebサイトを開く。
トップページを開いただけで、会員登録をせずともいきなり無料使用分のAPIキーが割り当てられ、以下のような画面でURLのテキスト変換機能を利用できる状態になっている。
以下の図の通り、左上にテキスト化したいページのURLを打ち込み、「GET RESPONCE」ボタンをクリックするだけで、テキスト化した結果が右下に表示される。
見出しや表などを構造化したMarkdownテキスト形式に変換したいときは、左側メニューの「Content Format」で「Markdown」を指定する。
なお、Jina Reader自体も、LLMを使ってWebページの構造を読み取って、正確なテキスト化を実現している。Jina Readerの次期モデルである「ReaderLM-v2」を使用すると、複雑なWebページでも、より正確に構造を読み取ることができる。
特にMarkdownの構造を正確に抽出したい場合には、左側メニューの「Use ReaderLM-v2」のトグルをオンにしておくとよい。
ChatGPTやGeminiのWeb検索機能と何が違う?
Web情報をコンテキストとして利用する手段としては、他にもChatGPTのWeb検索機能や、GeminiのWeb検索機能などの選択肢もある。
しかし、自分が既に信頼できる情報源を発見済なのであれば、AIにゼロから有象無象のWebページを検索させるより、Reader APIでMarkdown形式に変換したテキストをプロンプトに含める方が効果的だ。
なぜなら、ChatGPTのWeb検索機能は、必ずしも信頼性の高い情報源から情報を得るとは限らないからだ。場合によっては、参考にして欲しくないWebサイトの情報も引用してしまう可能性もある。
一方、Reader APIを使えば、自分が信頼できる情報源から取得した情報を、そのままプロンプトとして与えることができる。
人間が情報源をコントロールすることで、LLMの回答の質を向上させることができるのだ。
最近のLLM、例えばChatGPT, Gemini, Claudeなどは、いずれもコンテキストウィンドウが非常に長くなっている。プロンプトが数ページに及ぶような膨大なテキスト量でも、問題なく受け付けてくれる。
そのため、Reader APIでWebページ全体をMarkdownに変換し、それをプロンプトとして与えることも実用的になってきている。
Jina Reader APIでLLMをもっと使いこなそう
Jina Reader APIは、ChatGPTなどのLLMのプロンプトにWebページの情報を含めたい場合に、非常に便利なツールだ。
WebページをMarkdownに変換することで、LLMをもっと活用できるようになるはずだ。
例えば、以下のような応用例が挙げられる。
- 特定のWebページの内容に関するQ&Aができる:
- 難解なプログラミング言語のドキュメントを読み込ませ、ChatGPTにプログラムの仕様について質問に答えてもらう。
- 学校で勉強中の理論を解説しているページを読み込ませ、ChatGPTに試験の予想問題を出してもらう。
- Webページの要約:
- 長いWebページを読み込ませ、ChatGPTに要約を依頼する。
- Webページの翻訳:
- 英語や他言語のWebページを読み込ませ、ChatGPTに翻訳を依頼する。
- 英語でしか利用できないプログラミング言語やパッケージのドキュメントを、ChatGPTに解説してもらう。
学生から社会人、開発者から研究者まで、多くの人の役に立つことだろう。
ChatGPTやGeminiなどのLLMの活用法の一つとして、ぜひ覚えておきたい。