今回のブログ担当は杠です。今回のブログではChatGPTを活用してCSVを編集を行なった方法を紹介します。
プロジェクト管理ツール「Redmine」のデモ環境を用意するために、チケットの情報が入力されたCSVファイルを作成しています。Redmineでは、複数のタスクをCSVインポートで一括して登録できますが、CSVファイルを準備するのに時間がかかっています。時短のためにChatGPTでPythonコードを生成し、Google ColaboratoryでCSVを編集する方法を試しました。
これまでデモ用のCSVの編集は手作業で行なっていましたが、この作業をGoogle Colaboratoryを使用することで時短を図りました。Google Colaboratoryはブラウザ上でPythonを記述、実行できるツールです。記述するPythonのコードはChatGPTで生成しました。
次の流れでCSVの編集を行いました。
Google ColaboratoryでCSVを編集するためのコード生成のためにプロンプトを考えます。今回issues.csvというファイルの開始日と期日を次の条件で編集し、編集後のデータを新しいCSVで出力するというプロンプトを考えました。
編集の条件
送信したプロンプトと、出力された結果が表示されたChatGPTの画面です。条件に漏れがあったり、手順②でChatGPTに意図が伝わらなかったりで何度も文を考え直しました。プロンプトを考えるのに一番時間を使ったと思います。
Google Colaboratoryに元となるCSV(今回の場合はissues.csv)のアップロードし、Pythonコードをペーストして実行しました。ファイルのアップロードは、サイドバーのファイルアイコンから行えます。
実行後、エラーが表示されてしまいました。
ChatGPTに表示されたエラーの内容を送信すると、修正したコードを返してくれました。
修正後の内容で再度実行したところエラーは発生せず完了。
Google Colaboratoryで思い通りのCSVファイルが出力されないときは、途中の計算結果を確認したり、ChatGPTに質問して指定した条件がコードに反映されているか確認しました。条件が違うCSVファイルを出力するコードをChatGPTが出していた場合、プロンプトを考え直し手順②→手順③→手順①を繰り返しました。
Google Colaboratory上で出力されたCSVはファイル名をクリックして確認できます。アップロードしたCSVと、出力されたCSVを比較すると開始日と期日が更新されています。指示の条件にもあっているため問題なさそうです。
ChatGPTでPythonコードを生成できたので、次回からデモ用のCSVファイルをGoogle Colaboratoryで一瞬で良い感じに作成できるようになりました。
ChatGPTでは何度もプロンプトを変えて試しました。曖昧な表現があると違う解釈をされてしまうからです。条件を明確することが、より正確なコードの生成につながることに気づきました。
場合によっては処理手順の指示をあえて出さず、ChatGPTに任せるとうまくいくことがあると気づきました。最初は手順を詳細に指示して試していました。例えば「1.全ての行で開始日と期日までの差を計算し保持する」「2. 一番古い開始日を保持する」のような指示です。生成されたコード実行した時、エラーにつまずくことが多かったです。元々指示した手順自体が非効率な方法で、その方法を条件としたことが良くなかったのかもしれません。
Google Colaboratoryで出力されたエラーをChatGPTにそのまま送信すると、エラーの原因や修正したコードを出力してくれました。コードの生成からエラーの原因など、ChatGPT上で一度に確認ができたことがブラウザの別タブでエラーを検索する手間がかからず良かったです。
ChatGPTの活用で、デモ用のCSVを編集する手間を削減できました。また、プロンプトの工夫で思い通りの結果を得られるかどうかのカギになることが分かりました。
【スタッフ募集中】
弊社ではAWSを活用したソリューションの企画・設計・構築・運用や、Ruby on Rails・JavaScriptフレームワークなどを使用したアプリケーション開発を行うスタッフを募集しています。採用情報の詳細
弊社での勤務に関心をお持ちの方は、知り合いの弊社社員・関係者を通じてご連絡ください。
チケットの作成時間を短縮!RedmineのCSVインポート機能はやっぱり便利 RedmineのCSVインポートの機能でチケットの作成時間を短縮。タスク漏れ防止にもなりました。 |
|
私が過去にRedmineに投稿したパッチを振り返ってみる Redmineの他の開発者やユーザーからのフィードバックや反応を貰えるのがOSS活動の楽しさの一つであると感じた。 |
|
Redmineのクラウドサービス My Redmine のアーキテクチャ紹介 2023 My Redmine のサービスの構成図を公開。運用コストを削減するためにサーバーレスのサービスを中心に選択し実装。 |
|
AWSを使用したメール通知処理を改善しています AWSを使用したメール通知処理を行っています。 |
|
Redmine My Pageの使いこなし RedmineのMy Page機能で利用者ごとのダッシュボードが作れます。 |
2024年10月19日 オライリー本の全冊公開日のお知らせ(もくもく勉強会も同時開催) ファーエンドテクノロジーが所蔵するオライリー本(全冊)公開日のご案内です。公開日には「もくもく勉強会」も同時開催します。 |
|
RubyWorld Conference 2024 (12/5・6開催) にPlatinumスポンサーとして協賛 ファーエンドテクノロジー株式会社は、2024年12月5日(木)〜6日(金)に島根県松江市で開催される「RubyWorld Conference 2024」にPlatinumスポンサーとして協賛しています。 |
|
プロジェクト管理ツールRedmineのクラウドサービス「My Redmine」の海外向けサービス「My Redmine Global Edition」の提供を開始 「My Redmine」の海外向けサービスとして、新たに「My Redmine Global Edition」の提供を開始しました。 |
|
Redmineの最新情報をメールでお知らせする「Redmine News」配信中 新バージョンやセキュリティ修正のリリース情報、そのほか最新情報を迅速にお届け |