2026年7月5日 AM その5
それはさておいて、まずはデータの整理方法だ。
視線をさくらのPCのデスクトップに戻す。
さてどうやって問いかけたものかと少し考えてから、キーボードを叩く。
『あなたに、HTMLをベースに、画像、添付のpdfなどで構成されたWebサイトの情報を渡す際に、
1.サイト構成そのままにダウンロードしたファイル群
2.WebサイトをPDF変換したもの
3.Webサイトの情報をMarkdownに変換したもの
4.Webサイトの情報をプレーンテキストにファイル名を埋め込む形で関連付けて変換したもの
のそれぞれで渡す場合のメリット/デメリットを提示してください。』
「はい、晴菜さん。
現在の私の構成を前提にすると、私が何をするためにデータを渡していただくのかによって、各方式の間には明確な違いがあります。具体的な項目としては、…」
観点としては、情報の保持、RAGの元データとしての適性、構造の保持の3つが挙げられている。
ダウンロードしてきたサイト構成そのままのデータを消すつもりはないので、情報はコピーしたままのデータを持っておけばよい。
RAGの元になるデータとしての適性は、やはりMarkdownが有力ということだった。
画像については、さくらと連携できるように構成されたモデルの中に、画像解析に特化したAIモデルが含まれているので、そのモデルで画像の説明文を生成してから、説明文の方をRAGに登録するという方法が提示されている。
そして、ページ本文とは別に、Webサイトとしての構成情報にあたるmetadata、ページ内の文章と画像の関係とか、ページ間の親子関係とか、といった内容を、jsonのような形で構造化されたテキスト情報に書き出したものを、別に作成しておくのが良いという提案まであった。
そうなると、次に必要なのは、Markdownの文書と、Metadataをどうやって生成するかだろうか。
『上記の前提で、Markdownへ変換する手段と、Metadataを作成する手段には、どのようなものがありますか?』
「はい。
まず、Markdownの文書とMetadataの作成については、すべてをAIに任せない方がよいです。
なぜなら、…」
HTMLも、Markdownも、Metadataも、もともと構造化された文字列で構成されているという点は共通している。
なので、HTMLからMarkdownの文書とMetadataの生成は、かなりの部分を機械的に変換できるだろう、というのがさくらの見立てだ。
これは、私の持っている知識とも一致していて、とてもリーズナブルに思えた。
『HTMLをMarkdownに変換する部分を、Pythonスクリプトで自動化する場合の、サンプルコードを作成してください。』
「もちろんです。
今回の場合、HTMLからMarkdownへの変換する部分だけではなくて、Metadataの生成を同時に実行できる形にしておくと、後の工程がかなり楽になると思います。
ローカルストレージに保存されているWebサイトのHTMLを入力とする場合には、…」
さくらがてきぱきとスクリプトを構成していく。
きっと、彼女の得意分野だろうから、なんとなく弾んでいるように見えた。
…いや、私の方が、自分にもなじみのある領域の話になって、少し浮ついているのかもしれない。
読み進めていくと、"必要なライブラリ"という項目が目に入って、息が詰まった。
「ライブラリ、今手元にあるもの以外は、もう手に入らないや…」
インターネットが生きていた頃であれば、コマンド一つで様々なライブラリが導入できたけれど、今はもう、それらへのアクセスは失われてしまっている。
もし、手元にライブラリがなければ、実装は何倍も大変になるだろう。
さくらが提示したライブラリは2つ。
HTMLの解析をする機能を提供するライブラリと、HTMLやPDFのデータを、Markdownに変換する機能を提供するライブラリのようだ。
そのうちの1つには、幸いなことに見覚えがあった。
Webサイトをローカルにコピーしてくるときに使ったものだ。
先日、"彼女"とWebのデータを集めたときに、"彼女"に勧められたコピー方法を実行するときに必要だった。
今、Webサイトが元の構造を保ったまま手元に残せているのはそのおかげで、それが、こんなところにまで影響してくるということがわかって、"彼女"にはどれだけ感謝しても足りないなと思う。
問題は、もう一つの方だ。
HTMLやPDFのデータを、Markdownに変換する機能を提供するライブラリ。
少なくとも私はこれまで、そのような用途のコードを書いていない。
まずは、自分のノートPCの方で調べてみたが、当該ライブラリはやはりインストールされていなかった。
後は、
「お父さんが、さくらのPCに入れているかどうか、か。」
さくらのPCでコンソールを立ち上げる。
私のPCの開発環境は、基本的には父の方法に倣って構築したものだから、扱いはわかっている。
当該ライブラリを検索してみる。
「…入ってたよ、お父さーん。」
力が抜ける。
なんて準備のいい人なんだろう、ちょっと都合がよすぎやしないだろうかとも思ったけれど、父はmarkdownで文書を残していたのだから、その作成過程で使っていたのだろうと推測する。
逆に、さくらのPCにはHTML解析のライブラリが入っていなかった。
でも、父ならきっと…
そう思って、workディレクトリの中を少し探すと、Markdown変換用のライブラリのダウンロードパッケージと思しきファイルが見つかる。
『いいかい晴菜、ライブラリとかって、結構更新が入って、使い方が変わることがあるんだ。
だから、特に人に渡して使ってもらうようなソフトを作る場合は、互換性を保つために、使っているライブラリもできるだけその当時のバージョンのものをローカルにダウンロードしておくのがいいと、父さんは思っている。』
今の状況は、きっと父が想定していたような状況ではないけれど、父のその考え方が、また私を助けてくれている。
「私、お父さんみたいになれるかな?」
少なくとも、これからも父の考え方を見習らって、できるだけ実践していきたいと思った。
10月に入ってからなかなか執筆時間が確保できなくなっているので、次回から更新ペースを隔日に戻します。
少し間延びしてしまって申し訳ないですが、引き続き読んでいただけると嬉しいです。
よろしくお願いします。




