Nigelによるコード生成とは

その他

スポンサーリンク

この記事では、LabVIEW 2026Q3のバージョンからいよいよ使えるようになった、Nigel AIによるLabVIEWのコード生成についてどんなものなのか、どのように使えるのか、生成したVIの例を紹介しています。

なお、Nigel自体はコード生成以外の機能も持っていますが、この点については別記事でまとめているので、コード生成以外も気になる、という方は以下の記事が参考になるかもしれません。

また、本記事で紹介している例は以下の動画の中で生成するおきに使用したプロンプトと実際に生成されたVIになります。

スポンサーリンク

Nigelによるコード生成とは

Nigelは、LabVIEWの中から呼び出せる、LabVIEWと一緒に使うことができるAI機能のことで、いわゆるチャット形式のウィンドウ画面で質問、相談、アドバイスを求め対話することができます。

2026年7月終わりにリリースされたLabVIEW 2026Q3のバージョンで、コード生成ができるようになりました。

これは読んで字のごとく、LabVIEWコード、つまりviを、AIによって生成する機能であり、形としては、世の中にある他の生成AIがPythonなどのテキスト系言語に対して既にコード生成できているという状況を考えると、待ちに待った、という感が強いかなと思います。

Nigelには、それ以前のバージョンでも既に機能としてあった、VIの説明をさせる機能が個人的に結構有用だったので、コード生成も有用な機能になっていればいいなと考えていたものの、2026Q1のバージョンで登場していた、コードを補完する機能はイマイチだったため、コード生成についてどの程度期待していいかわかりませんでした。

先に結論を書いてしまうと、コード生成機能はなかなかよくできていると思います。

一般AIを利用する際の前提として、AIが出力した結果を全く疑わず全て受け入れてそのまま検証無しに利用する、というのは避けるべきで、Nigelについても例外ではありません。

その意味で、Nigelが生成したコードをそのまま信じて使うというのは全くお勧めしません。

ただ、例えLabVIEWに慣れていたとしても自力でプログラムを組むにはこの速さではできないな、という大きさのプログラムも作成してくれたりするので、いわゆるプログラムの土台作りはNigelにしてもらい、細かい調整や検証は人間の手を加えるような使い方がよさそうです(世の中にある他の生成AIはこの辺りもだんだんAI自身で検証したりして人の手を介さずとも「スゴイ」ものを作ってくれているようですが、人が判断するというプロセスを無くすのは成果物への責任を持たないようなものです)。

コード生成の使い方

前置きが長くなってしまいましたが、Nigelによるコード生成についてその使い方を紹介していこうと思います。

ただし、ほぼ説明することはなく、Nigelに対して「○○というプログラムを作ってほしい」とチャットウィンドウに打ち込むだけです。

どのような処理を行うプログラムなのかをできるだけ端折らずに書くことでより自分のイメージに近いプログラムを作成してくれます。

ともあれ、どのようなプロンプトを書けばどのようなプログラムができるかの例がないと書き方もわからないと思うので、ここではいくつかのプロンプト例とそのプロンプトによってどのようなプログラムが生成されるかを紹介していきます。

なお、一般的なAI同様、生成されるVIについては、全く同じプロンプトでも異なる構造を持つプログラムとなる可能性がありますのでこの点はご注意ください。

文字列操作

文字列の操作については、形式文字列によるフォーマットの指定など慣れていないとなかなか難しかったりするので、そこをAIの力を使って簡単にプログラムを作ってみようという例です。

以下のプロンプトを入力したとします。

数値が入力された文字列に対して、3桁ごとにその数値に対してカンマを挿入するプログラムを作ってください。たとえば文字列制御器に「3023458」と入力されたら「3,023,458」という表示が文字列表示機に表示される状態にしてください。

結果として以下のようなVIを生成しました。

ただこれは期待する結果を出しません。

そこで、続けて以下のプロンプトを入力しました。

今生成されたプログラムでは、「3023458」と入力すると「3023458.000000d」と表示され、期待した結果になっていません。期待した結果になるようにプログラムを修正してください。、また、負の数や小数にも対応するように拡張してください。

結果として得られたのは以下のVIで、こちらは期待する結果を出しました。

一発でうまくいかなくても、どのような部分が期待した結果ではなかったかの情報を含めて改めてコードを生成するように指示することで目的の処理を達成することができました。

ファイル操作

次にファイル操作を伴うプログラムの生成です。

以下のようなプロンプトを与えました。

乱数を10個生成し、これを波形グラフに表示しつつ、デスクトップ上にmyresult.txtというファイルに対してカンマ区切りで保存できるようなプログラムを生成してください。

結果は以下のようなもので、保存先が定数になっているのが気になりましたが一応指示したとおりのプログラムを作ってくれています。

ただやはりパスが定数であるところが気になったので、

ログイン中ユーザーのデスクトップに保存する版にして

というプロンプトを与えたところ、今度は関数でパスを取得するプログラムになりました。

(ただし、あとから気づいたのですが、システムディレクトリ種別の値が0のときにはデスクトップに保存、ではありません・・・)

これで、柔軟性が増した感じになります。

ハードウェア操作

LabVIEWと言えば、で、ハードウェア、DAQの操作を伴うプログラムも生成してみました。

以下のプロンプトを入力しています。

compactDAQを使用したアナログ電圧入力のプログラムで、ユーザーがフロントパネル上の停止ボタンを押すかあるいは測定を開始してからユーザーがフロントパネル上で指定した測定時間が経過するまで測定を続けるプログラムを作成してください。

生成されたVIは以下のようなものです。

今回はテストということで比較的簡単なプログラムを作ってもらいましたが、LabVIEWではもっと複雑なハードウェア操作を伴うプログラムも作れるはずで、Nigelがどこまで対応できるかは研究の余地があります。

ピクチャ操作

最後に少し変わり種としてピクチャ操作に関するプログラムも試しました。

別にLabVIEWでこのようなプログラムを書く必要はないだろう、という話ではありますが、Nigelのコード生成の実力を試すための題材として以下のプロンプトを与えました。

ドップラー効果を視覚的にわかりやすく説明するためにLabVIEWのピクチャ表示器を用いてドップラー効果を表現するプログラムを作成してください。教育目的での使用を考えています。
もしプログラムを作る際に指定するパラメータがある、あるいはプログラムを作成するのに必要な条件が足りない場合は教えてください。こちらで答えます。すべての条件がそろった段階でプログラムの作成に入ってください。

条件についてはNigelが「この条件はどうしますか?」といった内容をいくつか聞いてきたのですが、Nigelがそれぞれの条件、設定についてオススメを提案してくれるので、基本それに従うことにしました。

結果は以下のような動作をするプログラムでした。

このVI、自力で作るとなるとなかなか骨が折れると思いますが、以下のようなブロックダイアグラムのプログラムを作ってくれました。

ピクチャについてはここで紹介したもの以外でも結構Nigelが要求通りにプログラムを作ってくれることがあり、実用的かどうかはともかくとして、NigelがLabVIEWのコード生成としてなかなか有能だという感じがしました。

本記事では、Nigelによるコード生成ということで、いくつかのトピックでプロンプトを試しその結果を紹介しました。

裏の仕組みは知りませんが、少なくともこちらの要求はよく理解してくれ、なるべくそれをLabVIEWに落とし込んだ形でうまく生成してくれるようです。

コード生成については他にもジャンルごとにいくつか記事にしていこうと思います。

ここまで読んでいただきありがとうございました。

コメント

タイトルとURLをコピーしました