生成AIは“心強い相棒”、自分だけのバーチャル本棚をつくるまでのトップ画像

生成AIは“心強い相棒”、自分だけのバーチャル本棚をつくるまで

投稿日時:
からあげのアイコン

データサイエンティスト

からあげ

Xアカウントリンク

本記事では、エンジニアがつくってきた“自分仕様のAIツール”をご紹介します。エージェントやBot、LLM連携ツールなど、実用的なものから、ちょっと遊び心のあるものまで。プロンプト設計やUIの工夫、うまくいかなかったことや思いがけない発見を通して、AIとの付き合い方をのぞいていきます。AIをどう使うかだけでなく、どんな距離感で付き合っているのか。誰かのAIとの向き合い方が、あなたとAIのちょうどいい“さじ加減”の手がかりに。


はじめまして、からあげです。普段はAI関係の企業でデータサイエンティストとして働きながら、生成AIやAIエージェントの活用法をブログやSNSで発信しています。

今話題の生成AI。文章はもちろん、漫画だったり、アニメだったり、今まででは考えられないほど手軽に高いクオリティの創作ができるようになってきました。それは、ソフトウェアの分野でも同様で、今までとは比べ物にならない効率でソフトウェアの開発が可能になりつつあります。

私は、以前から個人開発で自分のためのソフトを地道に趣味でつくっていました。GitHubのリポジトリは、公開しているものだけで300ほどになります。公開していないものや、つくりかけのものも含めると500を超えると思います。

ただ、それだけの数のソフトウェアをつくっていても、多くは妥協の産物で、やりたいこと・つくりたいものに対して、自分の能力の無さと時間の不足を痛感して諦めてしまうことが常で、つくりたいもののほんの1部しかつくれていない状況でした。

それが、生成AIの登場により、以前の自分では諦めてしまっていた、自分のためのソフトウェア開発を実現できるようになってきました。この記事では、自分としても、満足度が高く愛用している「自分だけのバーチャル本棚」を生成AIを活用してつくった話を紹介したいと思います。

2500冊近くの電子書籍をどう管理するか

私は、本を読むのも書くのも好きで、家には本がたくさんあります。狭い自室の本棚は常に本で溢れた状態になっています。

常に本がパンパンに溢れている自分の部屋の本棚.jpg
常に本がパンパンに溢れている自分の部屋の本棚

紙の本は好きなのですが、そのような事情に加えて、手軽に持ち運べるという利便性もあり、最近は電子書籍を活用することが増えています。電子書籍のプラットフォームでメインで使用するのはKindleですが、Kindleだけでもライブラリには2500冊近くの蔵書があります。

物理的な場所をとらず、検索性にも優れたKindleですが「蔵書の並び替えができない」「自分の好きなようにカテゴライズができない」といった不満があります。なので、蔵書が増えてくるとどうしても昔に買った本が埋もれてしまいます。そのたびに「物理の本棚みたいに、本を好きに並べて一覧で見れるようにしたい」という欲求が強くなってきました。

そこで役立つのが、いわゆる本棚アプリです。世の中には、電子書籍を物理本棚に見立てて整理する本棚アプリと呼ばれるようなソフトが多く存在します。最初は、私もそのようなソフトを使っていたのですが、使いはじめると本棚に対するこだわりが強くなり、どんどん足りない機能に不満が溜まり、使わなくなり他のサービスを探すということを繰り返していました。

自分で開発するという選択肢もあるのですが、本棚アプリを開発するには、自分が詳しくないフロントエンドといった技術に加えて、実用的なソフトを完成させるまでに相当な開発時間が必要となることが容易に想像できました。そのため、自分で本棚アプリをつくるという選択肢は外していました。より正確に言うなら、考えたことすらなかったと思います。

そんな折に登場したのが生成AIです。ぐんぐん向上する生成AIのコーディング性能を目の当たりにして、ある日ふと思いました。

「ひょっとして、生成AIを使えば、自分の望む本棚アプリをつくることができるのでは?」

そう思ったらもういても立ってもいられませんでした。私はすぐさま自分だけの本棚アプリ、いわば理想のバーチャル本棚の開発を猛然と開始していました。

「理想のバーチャル本棚」開発の流れ

ここから、自分だけの理想のバーチャル本棚アプリの開発の流れを簡単に説明します。

まずは、アプリに必要な要件を整理します。どうせなら、自分の欲しい機能を全部詰め込んでやれと、自分の欲しい機能や要望をひたすら並べました。

  • 本棚の本の並びを手軽に変えられる
  • Kindleの蔵書リストのインポート機能
  • データのエクスポート機能
  • Kindleのハイライト情報のインポート機能
  • 読書メモ機能(マークダウン対応)
  • 複数本棚を作成可能
  • Webで本棚を公開できる機能
  • 無料でずっと使える
  • その他自分の希望・妄想…

