生成AI プログラミングの実力(その1)
呑んだ日本酒のリストを 日本地図の上に書きたい!
お久しぶりです。 またまた 数か月 サボってしまいました… 😅
この間、streamlit で画面を作る とか 色々と試行していたのですが、noteに書く程の成果は無く…
と言う所だったのですが、ちょっと 驚いた事が有ったので 書き留めておく事にします。
事の始めは、吞み終えた日本酒のボトル写真を スマフォで撮り続けていたので、いつか整理しよ と思っていたのですが、丁度 Pythonの勉強に良いかなぁ と思い立ち、どうせなら 日本地図の上に 酒蔵の位置にピンを立てて、その上に 諸情報を載せて、リンク先に 酒蔵のサイトを表示させたいな
などと考えました。
[仕様]
呑んだ日本酒のリスト・データベース(DB)は CSV形式とする
そのリストを読み込み、住所の欄に記載された場所を 日本地図上に表示する。(PIN立てする)
そのPINをクリックすると、そのDBに記載された情報を表示する
酒蔵の URLを DB上に記載しておき、3.の中から "詳細情報" をクリックすると 酒蔵のWeb-siteに Jumpする
さて、ここで筆が止まる。 プログラミングするには 色々調べる事が有るなぁ…
まず、CSVファイルを読み込み、DB化し…
日本地図を表示するのはどうする? PIN立てするのは?
さらにクリックされると表示し、URLに Jumpさせる…
→ そこそこの工程だ。
ちなみに、DBは こんな感じ。(当方の 過去2年分の呑了リスト)
んー 生成AIに聞いてみるかー
…と思って、プロンプトを考える。
こんな感じかな…
【入力プロンプト】
「sake.csv のファイルを 下記の様なテーブルデータとして読み込み、居所に記述している住所を 日本地図上に表記した上で
銘柄・酒蔵名・URL・都道府県名・タイプ・原料米・呑了日 を 同じ地図上に表示する Pythonのプログラムを記述して下さい。
URLは地図上の表示からリンクを張って、クリックすると そのURLに行ける様にして下さい。」
要望 そのまんまですね。 🤣
とりあえず、Tech系では 一番 信頼がおけそうな Claude 3.5 (Sonnet) に入力してみる。もちろん、日本語で。
すると…
1文字も改修する事無く…!
程無くして プログラムがつらつらと書かれる。
ささっと見てみると ちゃんと 日本語のコメント付きで きちんと整理されたソースが書かれた。 なんとなく URLを 探索している風でも有る。
気が利いているのは、「地図の初期化(日本の中心あたりにフォーカス)」となっており、かなり実用的そうじゃん!
# 日本酒のリストを地図上に表記するプログラム by Claude 3.5 / 冒頭部分のみ
import pandas as pd
import folium
from geopy.geocoders import Nominatim
from geopy.extra.rate_limiter import RateLimiter
import time
def create_sake_map(csv_file):
# CSVファイルの読み込み
df = pd.read_csv(csv_file, encoding='utf-8')
# ジオコーダーの初期化(日本語対応)
geolocator = Nominatim(user_agent="sake_map", timeout=10)
geocode = RateLimiter(geolocator.geocode, min_delay_seconds=1)
# 地図の初期化(日本の中心あたりにフォーカス)
m = folium.Map(location=[36.2048, 138.2529], zoom_start=5)
...
しばらく眺めた後に ダメ元で いきなり動かしてみるかー と思った。
環境は Windows-11:Visual Studio Code 上。
必要そうなライブラリをインストールして、実行してみると…
何と! 1発・1文字も修正しなくて 無事終了している ではないか!
フォルダには sake_map.html というファイルが出来ており、ブラウザで開いてみると…
なんとまぁ これですよ、欲しかったのは!
詳細情報欄をクリックすると、ちゃんと 酒蔵の URLに飛ぶ。
手放せません!
これを 1から調べて 色々 デバッグしていたら 何時間 かかった事やら…
これは 完全に 「ノーコード革命」ですね。
(結局、かつて 同じ事を考えた人が居る って事なんですけどね)
日本語の解釈も完璧だから 2度 驚く!
しかし、ほとんど Pythonの勉強には なりませんでしたけどね。 🤣
→ 皆様も ぜひ 環境整えて 色々 Try下され。 👍
この記事が気に入ったらサポートをしてみませんか?