LlamaIndexでは、多様な形式のデータもとにRAGを構築することができます。
この記事では、LlamaIndexでテキスト・PDF・CSV、Webページなどのデータを読み込む方法を紹介します。
LlamaIndexでテキスト・PDF・CSV、Webページを読み込む
LlamaIndexでは、多様なデータ形式をもとにRAGを構築することができます。
この記事では次のモジュールを使って、テキスト・PDF・CSV、Webページのデータを読み込む方法を紹介します。
- SimpleDirectoryReaderでテキスト・PDF・CSVを読み込む
- SimpleWebPageReaderでWebページを読み込む
「SimpleDirectoryReader」でテキスト・PDF・CSVを読み込む
セットアップ
テキスト・PDF・CSVを読み込みには、LlamaIndexの「SimpleDirectoryReader」を使用します。
必要なパッケージをインストールします。
pip install llama-index llama-index-core
必要なライブラリをインポートします。
from llama_index.core import SimpleDirectoryReader
テキストファイルの読み込み
SimpleDirectoryReaderを使ってテキストファイルを読み込みます。
file_path = "令和5年度_政府が講じたこども施策の実施状況.txt"
reader = SimpleDirectoryReader(input_files=[file_path])
documents = reader.load_data()
print(repr(documents[0])[:1000])
Document(id_='141d9b36-c23d-4ab0-a746-18d70b175097', embedding=None, metadata={'file_path': '令和5年度_政府が講じたこども施策の実施状況.txt', 'file_name': '令和5年度_政府が講じたこども施策の実施状況.txt', 'file_type': 'text/plain', 'file_size': 77563, 'creation_date': '2024-09-28', 'last_modified_date': '2024-09-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, text='我が国におけるこどもをめぐる状況\r\n第1部\r\n○出生\r\n2022年の出生数は77万759人で、統計を開始した1899年以来、最少の数字となり、80\r\n万人を割った。第1次ベビーブーム期(1947~1949年)には約270万人、第2次ベビーブー\r\nム期(1971~1974年)には約210万人であったが、その後減少を続け、こどもの数はピー\r\nクの3分の1以下にまで減少した。\r\n合計特殊出生率の推移を見ると、第1次ベビーブーム期には4.3を超えていたが、第2次ベ\r\nビーブーム期には約2.1まで低下、2005年には1.26まで落ち込み、その後、2015年には\r\n1.45まで回復したものの、2022年には1.26と過去最低となった。\r\n図表1-1-1 出生数と合計特殊出生率の推移\r\n出\r\n生\r\n数\r\n出生数\r\n合計特殊出生率\r\n1989 年\r\n合計特殊出生率 1.57\r\n第1次ベビーブーム(1947
reader = SimpleDirectoryReader(input_files=[file_path])
input_files
に、読み込むファイルのパスを渡しています。
SimpleDirectoryReader
クラスのインスタンスを作成しています。
documents = reader.load_data()
load_data()
メソッドを使って、指定したファイルを読み込みます。
PDFの読み込み
SimpleDirectoryReaderを使ってPDFを読み込みます。
file_path2 = "令和6年版_厚生労働白書概要.pdf"
reader = SimpleDirectoryReader(input_files=[file_path2])
documents = reader.load_data()
print(repr(documents[0])[:1000])
Document(id_='141d9b36-c23d-4ab0-a746-18d70b175097', embedding=None, metadata={'file_path': '令和5年度_政府が講じたこども施策の実施状況.txt', 'file_name': '令和5年度_政府が講じたこども施策の実施状況.txt', 'file_type': 'text/plain', 'file_size': 77563, 'creation_date': '2024-09-28', 'last_modified_date': '2024-09-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, text='我が国におけるこどもをめぐる状況\r\n第1部\r\n○出生\r\n2022年の出生数は77万759人で、統計を開始した1899年以来、最少の数字となり、80\r\n万人を割った。第1次ベビーブーム期(1947~1949年)には約270万人、第2次ベビーブー\r\nム期(1971~1974年)には約210万人であったが、その後減少を続け、こどもの数はピー\r\nクの3分の1以下にまで減少した。\r\n合計特殊出生率の推移を見ると、第1次ベビーブーム期には4.3を超えていたが、第2次ベ\r\nビーブーム期には約2.1まで低下、2005年には1.26まで落ち込み、その後、2015年には\r\n1.45まで回復したものの、2022年には1.26と過去最低となった。\r\n図表1-1-1 出生数と合計特殊出生率の推移\r\n出\r\n生\r\n数\r\n出生数\r\n合計特殊出生率\r\n1989 年\r\n合計特殊出生率 1.57\r\n第1次ベビーブーム(1947
CSVの読み込み
SimpleDirectoryReaderを使ってCSVを読み込みます。
file_path3 = "令和5年6月_社会医療診療行為別統計.csv"
reader = SimpleDirectoryReader(input_files=[file_path3])
documents = reader.load_data()
print(repr(documents[0])[:1000])
Document(id_='16a8a52c-1074-483b-9709-1de5d201731a', embedding=None, metadata={'file_path': '令和5年6月_社会医療診療行為別統計.csv', 'file_name': '令和5年6月_社会医療診療行為別統計.csv', 'file_type': 'text/csv', 'file_size': 2735096, 'creation_date': '2024-09-28', 'last_modified_date': '2024-09-28'}, excluded_embed_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], excluded_llm_metadata_keys=['file_name', 'file_type', 'file_size', 'creation_date', 'last_modified_date', 'last_accessed_date'], relationships={}, text='診療行為の状況\u3000医科診療\u3000第22表\u3000医科診療(総数-1総数)\u3000実施件数・回数・点数,一般医療-後期医療、診療行為(細分類)、病院(種類別)-診療所(有床-無床)別, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan\n注:1)表側欄内の数字は固定点数である。, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan, nan,
「SimpleWebPageReader」でWebページを読み込む
セットアップ
Webページの読み込みには、LlamaIndexの「SimpleWebPageReader」を使用します。
必要なパッケージをインストールします。
pip install llama-index llama-index-readers-web
必要なライブラリをインポートします。
from llama_index.readers.web import SimpleWebPageReader
Webページの読み込み
urls = "https://ja.wikipedia.org/wiki/%E8%8F%AF%E6%97%8F"
documents = SimpleWebPageReader(html_to_text=True).load_data([urls])
print(repr(documents[0])[10000:11000])
/%E9%AB%98%E6%9C%A8%E5%85%AB%E5%B0%BA\n"高木八尺")、長男金樹。\n\n[版籍奉還](/wiki/%E7%89%88%E7%B1%8D%E5%A5%89%E9%82%84\n"版籍奉還")が行われた明治2年[6月17日](/wiki/6%E6%9C%8817%E6%97%A5_\\(%E6%97%A7%E6%9A%A6\\)\n"6月17日 \\(旧暦\\)")([1869年](/wiki/1869%E5%B9%B4\n"1869年")[7月25日](/wiki/7%E6%9C%8825%E6%97%A5\n"7月25日"))の行政官達第五四二号で[公卿](/wiki/%E5%85%AC%E5%8D%BF\n"公卿")([公家](/wiki/%E5%85%AC%E5%AE%B6\n"公家")の[堂上家](/wiki/%E5%A0%82%E4%B8%8A%E5%AE%B6\n"堂上家"))と[諸侯](/wiki/%E8%AB%B8%E4%BE%AF "諸侯")([大名](/wiki/%E5%A4%A7%E5%90%8D\n"大名"))の称が廃され、華族と改められた[1][2]。この時以降[華族令](/wiki/%E8%8F%AF%E6%97%8F%E4%BB%A4\n"華族令")制定以前に華族に列した家を「旧華族」と呼ぶことがあった[3][4]。また旧公家の華族は「堂上華族」[5]、旧大名の華族は「大名華族」と呼ぶこともあった[6]。\n\n旧華族時代には爵位は存在せず、世襲制の永世華族と一代限りの[終身華族](/wiki/%E7%B5%82%E8%BA%AB%E8%8F%AF%E6%97%8F\n"終身華族")の別があったが[3]、明治17年7月7日に公布された[華族令](/wiki/%E8%8F%AF%E6%97%8F%E4%BB%A4\n"華族令")により[公爵](/wiki/%E5%85%AC%E7%88%B5 "公爵")、[侯爵](/wiki/%E4%BE%AF%E7%88%B5\n"侯爵")、[伯爵](/wiki/%E4%BC%AF%E7%88%B5 "伯爵")、[子爵](/wiki/%E5%AD%90%E7%88%B5\n"子爵")、[男爵](/wiki/%E7%94%B7%E7%88%B5\n"男爵")の五爵制が
documents = SimpleWebPageReader(html_to_text=True).load_data([urls])
SimpleWebPageReader
はウェブページを読み込むためのクラスです。指定したURLからHTMLデータを取得し、それをテキスト形式に変換します。
html_to_text=True
は、読み込んだHTMLデータをテキストに変換するオプションです。これにより、HTMLタグを取り除き、純粋なテキストのみが得られます。
生成AI・LLMのコストでお困りなら
GPUのスペック不足で生成AIの開発が思うように進まないことはありませんか?
そんなときには、高性能なGPUをリーズナブルな価格で使えるGPUクラウドサービスがおすすめです!
GPUSOROBANは、生成AI・LLM向けの高速GPUを業界最安級の料金で使用することができます。
インターネット環境さえあれば、クラウド環境のGPUサーバーをすぐに利用可能です。
大規模な設備投資の必要がなく、煩雑なサーバー管理からも解放されます。