chat GPTは電気回路を描かせることもできます。基本的にプログラムを描けるものについては、chat GPTが学習しているケースが多く、うまくプロンプトで指示することで目的の回路のコードを描かせることができます。本記事ではpythonで電気回路を描けるライブラリとchatGPTを使って回路を作成してみたいと思います。
※ 結論、現時点でのchat GPTで電気回路を描くのは難しかったです。(学習データが豊富な言語やファインチューニングしたモデルがあれば結論は変わると思います)
Pythonで電気回路を描くツール
Pythonで電気回路を描くためのツールはいくつかあります。以下に、いくつかの代表的なツールをリストアップします。
SchemDraw
- Pythonで回路図を描画できるパッケージ
- シンプルなコードで回路図を描画できる
- Github: https://github.com/mph-/schemdraw
- ドキュメント: https://schemdraw.readthedocs.io/en/latest/
lcapy
- Pythonで回路図を描画し、回路解析もできるパッケージ
- 各種回路シミュレーションにも対応
- Github: https://github.com/mph-/lcapy
- ドキュメント: https://lcapy.readthedocs.io/en/latest/
PyCircuitDraw
- Pythonで回路図を描画できるパッケージ
- シンプルなコードで回路図を描画できる
- Github: https://github.com/akloster/pycircuitdraw
- ドキュメント: https://pycircuitdraw.readthedocs.io/en/latest/
SKiDL
- 回路図をテキスト形式で記述し、回路図やシミュレーションを生成できるPythonライブラリ
- KiCadのスキーマティックエディタと連携
- Github: https://github.com/xesscorp/skidl
- ドキュメント: https://xesscorp.github.io/skidl/docs/index.html
PySpice
- 回路シミュレーションを行うことができるパッケージ
- 回路図の描画も可能
- Github: https://github.com/FabriceSalvaire/PySpice
- ドキュメント: https://pyspice.fabrice-salvaire.fr/
これらのツールはいずれも、回路図の描画やシミュレーションに優れた機能を持っています。使用目的や使いやすさ、好みに合わせて選ぶことができます。
電気回路をChatGPTに描いてもらう
本記事では、「SchemDraw」を使ってChatGPTに電気回路をつくってもらう方法について解説していきます。環境はGoogle Colabを使ってpythonのコードをChatGPTに出力してもらってコードを動かす流れとなります。
直列回路
以下プロンプトをchatGPTに送信してみます。
pythonのSchemDrawを利用して、シンプルな直列回路のコードを記述してください。
パッケージのインストールには依存関係のあるライブラリもインストールしてください。
「パッケージのインストールには依存関係を解消できるバージョン指定もいれてください。」と指示すると依存関係のライブラリのインストール用のコードも出力してくれます。
コードをRUNすると、SchemeDrawのimport名でエラーが発生しました… エラー内容の解消を色々教えてもらおうとしましたが、chat GPTは解決してくれませんでした。結論、名前を「schemdraw」と全て小文字で記述すると解決しました。
以下、修正後のコードをRUNした結果です。全く正しい回路描画になっていないですね笑。学習データが少ないのか精度はあまり良くないかもしれません。プロンプトを工夫してなんとかいい感じの回路を出力させるためにもうひと工夫してみます。
具体的に回路について記述してみました。
プロンプト
電源が回路左側に一つ、抵抗器が上に一つあり、線を正方形になるように抵抗と電源をつなぐ回路のコードを出してください
上記のコードを走らせると、d.unit[-1]という箇所でエラーが発生します。d.unitは配列ではなくfloat型の数値であり、AIがそもそも正しく認識できていないようです。
GPT-3.5モデルをGPT-4にしても結果は同じで正しく回路を描くことはできませんでした。web上にもソースコードが豊富にあるわけではないので、AIのハルシネーションが発生しやすく、使いこなすこと自体が難しいです。また、schemdrawもバージョンによって記述の仕方が変わっているので、これも合わせて正しく出力してもらう必要があり、そのままRUNして動くものとして使うのは難しいと思います。(本執筆時点での最新はv0.16となっています)
最後に
AIに電気回路のコードを記述してもらうことは、現状では難しいことがわかりました。一部のライブラリを使った場合、AIが正確に描画することができなかったり、必要なライブラリが不足していることがわかりました。AIは、大量のデータを学習することができるため、電気回路に関する知識を学習し、回路を自動生成することは可能かもしれませんが、それにはさらに多くの開発が必要になります。現時点では、電気回路のコードは人間が書く必要があるということがわかりました。ただし、AIが電気回路に関するデータを解析することで、回路の構成や動作に関する洞察を得ることができるかもしれません。
コメント