前回までで、Pythonの知識を少し整理しました。
ただ、知識を入れるだけではなく、何事も実践が大事。
そんなわけで、何か作ってみることにします。
Pythonの研修を受講したときに、修了作品としてアプリを作ったことがあるのですが、正直「なんとなく動いた」レベルで、あまり理解は追いついていませんでした……。
なので、今回はある程度理解しながら進められるようにします。低レベルな話も多くなると思いますが、これが初学者のリアルということで、温かく見守っていただけると幸いです。
今回作るもの:AIニュース自動まとめサイト
どこにでもありそう……?という点は目を瞑っていただけますと幸いです。
めまぐるしいAIニュースを自動で収集し、できればいつでもどこでも閲覧できるようにしたい。実用性もモチベーションも申し分なしです。
最終的にできあがるサイトは、以下のような感じを予定しています。
- 毎朝6時に自動でAIニュースを取得・要約する
- 過去のニュースも蓄積されていて、リストで見返せる
- 難しい単語には説明がついている
- まとめを音声で読み上げてくれる
- スマホ・PCどちらからでも見られる
純粋に毎日ニュースをチェックする習慣をつけることを前提にしたいので、検索やフィルターなど、過去記事に関する細かい設定は一旦省きたいと思います。
テーマ
AIニュース自動まとめサイトを作成するにあたり、テーマを決めます。
それは 『AIと一緒に作る』 です。
全部自分で作るのは、なかなか難しい。
知識も経験も、まだまだ足りないです。
でも、AIに丸投げするだけじゃ何も身につかない。
「できあがったけど、何をしているかわからない」では意味がないですよね……。
だから 『AIの力を借りながら、自分でも理解して作る』 方向にしたいと思っています。
AIとどう付き合えばいいのかも、正直未知数なところは多いです。
いつもなんとなく使っている、という自分がいます。
うまく指示を出せているのか、もっといい使い方があるのか。
作りながら、AIとの距離感も探っていきたいと思っています。
全体の流れ
このサイトを作るために、暫定として以下のテーマに沿って進めていく方針とします。
| 順番 | テーマ |
|---|---|
| 1 | 全体像を決める |
| 2 | 準備(環境構築など) |
| 3 | 収集(ニュース収集の方法模索) |
| 4 | 保存(データベースについて) |
| 5 | 要約(AI活用) |
| 6 | 自動化(スケジューラー ) |
| 7 | 画面作成(Web画面) |
| 8 | 音声読み上げ機能搭載 |
| 9 | 完成 |
それぞれのテーマでどんな技術が必要なのかも、色々と調べながらやっていきます。
疑問は初期段階でできるだけ深掘りし、結果を要件に組み込んで作り上げていきます!
初心者としては、結局どれを使えば良いか分からない、というのが最初の関門ですので、納得がいくまで突き詰めていきます。
コードを書くツール選び
早速ですが、まずはコードを書く環境が必要!
コードを書くとき、「結局何を使えばいいんだろう?」と悩みませんか。
私は悩みます。種類が多すぎて……。
以前、訓練校では『JupyterLab』や『Spyder』を使っていましたが、自分に馴染みがあるのは『VS Code』かなぁ。
馴染みがあると言っても使いこなせるわけではなく、以前ネットで調べてお勧めされていたのが『VS Code』で、それ以降取り敢えず使ってみている、といった感じです。
よって、使いやすければ個人的にはどのツールでもいい。
最近(?)では『Cursor』なるものが大変熱いと聞きます。AIネイティブな製品ということで、こちらもこれを機に使ってみたいです。
自社の皆さんはきっと余裕で使っているのだろうな……と時代に乗り遅れている気配を感じます。
さて、早速ですが。
『VS Code』『Cursor』『PyCharm』『JupyterLab』……少し検索しただけでも無数に出てくるツール達……今回のような場合は何を使うのが最適解なのか。
訓練校でも言われたツールを取り敢えず使っていた程度なので、深掘りしたことはなかったんですよね。
そもそもこの子達は何が違うの、というところからです。
インターネットを使うとき、GoogleなのかEdgeなのかみたいな論争を見かけますが、そういった好みの問題の話なのでしょうか?
実は、ブラウザほど「どれも同じ」ではないようで。
用途によって向き不向きがはっきりある。だからこそ、一度整理しておく価値があると思いました。
そこでまず大前提として、これらを2つに分類するところから整理します。
エディタ と IDE(統合開発環境)
テキストエディタは文字を書くことに特化した、シンプルで軽快なツールです。
よくエディタって聞きますよね。
「エディタ(Editor)」は、何かを編集(Edit)するもの全般を指す言葉だそうです。
私達IT業界の人間がエディタと言った場合は、テキストエディタを指すのが一般的。
(よく聞くPhotoshopなんかは画像エディタです)
テキストエディタは装飾(太字、色、フォントサイズなど)の情報は持ちません。
最初は素っ気ないくらいシンプルですが、拡張機能という「後付け部品」を足していくことで、自分好みの環境に育てられます。
続いてIDE(統合開発環境) です。
横3文字のアルファベットは、少しトラウマです……。IT業界、似たような単語が多くて。資格勉強の時に、何度拳を握りしめたかわかりません。
正式名称は「Integrated Development Environment」、略してIDEです。
こちらは、コードを書くのに必要な道具が全部最初から入っているパッケージです。
具体的には、こんな機能が最初からセットになっています。
- コードを書く
- 書いたコードをその場で実行する
- バグを見つけて原因を追いかける(デバッグ)
- ファイルをまとめて管理する
テキストエディタでもこれらは「拡張機能を入れれば」実現できますが、IDEは最初からできる状態になっています。
買ってすぐ使えるプロ仕様、という感じ。
ただ、その分起動が重かったり、「Python専用」「Java専用」のように特定の言語に特化していたりします。色んな機能が備わっているということで柔軟性がありそうに見えましたが、実際に柔軟性があるのはエディタの方なんですね。
最初から機能が多い方を使っておけば間違いないのでは?と思っていた私は、大変浅はかです……。
そういえば『VS code』を使うとき、案内されるがままに拡張機能をどんどん入れていました。あれは、自分好みになるよう必死にカスタマイズしていたんだな、と今さらながら合点がいきました。うちの子(『VS code』)はエディタだったということですね。
代表的なツールを並べてみると
| ツール名 | ジャンル | ひとことメモ |
|---|---|---|
| VS Code | エディタ | 開発者の73%が使う世界No.1。拡張機能を足せばIDE並みのことができる。とりあえずこれ |
| Cursor | AIエディタ | VS Codeの見た目そのままに、AIを核に据えた新星。コードをAIと一緒に書く体験に特化 |
| PyCharm | IDE | Python専用の最高峰。サポートが手厚い。本格業務向け |
| Spyder | IDE | 研究者・理系向け。変数の中身をリアルタイムで横目で見ながら作業できる。研修で使われるのはこのため |
| JupyterLab | ノート形式 | エディタというより実験ノート。コード・結果・メモが1ページにまとまる。分析向き |
今回採用するのは……
使うなら『VS Code』か『Cursor』かなぁ……と迷ったのですが、時代の波に乗ろうということで、今回は 『Cursor』を使って「AIと一緒に作る」 をというテーマを達成していくことにします。
「コードを一行ずつ自分で書かないと練習にならないのでは?」という不安もありましたが、「細部を深く理解してから書く」より「動くものを作りながら、AIがなぜそう書いたのかを逆引きで理解していく」 スタイルの方が今の自分には現実的ですし、何より楽しそうです。
今回の結論:『Cursor』を使います。
無料枠でスタートして、使い心地を確認しながら進めます。
(すぐに上限に達したら、別のツールに浮気することも考えます)
まとめ
- 作るもの:毎朝自動でAIニュースを取得・要約・蓄積するサイト
- ツール:『Cursor』
次回は『Cursor』について研究します。
引き続き作成を進めていきます。
以上です。