alantech/marsha
Marsha is a functional, higher-level, English-based programming language that gets compiled into tested Python software by an LLM
Marsha – LLM駆動の「プログラミング言語」
何であるか – Marsha は、データ処理タスクの小さなマークダウンスタイルの記述を可能にします。入力と出力の「型」を宣言し、短い自然言語の説明を書き、いくつかの入出力例を提供します。Marsha コンパイラはこの仕様を LLM(デフォルトでは OpenAI の API)に送信し、Python コードを生成し、例をテストとして実行して検証し、実行可能なスクリプトを出力します。
主なアイデア
- 宣言型構文 –
.mrshファイルはマークダウンに似ています。型は CSV スタイルのテーブルで定義され、関数は# func …ヘッダーで宣言され、その後に説明と例のブロックが続きます。 - 例に基づくテスト – 提供された例は、コンパイラが生成されたコードを検証するために使用するテストスイートになります。これにより、出力が壊れるリスクが低減されます。
- LLM をバックエンドコンパイラとして利用 – 仕様を Python に変換する重い処理は LLM が担当します。設定、コマンドラインフラグ、環境変数でモデルを選択できます。
- 実行可能な出力 – 生成された Python には、小さな CLI ラッパー(またはシンプルな REST サーバー)が含まれており、ターミナルから直接コンパイルされた関数を呼び出せます。
使い方
- リポジトリからパッケージをインストールします:
uv pip install git+https://github.com/alantech/marsha - Marsha 構文(型定義、
# func …ブロック、説明、例)を使ってmy_task.mrshファイルを作成します。 - コンパイルします:
コマンドは設定された LLM に接続し、Python を生成し、テストを実行して結果のスクリプトを書き出します。python -m marsha my_task.mrsh - 生成されたスクリプトを CLI ツールとして、または小さなウェブサービスとして実行します:
python -m my_task --help # 生成された CLI オプションを確認 python -m my_task -s 8080 # REST サーバーを起動
設定 – Marsha は標準的な OS の場所(Linux では ~/.config/marsha/config.json など)から JSON 設定ファイルを読み込みます。api_base、api_key、model、model_strong を設定できます。環境変数(OPENAI_ORG、OPENAI_SECRET_KEY/OPENAI_API_KEY)はデフォルトの OpenAI バックエンドに使用できます。--api-base および --model フラグは、コマンドラインでこれらの設定を上書きします。
コマンドラインオプション(主なハイライト):
-q– コード生成のみ、修正ステージをスキップ(安価だが信頼性は低い)。-a N– 最大 N 回のコンパイル試行を行い、失敗時に再試行。-n N– 各試行で N 個の並列な LLM「思考経路」を実行。最初に成功した経路が採用される。--exclude-main-helper– 自動生成された CLI ラッパーを除外。--exclude-sanity-check– Marsha 定義の初期整合性チェックをスキップ。-s– 統計情報をファイルに書き出す。
ロードマップのハイライト
- 平均正解率を 90% 以上に引き上げる。
- エディタ用の構文ハイライトプラグインを追加。
- Python 以外のターゲット言語をサポート。
- モジュールシステムと、既存の Python を Marsha 構文に戻す「デコンパイラ」を導入。
- グラフィカルな GUI エディタと、より洗練されたデバッグヘルパーを構築。
対象ユーザー – 手動ですべての行を書くことなく、小さなデータ処理スクリプト(例:pandas パイプライン)を、より高レベルで、例に基づいて生成したい開発者。また、テスト駆動の監視下で LLM が実装を生成することに抵抗がない方。
関連
- プロジェクト
- プロジェクト
- プロジェクト
- プロジェクト