3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

オープンソースのフルスタックサーバーレスアプリケーションフレームワーク 'Skeet'

Last updated at Posted at 2023-06-29

こんにちは。POPPIN FUMI です。

育てた機械学習の結果を簡単にウェブ、iOS,Android アプリへデプロイするために、
Skeet Framework という TypeScript のフルスタックフレームワークをご紹介致します。

Skeet フレームワークのチュートリアルでは Chat GPT のAPIを使ったチャットアプリをすぐに作成することができます。

🕺 Skeet とは? 💃

オープンソースのフルスタックサーバーレスアプリケーションフレームワーク 'Skeet'。

Skeet はソフトウェア開発・運用のコストを下げるために生まれました。

サーバーレスアプリをすぐに開発スタート、そしてデプロイ。

スケーラブルな Cloud Firestore、Cloud Functions を今すぐ安全に使い始める準備ができています。

https://storage.googleapis.com/skeet-assets/animation/skeet-cli-create-latest.gif

🧪 依存パッケージ 🧪

  • Skeet において Java を書くことはありませんが、システムを動かすために必要です

📗 使い方 📗

① パッケージのインストール

$ npm i -g @skeet-framework/cli
$ npm install -g firebase-tools

② Skeet アプリの作成

$ skeet create <appName>

③ ローカルで起動

$ cd <appName>
$ skeet s

Skeet App フロントエンドと Firebase エミュレーターが起動します。

📲 Frontend - http://localhost:19006/

💻 Firebase Emulator - http://localhost:4000/

** ⚠️ Skeet App を完全に使用するには、アクティベート Skeet ChatApp ステップを完了する必要があります ⚠️ **

🤖 アクティベート Skeet ChatApp 🤖

① Googel Cloud Project の作成

Create Google Cloud Project

② Firebase Project の追加

Add Firebase Project

③ Firebase ビルドの有効化

以下の3つの Firebase ビルドを有効化してください。

- Firebase 認証

  • Firebase Authentication の有効化
    画像

  • Google ログインの有効化
    画像

- Firebase Firestore

  • Firestore の有効化
    画像

  • 環境を選択
    画像

  • リージョンを選択
    画像

- Firebase Storage

  • Firebase Storage の有効化
    画像

  • 環境を選択
    画像

  • リージョンを選択
    画像

④ Skeet init コマンドの実行

skeet init コマンドに --only-dev オプションを付けて実行し、
プロジェクト ID と リージョンを選択してください。
そして、表示された URL にアクセスし、Firebase アカウントへログインします。

$ skeet init --only-dev
? What's your GCP Project ID skeet-demo
? Select Regions to deploy
  europe-west1
  europe-west2
  europe-west3
❯ europe-west6
  northamerica-northeast1
  southamerica-east1
  us-central1

Visit this URL on this device to log in:

https://accounts.google.com/o/oauth2/auth?project...

Waiting for authentication...

⑤ 環境変数の設定方法

- Firebase Blaze プランへのアップグレード

Skeet Framework では環境変数を Cloud Secret Manager 使って API キーなどの機密情報を管理します。

このコマンドを利用するには、Firebase Blaze 以上のプランが必要です。

画像

Firebase コンソールの左下のメニューから、アップグレード を選択します。

- Skeet Framework のクラウド使用料について

Skeet Framework は Firebase Blaze プラン以上のプランが必要ですが、
通常、開発環境への使用料は以下の無料枠内で収まります。

Google Cloud の無料枠には 2 つの部分があります

  • 90 日間の無料トライアル。Google Cloud サービスで使用できる 300 ドルのクレジットが付いています。
  • Always Free は、多くの一般的な Google Cloud リソースへの制限付きアクセスを無料で提供します。

Google Cloud の無料プログラム

Firabse Blaze プランの料金

⚠️ また、想定外の請求を回避するために、予算のアラートなどを設定することをおすすめします。 ⚠️

- シークレットキーの設定

skeet add secret コマンドを使って

OpenAI の API キーを環境変数に設定します。

$ skeet add secret CHAT_GPT_ORG
? Enter value for CHAT_GPT_ORG: <yourOpenAIKey>

同様に CHAT_GPT_KEY も設定します。

$ skeet add secret CHAT_GPT_KEY
? Enter value for CHAT_GPT_KEY: <yourOpenAIKey>

また、簡易的に試すには、functions/openai/.env に記述することもできますが、
この方法は、本番環境には反映されません。

- OpenAI の API Key を作成・取得

画像

📕 OpenAI API Document

これで Skeet App を使う準備ができました 🎉

📱 ユーザー登録・ログイン認証 📱

$ skeet s

ローカルで skeetApp を起動している状態で、

http://localhost:19006/register

にアクセスしてください。

メールアドレスとパスワードを入力してユーザー登録を行います。

画像

作成が成功すると、コンソールログに以下のようなメッセージが表示されます。

画像

リンクをクリックし、メールアドレスの認証を行ってください。

To verify the email address epics.dev@gmail.com, follow this link: <Link>

成功すると、リンク先のページに以下のようなメッセージが表示されます。

画像

✉️ OpenAI チャットルームの作成 ✉️

ログイン後、http://localhost:19006/user/open-ai-chat にアクセスしてください。

そして、チャットルームを作成します。

以下の設定を選択して、チャットルームを作成してください。

チャットルームの設定

項目名 説明
Model OpenAI API のモデルを選択します。 gpt3.5-turbo / gpt4
Max Tokens OpenAI API の Max Tokens を設定します。 number
Temperature OpenAI API の Temperature を設定します。 number
System Charactor OpenAI API の System Charactor を設定します。 string

画像

これで、チャットルームが使えるようになりました 🎉

画像

このチュートリアルのYouTube動画のリンクはこちら👇
https://youtu.be/6em68qcSsJE

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?