書き出すときりが無くなってきたので、これらの中でもまずは、Kindleの蔵書リストをインポートして、本棚として好きに並び替えができる最低限の機能を持つソフトをつくることにしました。

実現方法の方向性に関しては、ChatGPTと議論しながら決めていきました。インフラに関しては、手軽に無料で使えて、セキュリティやメンテナンスの心配が少なく、自分のレベルで扱えるものとして、過去の経験からGitHub Pagesを使うのが良さそうというイメージがあったので、そのアイデアをベースに最適な方法をChatGPTに考えてもらい、設計の要件を整理しました。

要件が整理できたら、生成AIを使ってコーディングをしていきます。使用したAIコーディングツールはClaude Codeです。ソフト開発の環境構築や流れに関しては、ブログに「AIコーディング実践環境の構築方法【2025年12月】」という記事としてまとめていますので、よかったら参考にしてみてください。記事では、仕様駆動開発としてドキュメントの作成から行っていますが、個人開発の場合はいわゆるバイブコーディング的にドキュメントをつくらず試行錯誤的に何度もつくり直しながら探索することも多いです。今回のバーチャル本棚もそのように何度かつくり直しを繰り返して半日くらいでプロトタイプを開発しました。

※ 元OpenAI 創設メンバー、テスラのディレクターであるAndrej Karpathy氏が生み出した言葉。生成AIに頼って感覚(バイブス)でコードを書く手法

完成した自分だけの理想のバーチャル本棚

完成したバーチャル本棚の満足度は、想像以上でした。完璧というわけではないですが、使って嬉しくなる実用的な完成度となりました。

完成したバーチャル本棚の初期画面.png
完成したバーチャル本棚の初期画面

開発したバーチャル本棚は、ウェブ上で誰でも見ることができます。

GitHubの知識がある人であれば、GitHubのリポジトリを参考に、誰でも自分だけの本棚をつくって公開することもできます。恐らく、生成AIを使わずに自分1人で開発していたら、ここまでつくるのに数週間はかかっていたのではないかと思います。というより、そもそも途中で嫌になって完成させることができなかったことでしょう。そういう意味で、生成AIは、自分の能力を大きく拡張できるツールであり、心強い相棒ともいえます。

このバーチャル本棚は、Kindleの蔵書リストをインポートすることができます。インポートするファイルは「Kindle bookshelf exporter」というChrome拡張で、KindleサイトからエクスポートしたJSONファイルを利用します。

また、Kindleには、ハイライト機能として、気になった文章をマーキングすることができるのですが、そのハイライト部分もインポートすることが可能です。

インポートしたハイライト.png
インポートしたハイライト

この機能の実現には、Obsidianというメモアプリの「Obsidian Kindle Plugin」というプラグインの機能でエクスポートしたデータを利用しています。こういった他のソフトに頼った機能を手軽に追加できるのも、個人開発の良いところですね。

そしてこのバーチャル本棚の何より良い点は、好きなだけ本棚がつくれるということです。

自分でつくった本棚.png

自分でつくった本棚2.png
自分でつくった本棚

好きなジャンル、好きな作家、自分のベスト100冊など、いくらでも本棚がつくれますし、その本棚の中で気が済むまで本の並び替えができます。1つの本を複数の本棚に並べることも可能です。こういったことができるのは、バーチャルな本棚ならではですね。

バーチャルな本棚の本の並び替えを始めると、これが不思議と楽しくて、何時間も本棚の本をニヤニヤしながら並び替え続ける変態になってしまいます。バーチャル本棚アプリをつくって初めて「自分に必要なのは無限の本棚と本だったのかも」ということに気づけた気がしています。

また、バーチャル本棚で自分の蔵書を整理すると

「あ、そういえばこんな本持ってたんだ」

と埋もれていた本の再発見にもなるのが良いですね。

また、使っていて足りない機能や、使い勝手が悪い部分は、自分の手でいくらでも開発して変更していくことができるのが、自作ソフトの良い点ですね。楽しく実用的なソフトができたと思います。

バーチャル本棚のデータ活用

このバーチャル本棚アプリの特徴として、本棚ごとにユニークなURLを割り当てることができる点があります。

最初は、SNSでシェアすることを想定して開発した機能だったのですが、後で気付いた使い方として、人から

「何かおすすめの本ありませんか?」

と聞かれたときに、おすすめの本をまとめた本棚のURLを共有するだけで、手軽におすすめ本を伝えることができるということです。

