Geek Talk/Google Gemini にパイソンプログラムを書かせてみた



課題:出張でちょくちょく飛行機に乗りますが、飛行機に限らず時刻表はWebサイト、紙媒体、紙媒体のPDF化はされてますが、CSV形式でダウンロードできるデータが存在しない。
PDF化されたものをPDF/CSV変換ツールを使うが以下の問題がある
PDF化されたものをPDF/CSV変換ツールを使うが以下の問題がある
・変換の過程で型が崩れたり
・思うようなフォーマットに変換ができないのでひと手間ふた手間かけて手作業で直すこと
・PDFにはいらないデータ項目や注釈など不要な文字が含まれている
・求めているデータが含まれていない

やりたいこと:
ANAの時刻表をCSV形式で欲しい。共同運航便の場合はNH表記のみ抽出、NH以外は含めない。

CSV形式のフォーマット:
フライト番号
出発時刻
到着時刻
出発空港(空港3ケタコード)
到着空港(空港3ケタコード)
使用機材
出発曜日
時刻表適用開始日時
時刻表適用終了日時

データ入手元:
公共交通オープンデータセンターのAPIを使って「ANA国内線」の全ての時刻表をJSONでダウンロード後、CSVに変換

プログラム言語:
Python

折角なので、今はやりのAI(今回は、Google Gemini) を使ってパイソンのコードを書かせてみた。
さて、Google Geminiは使い物になるか。。。。。


以下、Google Geminiに伝えるプロンプトですが、英会話の勉強になるので英語で指示を与えみる

English Prompts
#Title:Creating a Python Program to output ANA timetable in CSV format
ActAs="Python Program Engineer"
Refer = "https://api.odpt.org/api/v4/odpt:FlightSchedule?odpt:operator=odpt.Operator:ANA&acl:consumerKey=*****"
InputDataFormat="FlightNumber,DepartureTime,ArrivalTime,DepartureAirportCode,ArrivalAirportCode,AircraftType,flight_Calendar,valid_from,valid_to"
Rule="https://developer.odpt.org/documents#_odpt_airplane_api"

Output="FlightNumber,DepartureTime,ArrivalTime,DepartureAirportCode,ArrivalAirportCode,AircraftType,flight_Calendar,valid_from,valid_to"
instructions="FlightNumberは、NHから開始するもののみ抽出、コードシェア便の場合はNH表記とする"
OutputFormat="CSV形式"

#Request
You are {ActAs}. Create a Python program that gets {InputDataFormat} from the following {Refer} and based on {Rule}, {Output} is output in the form of {OutputFormat} with {instructions}.


日本語プロンプト
#題名:ANAの時刻表をCSV形式で出力するパイソンプログラムの作成
役割="パイソンのプログラムエンジニア"
参照元 = "https://api.odpt.org/api/v4/odpt:FlightSchedule?odpt:operator=odpt.Operator:ANA&acl:consumerKey=*****"
入力データ="FlightNumber,DepartureTime,ArrivalTime,DepartureAirportCode,ArrivalAirportCode,AircraftType,flight_Calendar,valid_from,valid_to"
ルール="https://developer.odpt.org/documents#_odpt_airplane_api"
成果物="FlightNumber,DepartureTime,ArrivalTime,DepartureAirportCode,ArrivalAirportCode,AircraftType,flight_Calendar,valid_from,valid_to"
指示="FlightNumberは、NHから開始するもののみ抽出、コードシェア便の場合はNH表記"
形式="CSV形式"

#依頼
あなたは{役割}です。次の{参照元}から{入力データ}を取得し{ルール}に基づき、{成果物}を{条件}で{形式}の形式で出力されるプログラムを作成してください。

結果
エラーもあったり若干の手直しは必要だが、9割程度出来上がってきます。
その後、対話型でエラーを食わせたり、要望を伝えたりすることで完璧なプログラムの完成。