今回はPyhon初学者の方に向けて、PythonとChatGPTを使って業務をスマートに進める方法についてお伝えします。Pythonはプログラミング初心者にも優しい(?)と言われている言語であり、ChatGPTは自然言語処理に基づくAIモデルです。これらを組み合わせることで、効率的な業務処理が可能になります。
目次
自分の業務での課題とChatGPTの活用
私も以前、業務効率化のために新たな手段を探していました。そんな中、会社の方からChatGPTを業務に活用しましょうという提案があり、私もそのメンバーに選ばれました。まだ自力でコーディングはできませんが、独学でPythonの勉強をしていたこともあり、ChatGPTとPythonを組み合わせて業務効率化できないかどうかを模索していました。
ChatGPTは日本語の文章を入力するだけで、関連するPythonコードを生成してくれる素晴らしいツールです。これにより、プログラミング初心者でも簡単にコードを作成することができます。使用するプログラミング言語や自分の行いたいことを、具体的に日本語で入力するだけでコードが生成されるため、あとは実際にそのコードを試してみるだけです。
実際にChatGPTへプロンプトを入力して、コードを生成してみる
前置きはこのくらいにして、では実際にどのようなプロンプトを入れたら望み通りのPythonコードを生成してくれるのか、また、どのような成果物ができるのか、その例をお伝えいたします。
実際にChatGPTへプロンプトを入力して、コードを生成してみる
PDFでできている表組みから、エクセルに変換するコードの例
表組みの原稿がPDFで支給された場合、一気にエクセルに変換してデータとして使用できるようにしてみました。
コードは、Jupyter labというテキストエディタを使用して検証してみたいと思います。
全部で21ページあるPDFの中から、こちらの表組みがある18ページ目を変換してみようと思います。
このように全ページではなく、該当ページのみ抜き出したい旨プロンプトに入力してみました。
PDFの表組みをエクセル変換するtabulaというライブラリを使用するみたいです。生成されたコードをJupyter labで検証してみます。
読み込むPDFのファイルパス・・・任意のフォルダパス+test.pdf
出力するエクセルのファイルパス・・・任意のフォルダパス+file.xlsx
を各々pdf_path、excel_path に代入します。ここではドキュメントフォルダ内の「MyPython」フォルダを読み込み/出力パスにしています。
また、page_numberに18を代入します。
エラーがでてしまいました。
そのままコピペしてChatGPTへ投げてみます。
エラーを修正したコードを再度生成してくれたようです。
エクセルは生成されましたが、罫線が入っていないので入れるように、また項目欄を黄色で塗ったものを生成するように再度コードの修正を命令してみました。
エクセルを扱う関係で、pandasとopenpyxlというライブラリも使用するようです。
その後openpyxlのバージョンによるエラーであったり、項目名の抜け落ち、縦の罫線が入っていなかったりしていたので、エラーをChatGPTにそのまま投げ、抜け落ちていた箇所がある旨指摘をし、再度修正コードを出力するよう命令しました。
ようやく望み通りのエクセルデータを書き出すことができました。
外部委託業者さんの月末精算書を、社内のデータベースへ直接インポートできるようにデータを成形するコードの例
次は業務委託契約者の月末精算処理の効率化です。総務課が作成してくれた月末精算書(エクセル)から、外部へ発注したものを記録する社内独自のDB(ファイルメーカー)へ直接インポートできる形にデータを成形してみました。
こちらが総務課が作成してくれた外部委託業者さんの一ヶ月分の精算書です。案件毎に作業した時間や金額が表示されています。
こちらのプロンプトで示したように、AというエクセルデータからBというエクセルデータを生成するに際し、具体的な例を交えてプロンプトに入力してみました。
ChatGPTからPythonコードが出力されてきました。pandasというライブラリを使用して、データを読み込み、エクセルを書き出すという方法のようです。
先程と同様に、上記のコードをJupyter labを使用して検証してみたいと思います。
下準備として上記プロンプトで入力したエクセルAと同じ体裁にしたexcel_a.xlsxを準備します。
上記コードを走らせるわけですが、
読み込むエクセルのファイルパス・・・任意のフォルダパス+excel_a.xlsx
出力するエクセルのファイルパス・・・任意のフォルダパス+excel_b.xlsx
を各々excel_a_path、excel_b_path に代入します。
また、今回登録者は「サトウ」、発注日は「2023/05/01」、納品日は「2023/05/30」と設定してみました。
Jupyter labでの検証結果は、excel_b.xlsx自体は生成されましたが、項目欄に「Unnamed: 4」というものが入ってしまっていました。また、項目の順番も最初のプロンプトで示したものと違うので、ChatGPTへ再度修正コードを出力する旨命令してみました。
ChatGPTから修正されたPythonコードが出力されてきました。
Jupyter labでの検証結果は、修正依頼した通りにエクセルが生成されました。
データベースへの入力はいままで1レコードずつ、1項目ずつ、エクセルからコピペしたりと手間がかかっていましたが、こちらのコードで一括インポートができるようになり月末の忙しい時期に、時間の短縮が図れるようになりました。
ケースバイケースですが、エクセルからのコピペであればだいたい1時間近くかかっていたものが、エクセル成形からファイルメーカーへのインポートまで10分あれば終わってしまうので、以前よりも月末は早く帰れるようになりました。
ChatGPTでコードを生成する際の注意点
ChatGPTは、自然言語処理に基づくAIモデルであり、様々な業務に活用できますが、気をつけなければならないこともあります。以下に、ChatGPTでコードを生成する際の注意点をいくつかご紹介します。
1. 入力の具体化: ChatGPTに与える入力は、具体的で明確なものにしましょう。例えば、「特定のデータを成形する方法」や「特定の業務プロセスを自動化する方法」といった具体的な要求を示すことで、より適切なコードを生成することができます。
2. コードのチェック: ChatGPTはコードを自動的に生成しますが、必ず正確さを確認しましょう。文法エラーや論理的な問題がある場合は修正する必要があります。また、生成されたコードが求めている結果を返すかどうかも確認しましょう。
3. ChatGPTの幻覚(ハルシネーション)を悪用したマルウェア攻撃に注意: あるセキュリティー研究者の検証によると、「ChatGPTがコード生成時にハルシネーションを起こすことを予想し、悪質なPythonパッケージ(ライブラリ)を先回りして公開しておくことで、ユーザーに悪意あるパッケージをインストールさせることが可能」なのだそうです。
上記のコードチェックと同様に、あまり見慣れないPythonパッケージ(ライブラリ)が回答として出た際は、それを鵜呑みにせず必ず確認してからインストールするようにしましょう。
4. コードエラーへの対応: 最初のプロンプトでコードが生成されても、それを検証した結果エラーが発生することが多々あります。その際はそのエラーコードをそのままChatGPTに投げ返してください。別の視点から修正されたコードを返してくれます。このようなやりとりを何度か行っていくうちに望み通りのコードが生成されていきます。望み通りの成果物が出来上がるまで少し時間がかかるかもしれませんが、一度コードが完成すれば使い回しができるので根気よくがんばりましょう。
PythonとChatGPTで業務をスマートに
いかがでしたか? PythonとChatGPTの組み合わせは、プログラミング初心者でも効率的な業務処理を実現するための強力なツールとなります。Pythonの学習を進めながら、ChatGPTを活用することで、自動化やタスクの効率化を実現できます。
今回は、Pythonの活用法、さらにChatGPTでコードを生成する際の注意点についてご紹介しました。ぜひ、これらの知識を活かして、自身の業務効率化を図ってみてください。初めは慣れないかもしれませんが、少しずつ取り組んでいくことで、確実に成果を得ることができます。
普段の業務の中で、これらを用いて少しでも効率化や改善ができないかを常に意識していくことも大切かと思います。
最後に、PythonとChatGPTを使って業務をスマートにすることで、より多くの時間やエネルギーを他の重要な業務に割り当てることができます。ぜひ、今回の情報を参考にして、効率的な業務処理を実現してください。