昨日 みんなでGitHub Sparkを使い倒そうぜ!【GitHub Vibe Riders初配信】に参加させていただいたのですが、その際に得られた GitHub Spark の知見を残しておきたいと思います。
【記念すべき】泥酔バイブコーディングのお供、GitHub Sparkを使い倒そうぜ!【初配信】 でアーカイブ配信も公開してくださっています。
Contents
GitHub Spark で使用可能なモデル
GitHub Spark では、GitHub Models の AI モデルが使用可能ということになっています。
https://www.npmjs.com/package/@github/spark?activeTab=code の llm.js に記載されているモデルについては使用できることは把握していたのですが、イベント内では「Grok 3」が使用できるかという話題になりました。
イベント内では、使用するモデルとしては「grok-3」を指定すれば使用できることは確認できたのですが、モデルはどのように指定すればよいのかが気になったので改めて調べてみました。
GitHub Models で使用可能なモデルについては https://github.com/marketplace?type=models から確認をすることができます。
GitHub Spark で AI の機能の搭載を指示した場合、「GPT-4o」「GPT-4o Mini」が使用されるケースが多いですが、それ以外のモデルについても spark.llm の呼び出し時にモデル名を指定することで利用することができます。
この時に指定するモデル名ですが、「GitHub Models のモデルを呼び出す際に指定するモデル名」で呼び出しが可能なようです。
「Grok 3」であれば「xai/grok-3」で呼び出すことができます。(モデルの前のプレフィックスを省略することも可能なようですが、llm.js で GitHub Spark の初期バージョンのプレフィックスを省略した形だったものをプレフィックス付きに変換していますので、省略しないほうがよさそうです)
プロンプトで自動生成されたコードで、期待したモデルが使用されていなかった場合、手動で明示的に指定することで指定したモデルを使用することが可能です。
以下は「xai/grok-3」を指定して LLM を呼び出しています。
回答としても Grok が使用されたことが確認できますね。
GitHub Spark 内のアプリケーションのモデル呼び出しですが、モデルの指定は GitHub Models で公開されているモデルを指定できそうですが、現状は llm.js の実装に依存しているかと思います。
トークン数の指定で max_tokens 以外の設定を使用する必要がある / API バージョンを指定する必要があるようなモデルについては、指定することはできますが、標準の仕組みでは使うことはできなさそうでした。
GitHub Spark から LLM を呼び出した場合のレートリミット
GitHub Spark 内のアプリケーションで LLM を呼び出した場合、Premium Request は消費されませんが、呼び出し回数には制限がかかっています。
勉強会内で転送率の制限 が紹介されており、このリミットではないかというお話がありました。
改めて、動作を確認していたところ、Spark のアプリケーションからの LLM の呼び出しについては、この情報の制限がかかっていました。
GitHub Spark は GitHub のアカウントがあれば使用できますので、Copilot Free 相当のレートリミットがかかっているのかもしれませんね。
GitHub Models で提供されているモデルの種類
GitHub Models で公開されているモデルは「Chat/completion (Thinking)」と「Embedding」のモデルとなります。
「Text to Image」のようなモデルについては GitHub Models では公開されていないため、このようなモデルを使用する場合は Azure OpenAI 等で DALL-E のようなモデルをセルフホストして呼び出す必要があります。
勉強会内はでプロンプトに、エンドポイントと API キーを含めて呼び出しの指示をすることで画像生成が行われていました。
私もこの方法を試してみたところ勉強会内でデモを実施されていた内容を実装することができました。
GitHub Spark の実装はクライアントサイドのロジックとして実装されるため、プロンプトで生成した場合、トレースを取得すると API 呼び出しの情報が確認できてしまうため、エンドポイントと API キーを把握することができてしまうので、この辺の扱いは悩ましそうですね…。
自身のみが使用するアプリケーションであれば問題はないかと思います。
GitHub Spark アプリケーション作成時の呼び出しの確認
勉強会内で開発者ツールを使用して呼び出しの確認をしていました。
その中で GitHub Spark アプリケーションの呼び出しの確認が興味深かったです。
GitHub Spark のアプリケーションは https://github.com/github/spark-template をテンプレートとして作成されますが、「cloud_environment」の呼び出しを確認することでアプリケーション作成時の呼び出しを確認できそうでした。
GitHub Spark では標準で Codespace を使用することができるようになっており、その時のサイズも指定されていそうですね。