【KT Vol.4】KNIMEにお願いしてコーディングする

KNIMEST TIMES

この『ナイメストタイムズ(以下:KT)』は、いつまで経ってもプログラム初心者のKNIMESTが、KNIME-Python-生成AI連携でどこまでできることが増やせたのかを、実際の体験談を元にシリーズでお伝えしていきます。

連載第4回目は、KNIMEがworkflowを構築する際に自動でコーディングしてくれるAsk K-AI機能の体験をします。

この記事を読むと、コーディング初心者でもK-AIを活用して効率的にデータ処理や可視化ができ、データ分析workflowを作成するスキルを身につけられるようになります。

KNIMEがコーディングしてくれる ~  Ask K-AI機能の紹介~

K-AI (カイ) がKNIME活用支援に特化したChatGPTをベースとした生成AIであり、3つのモードがあると紹介しました。

  1. チャットでのQ&Aモード
  2. Buildモード
  3. 各種ノード内のK-AIアシスタント

そしてB.のBuildモードの体験までが前回の記事でした。

それぞれを使いわけてKNIME workflow構築でちょっとしたプログラム(ツール)を開発できるか試みているわけです。いよいよコーディング技術を利用するのだが自分ではほぼコードを書かなくてすむローコード開発の体験へ進みます。

前回のK-AIのBuildモードでは、入力データテーブルの準備が必要でしたが、それ以降のworkflow構築は自動で行われるところまでを体験しました。一見ローコードに見えますが、実際にはK-AIが可視化のために使用する「Generic ECharts View」ノードで、内部的にJavaScriptのコーディングがK-AIによって行われています。

Generic ECharts Viewノードの設定画面を見ていただくと一目瞭然です。

真ん中上部のコードが表示されているウィンドウの左下に「Ask K-AI」ボタンがあるのに注目してください。

こちらはいうなればKNIMEにお願いしてコーディングを代行してもらえる機能です。もちろん自分で書いてもいいんですけども。以下はその機能の体験メモです。

K-AIにお願いしてworkflowに機能追加 ~ Buildモード 追加情報 ~

私は前の記事までで「K-AIでローコード開発」というworkflowをKNIME AP ver. 5.2.5で作ってきました。

K-AIでローコード開発_B_Buildモード体験 – KNIME Community Hub

上記のworkflowにBuildモードを使って機能追加するところから始めます。

前回の記事では、

KNIMEST
KNIMEST

「必要なデータを集めて、一つのデータテーブルにするところまでは人間が準備してからBuildモードを使うのがお勧めです。」

とは言ったものの、簡単なデータ統合ならBuildモードで実行できるので補足として以下に記録を残します。

例えばですがdriveridというキーとなるカラムを持つ二つのノードを選択し、K-AIのBuildモードで「driveridをキーにして結合して下さい」とプロンプトを書くと上図の右端のJoinerノードが設置されます。設定も自動で行われて

特に指示しなかったのでInner JoinですべてのカラムをJoinしています。

さらに上記のJoinerノードを実行後にそのノード1つを選択した状態で

KNIMEST
KNIMEST

「ドライバー別にポジション変化をy軸にするビジュアライゼーションをx軸をroundに設定してLine Plotを作成 ただしドライバー名はsurnameで定義」

とプロンプトを書くと再現性良く可視化してくれます。
多少プロンプトを工夫して細かめの指示を出すと再現性良くwokflowができるようですね、プロンプトのエンジニアリングに関しては皆さんとも情報交換してスキルを上げたいです。

簡潔なプロンプトでも不要なカラムをフィルターするデータ整形もしてくれますね。ここまでは前回の記事と同様です。

K-AIで可視化実現 ~ Generic ECharts Viewノード ~

得られたLine PlotのGeneric ECharts Viewノードの設定画面を見てみましょう。

いろんな意味で情報過多ですよね。まずはこの画面をもう少し細かく見てみましょう。左上は入力されたデータテーブルや変数の一覧です。

各項目をDrag & Dropするとコーディング内に入力できるインタラクティブな作りになっています。KNIME社さん便利なUI(ユーザインターフェイス)作りましたね。

そして真ん中上部がコーディング結果の確認用のウィンドウです。私はJavaScriptに関して完全にど素人なので何にもわからないですけど、上記のプロンプトだけでK-AIによりコードが書かれ、いくつかのコメントアウトまでしてくれていますよね。そして左下の”Ask K-AI”ボタンがさらなる改作時に強力な助っ人となります。

右上が今回生成したEChartのイメージを確認できるウィンドウです。

今回はx軸のどの時点かをカーソルで選ぶとその時の各ドライバーの順位がポップアップ画面で閲覧できるというインタラクティブな機能も設定してくれています。そこまで頼んだ覚えはないが親切設計ですよね。

ただ、明らかに見にくくってゴミゴミした見栄えだと思います。そこでK-AIに頼んで改良をしてみましょう。

K-AIにお願いして追加コーディング ~ Ask K-AI機能活用 ~

“Ask K-AI”ボタンを押すと

