# GitHub Spark を使用した AI を利用したアプリの構築とデプロイ

GitHub Sparkを使用して自然言語でインテリジェントな Web アプリを構築してデプロイする方法について説明します。

> \[!NOTE]
>
> * GitHub Spark は [データ保護](https://gh.io/dpa)を使用したパブリック プレビュー にあり、変更される可能性があります。
> * パブリック コードに一致する提案をブロックする GitHub Copilot 設定は、 Sparkを使用するときに意図したとおりに動作しない場合があります。 「[個々のサブスクライバーとしてのGitHub Copilot ポリシーの管理](/ja/copilot/how-tos/manage-your-account/managing-copilot-policies-as-an-individual-subscriber#enabling-or-disabling-suggestions-matching-public-code)」を参照してください。

## はじめに

GitHub Spark を使うと、望むことを自然言語で記述し、データ ストレージ、AI 機能、GitHub 認証が組み込まれたフルスタックの Web アプリを取得できます。 プロンプト、ビジュアル ツール、またはコードを使って反復処理した後、クリックしてフル マネージド ランタイムにデプロイできます。

Spark は GitHub とシームレスに統合されているため、同期された GitHub codespace と高度な編集用の Copilot を使って、Spark を開発できます。 チーム コラボレーション用のリポジトリを作成したり、GitHub のツールと統合のエコシステムを活用したりすることもできます。

このチュートリアルでは、 Spark を使用してアプリを構築およびデプロイし、その機能を探索する完全なライフサイクルについて説明します。

### 前提条件

* GitHubまたはCopilot Pro+ ライセンスを持つCopilot Enterprise アカウント。

## ステップ 1: Web アプリを作成する

このチュートリアルでは、次のような簡単なマーケティング ツール アプリを作成します。

* ユーザーは、販売する製品の説明を入力します。
* アプリはマーケティング コピーを生成し、視覚的な戦略と対象ユーザーを推奨します。

1. ```
          https://github.com/spark に移動します。
   ```

2. 入力フィールドに、アプリの説明を入力します。 次に例を示します。

   ```copilot copy
   Build an app called "AI-Powered Marketing Assistant."

   The app should allow users to input a brief description of a product or service. When the user submits their brief, send this information to a generative AI model with a prompt that asks the AI to return the following:
      - Persuasive and engaging marketing copy for the product or service.
      - A visual strategy for how to present the product/service (e.g., suggested imagery, colors, design motifs, or mood).
      - A recommendation for the ideal target audience.
   The app should display these three elements clearly and in an organized manner.  The app should look modern, fresh and engaging.
   ```

   > \[!TIP]
   >
   > * 最善の結果を得るには、具体的に、できるだけ多くの詳細を指定します。
   >   [
   >   コパイロットチャット
   >   ](https://github.com/copilot?ref_product=copilot\&ref_type=engagement\&ref_style=text)に対して、最初のプロンプトの改善を調整または提案するように依頼できます。
   > * または、マークダウン ドキュメントを入力フィールドにドロップして、ビルドする内容に関するより多くのコンテキストを Spark に提供します。

3. 必要に応じて、画像をアップロードして、アプリの視覚的な参照を Spark に提供します。 モック、スケッチ、またはスクリーンショットはすべて、何を構築するかのアイデアを Spark に提供するために機能します。

4. \[ **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-paper-airplane" aria-label="Submit prompt" role="img"><path d="M.989 8 .064 2.68a1.342 1.342 0 0 1 1.85-1.462l13.402 5.744a1.13 1.13 0 0 1 0 2.076L1.913 14.782a1.343 1.343 0 0 1-1.85-1.463L.99 8Zm.603-5.288L2.38 7.25h4.87a.75.75 0 0 1 0 1.5H2.38l-.788 4.538L13.929 8Z"></path></svg>** ] をクリックしてアプリをビルドします。

   > \[!NOTE]

   ```
          Spark は常に Typescript と React アプリを生成します。
   ```

## ステップ 2: アプリを修正して拡張する

```
          Sparkアプリの生成が完了したら、ライブ プレビュー ウィンドウでテストできます。 ここから、自然言語、ビジュアル編集コントロール、またはコードを使用して、アプリを反復処理および拡張できます。
```

1\.
**自然言語**を使ってアプリを変更するには、左側のサイドバーの \[Iterate] タブのメイン入力フィールドに指示を入力して、送信します。

1. 必要に応じて、\[Iterate] タブの入力フィールドのすぐ上にある \[Suggestions] のいずれかをクリックして、アプリを開発します。
2. ```
          Spark は、検出されたエラーを自動的に警告します。 エラーを修正するには、[Iterate] タブの入力フィールドの上にある **[Fix All]** をクリックします。
   ```
3. 必要に応じて、**コード<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>** をクリックして、基になるコードを表示および編集します。 コード編集パネルには、インライン検索候補 Copilot 組み込まれています。
4. アプリの特定の要素に絞って変更を行うには、右上隅にある**ターゲット アイコン**をクリックし、ライブ プレビュー ウィンドウで要素をポイントして選びます。

## ステップ 3: アプリのスタイルをカスタマイズする

次に、 Sparkの組み込みツールを使用して、アプリのスタイルを変更してみましょう。 または、コードを直接編集することもできます。

1. アプリの全体的な外観を変更します。
   \*
   **\[Theme]** タブをクリックして、書体、色、境界線の半径、間隔、その他のビジュアル要素を調整します。
   * アプリの全体的なスタイルを簡単に更新するには、事前に生成されているテーマから選びます。

2. 特定のコンポーネントを対象にビジュアルを編集するには、**ターゲット アイコン**をクリックし、プレビュー ペインでアプリの要素を選びます。 その特定の要素に関連するスタイル コントロールが左側のサイドバーに表示されます。

3. 必要に応じて、コードでスタイルを編集します。
   \*
   \*\* <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="Code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>
   \*\*をクリックしてコード エディターを開きます。
   * CSS、Tailwind CSS、またはカスタム変数を変更して、パディング、間隔、フォント、色などの細かい制御を可能にします。

     > \[!TIP]
     > カスタム フォント (Google フォントなど) をインポートしたり、Spark コード エディターで高度なスタイルを直接追加したりできます。
     > スタイル構文に慣れていない場合は、 [コパイロットチャット](https://github.com/copilot?ref_product=copilot\&ref_type=engagement\&ref_style=text) に詳細なガイダンスを確認してください。

4. ```
          **Assets** タブをクリックして、アプリに表示するアセットをアップロードします。
   ```
   * 画像、ロゴ、ビデオ、ドキュメント、またはその他のアセットを追加して、アプリをカスタマイズします。
   * アップロードしたら、 Spark これらの資産をアプリに組み込む方法を \[反復処理] タブで指示します。

## ステップ 4: データを格納して管理する

```
          Sparkアプリにデータを格納する必要が検出されると、キーと値のストアを使用して自動的にデータ ストレージが設定されます。
```

マーケティングアプリにストレージを追加し、ユーザーが好きなマーケティングコピーを保存し、後で簡単に再アクセスできるようにしましょう。

1. \[反復処理] タブで次の手順を使用して、 Sparkをガイドします。

   ```copilot copy
   Add a "Favorites" page where users can save and view their favorite marketing copy results.
   ```

2. 生成が済んだら、アプリと対話してお気に入りの保存と取得をテストします。

3. \[Data] タブを調べて、格納されている値を表示および編集します。

4. ```
          **
          **で明示的にデータを保存Spark場合は、Sparkに "ローカルにデータを保存する" または "データを保持しない" ことを依頼してください。
   ```

## ステップ 5: AI の機能を修正する

次に、 GitHub Modelsを利用して、アプリに含まれる AI 機能を反復処理してみましょう。

```
          Spark は、アプリの機能に AI が必要なタイミングを自動的に検出します。 ユーザーに代わって、各 AI 機能に対するプロンプトの自動生成、最適なモデルとの統合、API の統合と LLM の推論の管理を行います。
```

1\.
**\[Prompts]** タブをクリックします。

1. 生成されたプロンプト Spark 確認して、アプリで使用される各 AI 機能を活用します。
   * マーケティング アプリの場合、 Spark が生成した 3 つの個別のプロンプト (マーケティング コピーの生成、ビジュアル戦略の推奨事項、ターゲットユーザーの推奨事項) があります。
2. 各プロンプトをクリックすると、コードに移動しないで表示および編集できます。 ユース ケースに合わせて調整を行います。
3. アプリをテストし、更新された結果を確認します。

## 手順 6: コードを使用して編集とデバッグを行う Copilot

```
          Sparkで直接、または同期されたGitHubコード空間を使用して、アプリのコードを表示または編集できます。
```

> \[!NOTE]
> \*
> Spark では、信頼性のためにオピニオンスタック (**React**、 **TypeScript**) を使用します。
>
> * 最良の結果を得るには、**Sparkの SDK とコア フレームワーク内で作業**する必要があります。
> *

```
          **外部ライブラリを追加する**ことはできますが、互換性は保証されないので、十分にテストする必要があります。
```

> * React コードを直接編集すると、有効な構文と\*\*\*\* のフレームワークに従っている限り、Sparkできます。

1. ```
          Sparkでコードを編集するには:
   ```
   \*
   **コード<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-code" aria-label="Code" role="img"><path d="m11.28 3.22 4.25 4.25a.75.75 0 0 1 0 1.06l-4.25 4.25a.749.749 0 0 1-1.275-.326.749.749 0 0 1 .215-.734L13.94 8l-3.72-3.72a.749.749 0 0 1 .326-1.275.749.749 0 0 1 .734.215Zm-6.56 0a.751.751 0 0 1 1.042.018.751.751 0 0 1 .018 1.042L2.06 8l3.72 3.72a.749.749 0 0 1-.326 1.275.749.749 0 0 1-.734-.215L.47 8.53a.75.75 0 0 1 0-1.06Z"></path></svg>** をクリックする。
   * ファイルツリーを移動し、エディターでCopilotのインライン提案にアクセスして編集を行います。 変更は、ライブ プレビュー ウィンドウにすぐに反映されます。
2. さらに高度な編集を行うには:
   * 右上隅の \[**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="More actions" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>**] をクリックし、\[<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-codespaces" aria-label="Open codespace" role="img"><path d="M0 11.25c0-.966.784-1.75 1.75-1.75h12.5c.966 0 1.75.784 1.75 1.75v3A1.75 1.75 0 0 1 14.25 16H1.75A1.75 1.75 0 0 1 0 14.25Zm2-9.5C2 .784 2.784 0 3.75 0h8.5C13.216 0 14 .784 14 1.75v5a1.75 1.75 0 0 1-1.75 1.75h-8.5A1.75 1.75 0 0 1 2 6.75Zm1.75-.25a.25.25 0 0 0-.25.25v5c0 .138.112.25.25.25h8.5a.25.25 0 0 0 .25-.25v-5a.25.25 0 0 0-.25-.25Zm-2 9.5a.25.25 0 0 0-.25.25v3c0 .138.112.25.25.25h12.5a.25.25 0 0 0 .25-.25v-3a.25.25 0 0 0-.25-.25Z"></path><path d="M7 12.75a.75.75 0 0 1 .75-.75h4.5a.75.75 0 0 1 0 1.5h-4.5a.75.75 0 0 1-.75-.75Zm-4 0a.75.75 0 0 1 .75-.75h.5a.75.75 0 0 1 0 1.5h-.5a.75.75 0 0 1-.75-.75Z"></path></svg>] (フル機能のクラウド IDE) \*\*\*\* クリックして、新しいブラウザー タブでコード空間を起動します。
   * コードスペース内に入ったら、 **<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-copilot" aria-label="copilot" role="img"><path d="M7.998 15.035c-4.562 0-7.873-2.914-7.998-3.749V9.338c.085-.628.677-1.686 1.588-2.065.013-.07.024-.143.036-.218.029-.183.06-.384.126-.612-.201-.508-.254-1.084-.254-1.656 0-.87.128-1.769.693-2.484.579-.733 1.494-1.124 2.724-1.261 1.206-.134 2.262.034 2.944.765.05.053.096.108.139.165.044-.057.094-.112.143-.165.682-.731 1.738-.899 2.944-.765 1.23.137 2.145.528 2.724 1.261.566.715.693 1.614.693 2.484 0 .572-.053 1.148-.254 1.656.066.228.098.429.126.612.012.076.024.148.037.218.924.385 1.522 1.471 1.591 2.095v1.872c0 .766-3.351 3.795-8.002 3.795Zm0-1.485c2.28 0 4.584-1.11 5.002-1.433V7.862l-.023-.116c-.49.21-1.075.291-1.727.291-1.146 0-2.059-.327-2.71-.991A3.222 3.222 0 0 1 8 6.303a3.24 3.24 0 0 1-.544.743c-.65.664-1.563.991-2.71.991-.652 0-1.236-.081-1.727-.291l-.023.116v4.255c.419.323 2.722 1.433 5.002 1.433ZM6.762 2.83c-.193-.206-.637-.413-1.682-.297-1.019.113-1.479.404-1.713.7-.247.312-.369.789-.369 1.554 0 .793.129 1.171.308 1.371.162.181.519.379 1.442.379.853 0 1.339-.235 1.638-.54.315-.322.527-.827.617-1.553.117-.935-.037-1.395-.241-1.614Zm4.155-.297c-1.044-.116-1.488.091-1.681.297-.204.219-.359.679-.242 1.614.091.726.303 1.231.618 1.553.299.305.784.54 1.638.54.922 0 1.28-.198 1.442-.379.179-.2.308-.578.308-1.371 0-.765-.123-1.242-.37-1.554-.233-.296-.693-.587-1.713-.7Z"></path><path d="M6.25 9.037a.75.75 0 0 1 .75.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 .75-.75Zm4.25.75v1.501a.75.75 0 0 1-1.5 0V9.787a.75.75 0 0 1 1.5 0Z"></path></svg>** をクリックして Copilot を開き、より高度な変更を加えます。
     * プロンプト ボックスで **エージェント モードを** 選択して、 Copilot がコードを自律的にビルド、確認、トラブルシューティングできるようにします。
     * ```
         **
         **のCopilotモードを選択してアプリのコードを確認し、改善と修正を提案します。
       ```
     * ```
         **
         **の [Copilotモード] を選択して、コードやSparkに表示されるエラーを理解しやすくします。
       ```
   * コードスペースで行った変更は、自動的に Sparkに同期されます。

## ステップ 7: アプリをデプロイして共有する

```
          Spark には、ワンクリックでアプリをデプロイできる完全に統合されたランタイム環境が付属しています。
```

> \[!NOTE]
>
> * Spark をデプロイするときに、それを他のユーザーに表示することを選択した場合は、アプリ内のデータが**アプリをaccessできるすべてのユーザー**間で共有されることに注意してください。 可視性の設定を更新する前に、機密データが Spark に含まれていないことを確認してください。
> * また、Spark を **\[read-only]** として共有することで、他のユーザーにアプリのコンテンツを閲覧することは許可しても、コンテンツの編集、ファイルやレコードの削除、新しいアイテムの作成は許可しないことができます。

1. 右上隅の **\[Publish]** をクリックします。

2. Spark は既定ではプライベートであり、自分だけがアクセスできます。 \[可視性] で、Spark をプライベートのままにするか、 GitHub上の特定の組織のメンバーまたはすべての GitHub ユーザーが Spark を使用できるようにするかを選択します。

   ![GitHub Spark 公開メニューのスクリーンショット。 "GitHub の全ユーザーに対する可視性オプションは、オレンジで強調されています。"](/assets/images/help/copilot/spark-github-user-visibility.png)

3. \[データアクセス] で、他のユーザーにアプリへの読み取り専用アクセスまたは書き込みアクセスを付与するかどうかを選択します。

   他のユーザーにアプリの閲覧を許可しても、コンテンツの作成、編集、削除は許可しない場合は、**\[read-only]** を選びます。

   たとえば、家族のカレンダー アプリを作成し、ユーザーにアプリの閲覧は許可しても、イベントの作成、編集、削除は許可しない場合は、**\[read-only]** を選び、ユーザーが Spark のデータ ストアを変更できないようにします。

4. ```
          **[Visit site]** をクリックして、稼働中のデプロイ済みアプリに移動します。 サイトの URL をコピーして他のユーザーと共有します。
   ```

   アプリを発行すると、 Spark には、統合ランタイムの一部としてアプリケーションが使用するためのクラウドベースのストレージと LLM 推論が自動的に含まれます。

   Spark の URL は、Spark の名前に基づいて生成されます。 アプリの名前を編集できます。 Spark は、古い URL から最新の URL への再ルーティングを自動的に管理します。

## ステップ 8: リポジトリを使用してコラボレーターを招待する

機能的でデプロイされたアプリが作成されたので、GitHub リポジトリを作成して Spark にリンクすることで、他のGitHub プロジェクトと同じ方法でアプリのビルドと共同作業を続けることができます。

1. 右上隅にある \[**<svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-kebab-horizontal" aria-label="More actions" role="img"><path d="M8 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3ZM1.5 9a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Zm13 0a1.5 1.5 0 1 0 0-3 1.5 1.5 0 0 0 0 3Z"></path></svg>**] をクリックし、\[**リポジトリの作成] <svg version="1.1" width="16" height="16" viewBox="0 0 16 16" class="octicon octicon-repo-push" aria-label="repo-push" role="img"><path d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v3.5a.75.75 0 0 1-1.5 0V1.5h-8a1 1 0 0 0-1 1v6.708A2.493 2.493 0 0 1 4.5 9h2.25a.75.75 0 0 1 0 1.5H4.5a1 1 0 0 0 0 2h4.75a.75.75 0 0 1 0 1.5H4.5A2.5 2.5 0 0 1 2 11.5Zm12.23 7.79h-.001l-1.224-1.224v6.184a.75.75 0 0 1-1.5 0V9.066L10.28 10.29a.75.75 0 0 1-1.06-1.061l2.505-2.504a.75.75 0 0 1 1.06 0L15.29 9.23a.751.751 0 0 1-.018 1.042.751.751 0 0 1-1.042.018Z"></path></svg>** クリックします。
2. ダイアログ ボックスが開いたら、**\[Create]** をクリックします。

   ```
          GitHubのあなたの個人アカウントに、スパークの名前に基づいて命名された新しいプライベートリポジトリが作成されます。
   ```

リポジトリの作成前に Spark に対して行った変更はすべてリポジトリに追加されるため、作成後に Spark に対して行われたすべての変更とコミットの完全な記録が得られます。

Spark とリポジトリの間には双方向の同期があるため、 Spark またはリポジトリのメイン ブランチで行われた変更は、両方の場所に自動的に反映されます。

リポジトリに問題を作成し、それらを Copilot クラウドエージェント に割り当てて、修正と改善のための pull request を下書きできるようにすることもできます。

## 次のステップ

```
          Sparkを使用して構築できるその他のアイデアを調べる:
```

* **新しいアイデアをすばやくプロトタイプ**化する: 機能やアプリの特定のアイデアがある場合は、モックアップ、スケッチ、スクリーンショットをアップロードするか、マークダウンドキュメントを Spark に貼り付けて、 Spark にアイデアを構築するように依頼します。
* **自分とチームの内部ツールを構築**する: ドキュメントまたはスプレッドシートに現在配置されている一般的なワークフローまたはプロセスがある場合は、ワークフローまたはプロセスを説明して Spark し、 Spark 対話型 Web アプリに変換できます。

## 参考資料

* [GitHub Spark の責任ある使用](/ja/copilot/responsible-use-of-github-copilot-features/responsible-use-of-github-spark)
* [GitHub Sparkの請求](/ja/copilot/concepts/copilot-billing/about-billing-for-github-spark)
* [GitHub プレリリース ライセンス条項](/ja/site-policy/github-terms/github-pre-release-license-terms)