生成AI プログラミングの実力(その1)

呑んだ日本酒のリストを 日本地図の上に書きたい!

お久しぶりです。 またまた 数か月 サボってしまいました… 😅

この間、streamlit で画面を作る とか 色々と試行していたのですが、noteに書く程の成果は無く…
と言う所だったのですが、ちょっと 驚いた事が有ったので 書き留めておく事にします。

事の始めは、吞み終えた日本酒のボトル写真を スマフォで撮り続けていたので、いつか整理しよ と思っていたのですが、丁度 Pythonの勉強に良いかなぁ と思い立ち、どうせなら 日本地図の上に 酒蔵の位置にピンを立てて、その上に 諸情報を載せて、リンク先に 酒蔵のサイトを表示させたいな
などと考えました。

[仕様]

  1. 呑んだ日本酒のリスト・データベース(DB)は CSV形式とする

  2. そのリストを読み込み、住所の欄に記載された場所を 日本地図上に表示する。(PIN立てする)

  3. そのPINをクリックすると、そのDBに記載された情報を表示する

  4. 酒蔵の 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 というファイルが出来ており、ブラウザで開いてみると…

ありゃー 1文字も修正せずに 要望のものが出来ちゃった!

なんとまぁ これですよ、欲しかったのは!
詳細情報欄をクリックすると、ちゃんと 酒蔵の URLに飛ぶ。

手放せません!

これを 1から調べて 色々 デバッグしていたら 何時間 かかった事やら…
これは 完全に 「ノーコード革命」ですね。
(結局、かつて 同じ事を考えた人が居る って事なんですけどね)
 日本語の解釈も完璧だから 2度 驚く!
しかし、ほとんど Pythonの勉強には なりませんでしたけどね。 🤣

→ 皆様も ぜひ 環境整えて 色々 Try下され。 👍

この記事が気に入ったらサポートをしてみませんか?