この『ナイメストタイムズ(以下:KT)』は、いつまで経ってもプログラム初心者のKNIMESTが、KNIME-Python-生成AI連携でどこまでできることが増やせたのかを、実際の体験談を元にシリーズでお伝えしていきます。
連載第2回目は、「生成AIを使ったローコード開発」の体験談を元に、生成AIからWorkFlowがどこまで作れたかを紹介します。
この記事を読んでいただくことで、生成AIにどんなプロンプトを入力すれば、どんなノードのヒントを得られるかがわかるようになります。
KNIMEと生成AIをつかってローコード開発をしてみよう
前回の記事で、K-AI (カイ) がKNIME活用支援に特化したChatGPTをベースとした生成AIであることは紹介しました。
そしてK-AIには3つのモードがあると紹介しました。
A. チャットでのQ&Aモード
B. Buildモード
C. 各種ノード内のK-AIアシスタント
それぞれを使いわけてローコードでのworkflow構築でちょっとしたプログラム(ツール)を開発できるか試みました。
今回の記事では、KNIMEを使ったローコード開発とは自分自身ではゼロからJavaやPythonのコードを書くことなく、またKNIMEの既存ノードを組み合わせただけでは実装が難しい部分はPythonなど使って解決することを指しています。
K-AIとチャットで相談するには
まずは上記の「A. チャットでのQ&Aモード」から使ってみました。KNIME AP ver. 5.2.5を立ち上げ、Local Spaceを選んでworkflowを保存先を選んでから新規にworkflow作成をされるかなと思います。
今回はより簡便に右の「Create workflow in your local space」の「+」アイコンをクリックしてworkflow作成画面を立ち上げることにします。
workflowの名前を「 K-AIでローコード開発」としてみます、ダサいか。
左のタブアイコン群から
「K-AI AI assistant」をクリックすると、まずはK-AIをつかうアカウントでのログインを求められます。
「Login to My-KNIME-Hub」をクリックするとブラウザが立ち上がるので、IDとPWを入力して「OK」してください。あるいは私のようにブラウザにIDとPWを記憶させているとそれすらなくていきなりログイン完了になります。
ちょっと寄り道で補足しますがそもそものアカウントづくりについては以前にも書いたことがあるので省略しています。もしまだ作っていなかったら下記の記事など参考にしてください。
【KNIME】Just KNIME It!勉強会 | KNIMEST~ザッソウと創薬~ (conohawing.com)
他にもいろいろよい記事が公開されていると思います。例えばみんなのヒーローまっきーさんの記事を引用しておきます。
KNIME – KNIME版GitHub!? KNIME Hubとは? – 機能・使い方を解説 – デジタル推進課 (hatenablog.jp)
K-AIやとチャットで相談してみた
さて、本題に戻るとします。自分のKNIME HubにログインしたあとのKNIMEの画面は下図のようになってますよね。
英語で結構大事な注意点が書いてあるんで、ポイントだけ和訳すると下記となります。
「チャットに入力する情報や、ワークフローに関する情報(編集中のもの)は、OpenAIと共有される可能性があります。」
仕事でKNIME使うなら極めて重大な注意事項ですので、安心安全なご利用をお願いします。
さて、私は趣味での利用なので「Accept and close」を押して利用開始します。
K-AIの母体はChatGPTですが、KNIME workflow構築に特化させるべくKNIME社がRAG技術など駆使して魔改造されています。ですので、プロンプトが簡潔でもKNIMEのworkflow構築相談と認識されて回答されます。 2024年初頭は一般的なChatGPT的な使い方もできたように思いますが、最近は例えば
和訳してほしければ他をあたってねと返されます。私は最近はPerplexityを愛用していますがそれは余談でしたのでいつか別の機会に話します。 KNIMEやデータ分析に関する質問をしてみましょう。プロンプトを下記のように簡潔なものにしてもKNIMEでどう解決するかを答えてくれます。
ノードのアイコンが出てますけど、そこからドラッグ&ドロップでKNIME workflow作成が始められちゃうのが便利です。
一方で、最近感心したのは「KNIMEで」ってプロンプトに書くとCopilotでも相当正確に答えてきますね。ちなみにKNIMEでって条件絞らないとPythonでの解き方をコード例付きで教えてくれたりします。生成AIの進化には感心しています。
以下はCopilotでのKNIMEでの解決法の回答も引用しておきます。
【プロンプト】
KNIMEで 複数のcsvファイルにはレースの情報や各レースの結果、チームの情報が別々に入っています。データを集めて2021年のTop5チームを選ぶにはどうしたらいいですか
KNIMEを使って複数のCSVファイルから2021年のTop 5チームを選ぶ手順を説明しますね。
CSVファイルの読み込み:
KNIMEの「File Reader」ノードを使って、各CSVファイル(レース情報、レース結果、チーム情報)を読み込みます。
データの結合:
「Joiner」ノードを使って、レース結果とチーム情報を結合します。共通のキー(例えばteam_id)を使って結合します。
2021年のデータフィルタリング:
「Row Filter」ノードを使って、2021年のレース結果のみを抽出します。year列が2021である行をフィルタリングします。
チームのスコア計算:
「GroupBy」ノードを使って、各チームの総得点を計算します。team_nameでグループ化し、points列の合計を計算します。
Top 5チームの選定:
「Sorter」ノードを使って、得点の高い順に並べ替えます。その後、「Row Filter」ノードを使って上位5チームを選びます。
結果の表示:
「Table View」ノードを使って、Top 5チームの情報を表示します。
これで、KNIMEを使って2021年のTop 5チームを選ぶことができます。何か他にお手伝いできることがあれば教えてくださいね。
引用はここまでです。本当はさらに詳しくプロンプトを書いて設計方針を定めたりもしますけど、基本的に使うノードの提案内容は確かにあってました。まあ、workflow作成のヒントをもらった後は自分で設定をいろいろ工夫しなくちゃいけませんけどね。
まとめ
KNIMEと生成AIを組み合わせることで、プログラミング初心者でも複雑なワークフローを構築できる環境が整っていることはわかりましたでしょうか?
このように、K-AIを使ったローコード開発は、AIの支援を受けながらも自身で調整が必要な部分もあり、学習の機会を提供しています。
今回の記事での内容は、K-AIじゃなくても生成AIなら相談に乗ってはくれるんですが、実はK-AIでないとできない機能もあります。
それが次回ご紹介する「 B.Buildモード」の体験記録です。お楽しみに。
コメント