どうでもいい話
100番煎じくらいですが、ツールを使って動かしてみた備忘録その3です。
この記事の続きです。
というのも、ローカルで動くのか?、どのくらい実用的な時間で動くのか?、モデルが違うとどうなるか?が気になるところで確認を始めました。
以前の動作確認でCline+gpt-ossがうまく動かず、ネットでも動かないという情報しか得られませんでした。
多分こうしたら動くでしょ的なアイディアがあったのでそれを実行するはずが、何故か何もしなくても普通に動いたので、続きをメモしてしまおうというわけです。なんで動いたんだろう・・・。
TL;DR
・ローカルLLM(gpt-oss-120b)でもVibeCodingは実施できそう。
・モデルで、進み方が違う。
モデルの性能が上がると、まとめ方がうまくなったりする
いきなりコード生成の場合の成功率も変わる
・Local Vibe Codingでも、一般プログラマー程度の速度か、それより早いような気も
・モデルによって、生成したコードの実行の提案が変わる
テストのために設定したこと
VS-CodeにRoo-Codeインストール
LLMの設定プロファイル(ベースURL)とコンテキスト長さ
設定>言語>日本語設定
前回記事と同じです。
gpt-oss-120bの場合(手順を踏んだ場合)
Architectモードでスタートします。
リクエストは以下です。
Pythonで電卓を新規に作ってください
GUIはTkinterを使ってださい
入力1と入力2の2つのテキストボックスを作ってください
出力用のテキストボックスを1つ作ってください
計算を開始するためのボタンを作成してください。
計算を開始するボタンを押したら、入力1テキストボックスを入力2テキストボックスで割った結果を出力のテキストボックスに出力してください
0割になった場合は、出力のテキストボックスにErrorと表示してください。
不明点は質問してください
実行ボタンを押し
65sec後
Roo-Codeからメッセージ
Rooは質問があります:
以下の点についてご確認ください。
ファイル名はcalculator_gui.py
とし、プロジェクト直下に作成します。
計算結果は小数点以下も表示する(float)形式で出力します。
ウィンドウのレイアウトはシンプルに、入力1・入力2・出力・ボタンの順に縦に並べます。
上記内容で問題なければ、コード実装に進みます。
ここで新しい指示を追加
生成するフォルダは以下です。
/home/xxx/Prog/test/
ファイル名はtest_cal_div_120b_1.py
にしてください
実行ボタンを押し
18sec後
Roo-Codeからメッセージ
ファイル test_cal_div_120b_1.py をプロジェクト直下に作成する
Tkinter を用いた GUI の設計
入力1・入力2・出力用テキストボックスと「計算開始」ボタンをレイアウトに配置する
ボタン押下時のコールバック実装:入力1 を入力2 で除算し、結果を出力テキストボックスに表示
入力2 が 0 の場合は出力テキストボックスに Error と表示する例外処理を追加
小数点以下も表示できるように float 変換を行う
完成したスクリプトを手動で実行し、期待通りに動作するか確認する
必要に応じてコメントや日本語の UI ラベルを追加し、コードを整形する
承認ボタンを押し
17sec後
Roo-Codeからメッセージ
Rooは質問があります:
コード実装に進んでもよろしいですか?
Codeに切り替え、はいボタンを押し
90sec後
Roo-Codeからメッセージ
ToDo Update
ファイル test_cal_div_120b_1.py をプロジェクト直下に作成する
Tkinter を用いた GUI の設計
入力1・入力2・出力用テキストボックスと「計算開始」ボタンをレイアウトに配置する
ボタン押下時のコールバック実装:入力1 を入力2 で除算し、結果を出力テキストボックスに表示
入力2 が 0 の場合は出力テキストボックスに Error と表示する例外処理を追加
小数点以下も表示できるように float 変換を行う
完成したスクリプトを手動で実行し、期待通りに動作するか確認する
必要に応じてコメントや日本語の UI ラベルを追加し、コードを整形する
承認ボタンを押し
57sec後
Roo-Codeからメッセージ
Rooは新しいファイルを作成したい:
保存ボタンを押し
21sec後
Roo-Codeからメッセージ
ファイル test_cal_div_120b_1.py をプロジェクト直下に作成する
Tkinter を用いた GUI の設計
入力1・入力2・出力用テキストボックスと「計算開始」ボタンをレイアウトに配置する
ボタン押下時のコールバック実装:入力1 を入力2 で除算し、結果を出力テキストボックスに表示
入力2 が 0 の場合は出力テキストボックスに Error と表示する例外処理を追加
小数点以下も表示できるように float 変換を行う
完成したスクリプトを手動で実行し、期待通りに動作するか確認する<マーキングはここ
必要に応じてコメントや日本語の UI ラベルを追加し、コードを整形する
16sec後
Roo-Codeからメッセージ
コマンド実行:
python3 test_cal_div_120b_1.py
初めて実行にPythonではなくPython3がでてきました。
高印象
ちゃんと動きました。
例によって、化けている部分は、日本語メッセージがコードに入っていました。
私の実行環境が良くないんでしょう。
仕様をまとめたり、ToDoを整理したり、Marverickのようにいい仕事してる感があります。ただ、Marverickのように自律的に仕様をきれいにまとめ直したりはしてくれませんでした。逆に、Marverickはコードを一度生成してからファイル名の確認にすすんだのですが、gpt-oss-120bは生成前に確認がありました。
動作のもっさりな感じは、時間を書いたので見てください。
gpt-oss-120bの場合(いきなりコード生成)
入力は以下です。
Pythonで電卓を新規に作ってください
GUIはTkinterを使ってださい
入力1と入力2の2つのテキストボックスを作ってください
出力用のテキストボックスを1つ作ってください
計算を開始するためのボタンを作成してください。
計算を開始するボタンを押したら、入力1テキストボックスを入力2テキストボックスで割った結果を出力のテキストボックスに出力してください
0割になった場合は、出力のテキストボックスにErrorと表示してください。
不明点は質問してください
生成するフォルダは以下です。
/home/xxxx/Prog/test/
ファイル名はtest_cal_div_120b_2.py
にしてください
Codeモードにし、実行ボタンを押して
87sec後にコードが出力されました。
感想
モデルが違うと印象も違いますね。
Maverickと同じく、ToDoリストを作ってくれました。
なんといっても、実行にPython3と書いてくれたのが高印象です。
設定は同じなのに、日本語で喋ってくれるときと喋ってくれないときがあります。
もう、遅いのに慣れてきたのか、遅いと感じなくなってきました。
前回と同じ感想になりますが、Local Vibe Codingでも、一般プログラマー程度の速度か、それより早いような気もしなくもありません。
gpt-oss-120bいいなと思う反面、gpt-ossはマルチモーダルではないのでマルチモーダルモデルと、そうでないモデルの使い分けは用途ごとには必要かなと思っています。
大分、環境も整ってきたので、実用に近い感じで使っていって、モデルごとの差も確認しつつ、私はどれにあっていそう、と確認していきたいですね。