一応Perplexityで日本語訳をしておきます。K-AIのQ&Aモードを使わないのは文字数制限が厳しいからです。適材適所は大事ですよね。

免責事項
このコーディングアシスタントを使用することにより、以下の事項に同意したものとみなされます。プロンプトに入力した情報、現在編集中のコード、およびテーブルヘッダーは、このサービスを提供および改善するためにOpenAIおよびKNIMEと共有される場合があります。

KNIMEは、生成されたコードによるコンテンツ、入力または出力、またはトリガーされたアクションについて一切の責任を負わず、コーディングアシスタントの使用に関連して発生するいかなる損害についても責任を負いません。

これは実験的なサービスであり、自己責任でご利用ください。

KNIME TableのデータはOpenAIおよびKNIMEに漏れないそうですが、カラム名などですら企業秘密なこともあり得るし業務では使いにくいなぁと思いつつ、今回は公共データの利用なので気にせず”Accept and close”をクリックしてプロンプト入力へ進めます。

「最初はHamiltonとVerstappenだけが選択された状態で表示してください」と入力して紙飛行機の形のアイコンをクリック、もしくはリターンキーで投稿します。

すると数秒考えて下記の状態へ

すなわち編集前と編集後を並べて表示してくれていて、どこが変わったかを変更前は赤色、変更後を緑色表示してくれます。ウィンドウに右端のほうでコード全体でどのあたりなのかを観察できますね。カーソルを動かして該当箇所を見比べてみましょう。

細かくは説明しないですけどLine plotの初期表示項目を限定するコードが足されています。ここでコードを確認できる方はいいんですけど、私はよくわからないので”Insert in editor”ボタンを押して結果を確認します。

2021年の二人の激しい競争は克明にWikiなどに紹介されていますね。

2021年ベルギーグランプリ - Wikipedia

この年は角田裕毅のF1初参戦の年だったようで気になりますよね。

そこで自分でもコードを編集してみたくなるわけです。でも自分で書く時って頻繁にtypoとかしちゃいますよね。

そしたら下のConsoleウィンドウの出番です。エラーメッセージが出てますのでコピペして”Ask K-AI”してみましょう

ちゃんと修正案を提案してくれますので”insert in editor”を押して訂正完了です。

結果

角田さん最終戦は4位と素晴らしい戦績を確認できるわけですね。

タイトルや各ドライバーの表示色の指定なども、プロンプトでいろいろお願いするだけでコーディングできるし、自分でも書き換えてその結果をインタラクティブに確認できます。また、エラーが出たらメッセージを貼り付けるだけで修正案を出してくれるという優れたコーディングツールが提供されています。

なんてすごいものを無料で提供してくれるんだKNIME社はと感動しています。K-AIの3つ目の機能

「C. 各種ノード内のK-AIアシスタント」

の体験はいったんここまでとします。私の作ったworkflowは下記に公開します。

K-AIでローコード開発_C_半自動コーディング – zassou_syk
KNIME AP ver. 5.2.5を使ってK-AIの体験をした記録の共有用のworkflowです

K-AIとEChartsのコラボで可視化を極める

私は全く使いこなせていないので紹介だけですが、よく見ると右上のウィンドウには2つのタブがありますよね。EChart Templateタブを選んで一番下までスクロールしてみてください。

“Explore More”を押したら下記のページへ。

Examples - Apache ECharts
Apache ECharts, a powerful, interactive charting and visualization library for browser

さらにさらに、K-AIの「C. 各種ノード内のK-AIアシスタント」はPython Scriptノードでも活用できるのです。私の活用例はいつかまた紹介しますね。

K-AI powered Python Code Generation in KNIME and the evaluation of Sports Scoring systems
Evaluate different Sports Rating Systems like Elo Rating and TrueSkill with the help of K-AI, KNIME’s Python code genera...

まとめ

このようにKNIMEのAsk K-AI機能を使うと、初心者でも簡単にコーディングやデータ可視化ができちゃいます。操作も直感的で、多機能だからこそめちゃくちゃ便利です。

プロンプトを使うと、エラーが出てもすぐに修正案を提示してくれるので、作業効率が一気に上がります。特に忙しいビジネスパーソンにとっては超便利。

さらに、ローコード開発を通じて、複雑なワークフローもサクサク構築できて、スキルアップにも繋がります。プロジェクト全体の生産性もアップ!

KNIME社が提供してくれるこのツールは、データ分析や開発者の心強い味方になること間違いなし。これからもどんどん活用して、その可能性を最大限に引き出していきましょう!

『可能性は無限大だ!…「水球ヤンキース」』
第9話と最終回まとめての記事とします。このドラマ、出だしの期待感の割に、途中からグダグダになり、ちょっと残念だったのですが、ラストはこの手のスポ根ドラマらしく…

「あきらめなきゃ終わらねぇ。何にでもなれる。可能性は無限大だ!」

もう十年経つのか…皆さん覚えておられますかね?

< 前の記事【KT Vol.3】

コメント

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