どうでもいい話
今まで、AI駆動開発とか言ってましたが、なんだか決定的な用語ができていたような気がします。
100番煎じくらいですが、ツールを使って動かしてみた備忘録です。
ローカルで動くのか?、どのくらい実用的な時間で動くのか?、モデルが違うとどうなるか?が気になるところで確認を始めました。
TL;DR
・ローカルLLM(llama4)でもVibeCodingは実施できそう。
仕様を入力して、ボタン押しただけで、動くコードが出てきた。
・モデルで、進み方が違う。
・Local Vibe Codingでも、一般プログラマー程度の速度か、それより早いような気も
途中まで書いて長くなりすぎたので、適当に分割したいと思います。
テストのために設定したこと
今回は最低限の設定で・・・。
VS-CodeにRoo-Codeインストール
LLMの設定プロファイル(ベースURL)とコンテキスト長さ
設定>言語>日本語設定
llama4-scoutの場合(手順を踏んだ場合)
Architectモードでスタートします。
コードの要求は以下です。
Pythonで電卓を新規に作ってください
GUIはTkinterを使ってださい
入力1と入力2の2つのテキストボックスを作ってください
出力用のテキストボックスを1つ作ってください
計算を開始するためのボタンを作成してください。
計算を開始するボタンを押したら、入力1テキストボックスを入力2テキストボックスで割った結果を出力のテキストボックスに出力してください
0割になった場合は、出力のテキストボックスにErrorと表示してください。
不明点は質問してください
メッセージも可能な限り日本語で表示します。(注記)
注記:実際は、先にMaverickをテストして、同じ内容にしたかったのですが、
Scoutでは、返信が英語になりましたので、この行を追加しました。
実行ボタンを押して
28sec後
Roo-Codeからメッセージ
入力1と入力2の2つのテキストボックス
出力用のテキストボックス
計算を開始するためのボタン
ボタン押下時に、入力1を入力2で割った結果を出力
不明点は以下です:入力値のエラー処理(例: 空文字列、非数値)
計算結果の表示形式
まずは基本的な実装を考え、必要に応じてユーザに確認を取りたいと思います。必要なライブラリ(Tkinter)のインポート
GUI部品(テキストボックス3つ、ボタン1つ)の作成
ボタン押下時のイベント処理(計算ロジックの実装)
エラー処理(0割、非数値入力)
計算結果の出力
了解ボタンを押して
51sec後
Roo-Codeからメッセージ
まずは基本的な実装として、Tkinterを使ったGUIアプリケーションを作成します。以下を実装します:
必要なライブラリのインポート
GUI部品(テキストボックス3つ、ボタン1つ)の作成現在のアーキテクトモードでは、Pythonファイルを作成できません。モードをコードモードに切り替える必要があります。
Rooは次の理由でcodeモードに切り替えたい: Pythonコードを記述するため
Codeモードに変更し了解ボタンを押して
90sec後
Roo-Codeからメッセージ
コードモードに切り替わりました。早速、Pythonファイルを作成します。
実際にはこの段階で仮のファイル名でコードが生成されていました。
追加の要求を入力しまいた。
生成するフォルダは以下です。
/home/xxx/Prog/test/
ファイル名はtest_cal_div_sc.py
にしてください
実行ボタンを押して
20sec後
Roo-Codeからメッセージ
ファイルが正常に作成されました。次に、作成したファイルを読み込んで内容を確認します。
実行しますか?
と言われたのですがPython3ではなくPythonで実行コードを出してきたのでとりあえずここで終了しました。
ちゃんと動きました。化けている部分は、日本語メッセージがコードに入っていました。
私の実行環境が良くないんでしょう。
GPU負荷が上がりませんでした。上がらないのは、llama4の全領域をVRAMに突っ込めてないからか、Roo-Codeの処理部分が意外とオーバーヘッドが大きいからか気になるところです。
(今回の使用VRAMは26.4GB)
Roo-CodeがReasoning Modelのようにうまく整理してくれている感じがします。
結局、出力ファイル名を指定し直した以外は、ボタン押しただけで、動くコードが出てきました。
llama4-scoutの場合(いきなりコード生成)
入力は以下です。
Pythonで電卓を新規に作ってください
GUIはTkinterを使ってださい
入力1と入力2の2つのテキストボックスを作ってください
出力用のテキストボックスを1つ作ってください
計算を開始するためのボタンを作成してください。
計算を開始するボタンを押したら、入力1テキストボックスを入力2テキストボックスで割った結果を出力のテキストボックスに出力してください
0割になった場合は、出力のテキストボックスにErrorと表示してください。
不明点は質問してください
メッセージも可能な限り日本語で表示します。生成するフォルダは以下です。
/home/xxxx/Prog/test/
ファイル名はtest_cal_div_s2.py
にしてください
Codeモードにし、実行ボタンを押して
35sec後にコードが出力されました。
このやり方を何回か実施したのですが、動かないコードが生成されることもありました。
続きの記事は以下
感想
なんかもう、簡単な作業は、プログラマーとかもういいんじゃないの。と思わなくもない感じです。ゲーム・チェンジ感がすごい。
私自身は、つい最近まで、プログラムを書いてもらうために、結局、スクリプトを書いていたわけですので、エンジニアいるよねと思っていたのですが、もう、それもいらない感じですし・・・。
GPT4出たあたりからやり始めて、Gemini2.0Proのあたりで、本当に使えるようになってきたと実感したのを覚えています。
今までは、プロンプトにこうしたいと書いて、動作させてエラーが出たら、エラーメッセージとコードを貼っていました。(時代遅れ感)
あと、LangChain使ったりとか。
なんとか、周回遅れ1〜2周でついていきたいところです。