また、この本棚URLの活用例として、生成AIの入力として活用する方法もあります。

具体的には、好きな生成AI(今回はChatGPTを例にします)に、以下のようなプロンプトを入力します。

「以下の書籍リストをもとに、このリストにないおすすめ書籍を教えて下さい
https://karaage0703.github.io/karaage-virtual-bookshelf/static/bookshelf_1757122065159.html

URLには、自分のつくった本棚のURLを入力します。
すると生成AIが、URLにアクセスして本棚の情報を取得し、その本の内容を元に、自分にピッタリの本を紹介してくれます。

生成AI(ChatGPT)による本棚の本を元にしたオススメ本紹介.png
生成AI(ChatGPT)による本棚の本を元にしたオススメ本紹介

本棚は、自分の厳選したお気に入りの本が整理されているので、単純に自分の蔵書リストをすべて入力するより、精度の高いリコメンドをしてくれます。AIの活用の基本は、入力するデータの質を高めることになりますが、バーチャル本棚により、そのような質の高いデータつくりを実現することが可能です。

生成AIでのソフト開発に必要な能力

実際に生成AIで多くソフトをつくると、生成AIのコーディング能力の高さに驚かされます。そして重要なのは、その能力が劇的に向上し続けているということです。

自分の場合は、生成AIをコーディングに使うようになってから、個人での開発量は劇的に増えました。以下は、私の個人開発でのGitHubのコミット数を時系列で可視化したグラフです。あくまで参考としての数字になりますが、私がAIコーディングを本格的にはじめた2025年の1月を境に大きく変化しているのが見てとれます。

GitHubのコミット数の時系列グラフ.png
GitHubのコミット数の時系列グラフ

また、少なくとも現段階では、AIを使う人の能力で開発するソフトの限界が決まる部分があるとも感じました。具体的には、今回のバーチャル本棚を例にとると、私がGitHubが提供する静的サイトのホスティングサービスのGitHub PagesやKindleの蔵書をエクスポートできる「Kindle bookshelf exporter」、Kindleハイライトをエクスポートできる「Obsidian Kindle Plugin」といったサービスやソフトの存在を知っていて使ったことがあり理解していたので、生成AIのプロンプトにこれらを含めることで、手軽に無料でセキュリティのリスクの低いバーチャル本棚のWebサービスを実現することができました。

一方で、今のバーチャル本棚は、蔵書を手軽にアップデートできない(いちいちデータの更新のためにGitにデータをpushする必要がある)、GitやGitHubの知識がない人が、手軽に自分の本棚をつくれないという問題があります。

これらの問題を解決するには、本格的なWebサービスの知識と運用した経験が必要となります。もし、私にそれらの知識があれば、生成AIを活用してバーチャル本棚のWebサービスを立ち上げて、より便利なサービスとしてより多くの人に提供することもできたと思います。さらには、ビジネス的な知見もあれば、このWebサービスでマネタイズしてお金を儲けることもできるかもしれません。

ただ、逆にいえばこういった自分に不足していることは、生成AIで実際にソフトをつくったからこそ明確にできた課題とも言えます。課題が明確になったということは、自分にその気があれば、必要な知識を身に着けて課題を解決することも可能なはずです。そしてそのためにもきっと生成AIは役に立つはずです。

生成AIとつくる、自分の成長の伸びしろ

生成AIを活用して、自分だけのバーチャル本棚をつくった経験を通じて、生成AIを活用したソフト開発手法、実際につくったアプリの紹介、AIでのデータ活用方法、使う人の能力で限界が規定されるといった話をしました。

特に人の知識不足に関しては、生成AIの進歩によってもある程度カバーはできていくと思いますが、少なくとも当面は、人も能力を高めていく必要があると思います。そのための学習も、生成AIを活用することで、大きく加速することが可能なのではないかと考えています。例えば、将棋の世界では、藤井聡太棋士が、AIを将棋の研究に使うことで強くなったと言われていますが、ソフトウェア開発の世界でも、将棋と同様にAIとソフト開発することで、急激に能力を高めていく開発者が増えていることを実感しています。

生成AIは、今までは欲しくても手に入らなかった自分専用のソフトを開発することができる可能性に加えて、自分の能力を拡張し成長させていく可能性を秘めています。自分もこの開発をきっかけに、個人での本格的なWebサービスの開発にも興味が湧き、そのような開発をしていくことを考えたりもしています。

みなさんも、もし今何かに不便を感じているものがあれば、是非生成AIを活用して、その不便を解消するような自分専用のソフトをつくってみてください。そこから、みなさんの新しい可能性が広がるかもしれません。