MYmemo

思い立ってやってみるけど、長続きしない。せめて記録しておく。

termuxで株価を取得する方法をChatGPTとGeminiに検討してもらったが…

以前、株価取引履歴を記録していくツール作りについて記事にしました。

mymemo8.hatenablog.com

その後もチビチビと改良を続けています。

で、次に欲しい機能は何か?

そりゃ、現在の株価と過去売買した履歴を比較したくなります。

なので現在の株価を表示できるようにしたい!に取り組んで見ました。



GPT先生に加えてbard先生

以前記事にした通り、世はgoogle先生(ググる=googleで検索する、はもう死語?)からGPT先生の時代。

mymemo8.hatenablog.com

そしてこの度GPT先生に加え、googleのbard先生(改めGemini先生?)にも教えを請うことにしました。2人に聞くことでより最適な解を導けないかと思った次第でございます。

ちなみにGemini先生 or bard先生どちらと呼べば良いか?について筆者はよくわかっておりません。ブラウザからgoogleが提供する対話機能を使わせてもらっているのですが、等の本人に聞きますと以下のようなやり取りになります。

私:「あなたはまだbardですか?」

??:「はい、私はまだBardです。Google AIによって開発された大規模言語モデルです。 ...」

私:「Geminiではないのですか?」

??:「私はBardとGeminiの両方の機能を備えています。Geminiは、Google AIが開発した新しいマルチモーダル生成AIモデルです。テキスト、画像、音声、動画などの様々なデータを入力として、テキストや画像を生成することができます。Bardは、Geminiの機能に加えて、質問応答や文書生成などのタスクを実行することができます。つまり、私はGeminiのすべての機能に加えて、Bardの機能も使用することができます。...」


こんな感じ。あなたは何者?の問いには「bardです」と応えるのですが、対話インターフェース上はGeminiと表示されている.... どういうこと?

「bard改めGemini!」みたいな記事がいっぱい出てますがこの記事においては当の本人がbardだと言い張っているので、bardとすることにします。

IT業界の雄に薫陶を受けてメキメキ頭角を表してきている超優秀人材の教えを請わない手はない。

Pythonで株価を取得する方法は?

まずは、どんな手段があるか聞いてみました。

GPT先生

yfinanceとかpandas_datareaderを使うのが一般的ですね。YahooファイナンスAPIを使う手もあります。



bard先生

YahooファイナンスAPIを使う、Alpha Vantage APIを使う、その他のAPIを使う、スクレイピングなどでしょうね。

ま、だいたい同じ提案ですな。選択肢の中ではyfinanceライブラリを使う手が一番手軽そうだと感じました。では導入方法は??

GPT先生 & bard先生

pip install yfinanceを実行すべし!

そりゃそうだ。


利用環境

いつもと変わりませんがすべてスマホ完結です

mymemo8.hatenablog.com




yfinanceがインストールできない...

しかしそうは問屋がおろさないもので、pip install yfinanceはエラーになってしまう。以下実際のやりとりをかなり脚色しておりますこと御理解の上でお読みください。


:「エラーになるけど?」
GPT先生:「aptのupdateとかupgradeとかしてる?」


:「もちろんやってる」
bard先生:「pandas入ってる?依存関係あるよ?pip install pandasだよ。」


:「入ってないんだが、pip install pandasも通らないんだけど、どうすればいい?」
:「あ、言い忘れてたんだが、今使っている環境はtermux何だけど、関係ある?」
GPT先生:「termuxにpandasいれるならpkg install python-pandasじゃね?」


:「おぉ、pandasは入ったわ。しかし、依然としてyfinanceはインストールできないんだけど、どうしたらいい?」
bard先生:「依存関係ありそうなのはlibxml2、libxslt、clang、libxml2-dev、libxslt-devとかかな。片っ端からインストールしてみてよ。」


:「アカンな、そもそもどれも最新やわ。lxml関連でエラー出てんだけど?」
GPT先生:「pkg install lxmlは?」


:「それ実行すると、termuxが固まってしまい、その後再起動してしまうんだが...」

...この後、両先生方との対話上で解決策を見いだせませんでした。多分私の聞き方が悪いんだと思うんですけど、libxml2、libxslt、clang、libxml2-dev、libxslt-devなどをインストールして対処せよ、の堂々巡りから抜け出せず仕舞い。


アカンわ、お手上げだ。ネット検索でも有効そうな記事に行き着かないし...

まて...

pandasインストールに成功したあのおまじないをつけてlxmlをインストールしたら?

まさかね、そんな訳ないよね?

pkg install python-lxml  
pip install yfinance

:「ウソやん、インストールできた」
先生方:「おめでとうございま〜す」
:「.....。」



GPT先生とbard先生、どっちが良かった?

使ったことある方、無い方ともにわかっていただけると思いますが、両先生方のAnswerは決して前述の如く軽いノリではありませんので、悪しからず。
私が勝手に面白おかしく書いていることを差し引いて読んでいただくようお願いいたします。

両先生共に、どの問いにも懇切丁寧に全力で答えてくれます。手抜きはしません。

が、個人的にはGPT先生の方が良かったかな、って感想です。

今回のやり取りにおいては、両先生とも大体同じような内容で答えてくれてましてそこに優劣は感じ取れませんでした。(というか、私のレベルが低すぎて、回答内容の差を吟味できないというのが正しい)

GPT先生の方がいいなと思った理由は以下2点です。

  1. GPT先生は即答に近い。bard先生は結構考え込んだ後に回答が返ってくる感じで、スピーディーに会話してる感が無い。
  2. GPT先生の方がキャッチボールしてる感がある。bard先生は時折シナリオチャットボットチックな回答が返ってくるときがあった。


特に2点目には科学的根拠全くなし。あくまで今回のケースに限って話半分に聞いていただければと思います。

bard先生に関してはこの記事を執筆してる間にもバージョンアップした的な記事が出てたりしてるので、もっかい話題変えて比べてみたら、見方が変わるかもしれません。

何はともあれ、無事yfinanceを使って株価を取得できそうなので、ありがたく活用させていただきます。