Skip to main content

GitHub Spark について

GitHub Spark を使った自然言語によるインテリジェント アプリの構築とデプロイについて説明します。

概要

With GitHub Spark, you can describe what you want in natural language and get a fullstack web app with data storage, AI features, and GitHub authentication built in. You can iterate using prompts, visual tools, or code, and then deploy with a click to a fully managed runtime.

Spark is seamlessly integrated with GitHub so you can develop your spark via a synced GitHub codespace with Copilot for advanced editing. You can also create a repository for team collaboration, and leverage GitHub's ecosystem of tools and integrations.

Spark を使う利点

Spark を使うと、アプリ開発のあらゆるステージでさまざまな利点があります。

自然言語またはコードでアプリを構築する

Spark を使ってアプリを構築する場合、コードの書き方に関する知識は必要ありません。 アプリに必要なことを自然言語で説明するだけで、必要なすべてのコードが Spark によって生成され、アプリのライブで対話型のプレビューも表示されます。

コードを確認し、編集したい場合は、Spark でコード パネルを開くか、さらに進んで GitHub codespace (クラウドベースの開発環境) でアプリを開くことができます。

GitHub Codespaces とは」を参照してください。

AI 機能を利用する

Spark は GitHub Models とネイティブに統合されているため、Spark にプロンプトを送信するだけで、AI 機能 (テキストの要約や画像タグの提案など) をアプリに追加できます。 Spark によって必要な推論コンポーネントが自動的に追加されます。また、ユーザーはそれらの機能を制御するシステム プロンプトを編集できます。

マネージド データ ストア

アプリでデータを格納する必要性が Spark によって検出されると、マネージド キーと値のストアを自動的に設定されるため、データベースの設定と管理について心配する必要はありません。 データ ストアは Azure (Cosmos DB) 上で動作し、小規模なレコード (1 エントリあたり最大 512 KB) を対象としています。

組み込みのセキュリティ保護

Spark には認証が組み込まれており、ユーザーがアプリにアクセスする際には GitHub アカウントを使ったサインインが求められます。 可視性とデータ アクセス オプションを設定することで、アプリにアクセスできるユーザーを制御できます。

ワンクリック デプロイ

Spark に付属する完全に統合されたランタイム環境を使うと、ワンクリックでアプリをデプロイできます。 必要なインフラストラクチャはすべて自動的にプロビジョニングされるため、サーバーの設定やデプロイの管理について心配する必要はありません。

すべての Spark は、Azure Container Apps (ACA) によってホストおよびデプロイされます。

GitHub と完全に統合されています

Spark は GitHub と完全に統合されているため、使い慣れたツールとワークフローを使ってアプリを構築および管理できます。

GitHub Codespaces

での作業

  • GitHub codespace (クラウドベースの開発環境) を Spark から直接開くことができるため、Copilot と普段お使いの開発ツールすべてにアクセスし、アプリの構築をそこで進めることができます。

  • codespace と Spark の間では自動同期が行われるため、2 つの環境間をシームレスに切り替えることができます。

双方向同期機能を備えたリポジトリを作成する

  • 1 回のクリックで Spark のリポジトリを作成できるため、アプリのコードを管理し、標準の GitHub ワークフローを使って他のユーザーと共同作業することができます。

  • Spark とリポジトリの間には双方向の同期があるため、Spark またはリポジトリのメイン ブランチのいずれかで行われた変更は、両方の場所に自動的に反映されます。 リポジトリの作成前に Spark に対して行った変更はすべてリポジトリに追加されるため、作成後に Spark に対して行われたすべての変更とコミットの完全な記録が得られます。

コラボレーターを招待する

  • Spark を構築する作業に他のユーザーの協力を依頼する場合は、コラボレーターとしてリポジトリに追加できます。

標準の GitHub 機能を利用する

  • Spark 用のリポジトリを作成すると、pull request、issue、プロジェクト ボードなどのすべての標準の GitHub 機能を使って Spark 開発プロセスを管理できます。また、CI/CD ワークフローに GitHub Actions を利用することもできます。

Copilot を使って Spark を開発する

GitHub Spark の機能と GitHub Copilot の機能を組み合わせて、アプリ開発をサポートできます。

Copilot エージェント モード

GitHub codespace で Spark を開くと、Copilot のすべての機能 (Copilot Chat と Copilot エージェント モードを含む) にアクセスできるようになります。

具体的なタスクを想定していて、Copilot でコードを自律的に編集できるようにする場合は、エージェント モードが便利です。 エージェント モードでは、Copilot がどのファイルに変更を加えるかを決定し、タスクを完了するためのコード変更とターミナル コマンドを提供し、元のタスクが完了するまで issue の修復を繰り返します。 アプリの開発を次のレベルに引き上げ、さらに Copilot を利用してコード内の issue をデバッグおよびトラブルシューティングすることができます。

Copilot エージェント モードに関する記事を参照してください。

Copilot コーディング エージェント

Spark が GitHub リポジトリに接続されると、Copilot コーディング エージェント を使って、アプリの構築と保守を継続しながら、他の作業に集中できるようになります。

コーディング エージェントを使うと、(issue を Copilot に割り当てるか、Copilot に pull request の作成を依頼することで) 特定のタスクを Copilot に委任できます。そうすると、Copilot はバックグラウンドで自律的に機能し、タスクが完了します。 Copilot コーディング エージェント を使うと、バグの修正、コードのリファクター、テスト カバレッジの向上などを行うことができます。

GitHub Copilot コーディング エージェントについて」を参照してください。

Spark の共有

Spark を公開する準備ができたら、次の表示オプションから選択できます。

  • 自分にのみ表示する
  • GitHub 上の特定の organization メンバーに表示する
  • すべての GitHub ユーザーに表示する。

次に、他のユーザーと Spark を共有して、アプリの閲覧や操作を許可することができます。 Spark へのリンクは、そのリンクを知っているユーザー以外は発見できません。

必要に応じて、Spark を "読み取り専用" として公開できます。つまり、他のユーザーがアプリのコンテンツを編集または削除できないようにして、アプリを他のユーザーに紹介することができます。

Spark の制限事項

Spark は、信頼性のために、厳格なスタック (React、TypeScript) を使います。 最善の結果を得るには、Spark の SDK とコア フレームワーク内で作業する必要があります。

外部ライブラリを追加することはできますが、Spark の SDK との互換性は保証されません。 外部ライブラリを追加した後は、必ず Spark を徹底的にテストしてください。

既定では、Spark のデータ ストアは、公開された Spark のすべてのユーザーと共有されます。 他のユーザーに公開する前に、アプリから個人情報や機密データを必ず削除してください。 必要に応じて、Spark を "読み取り専用" として公開できます。つまり、他のユーザーがアプリのコンテンツを編集または削除できないようにして、アプリを他のユーザーに紹介することができます。

参考資料