はじめに
最近、仕事でお客さんとの打ち合わせが増えてきました。
みなさんは「議事録」ってどうしていますか?
昨今、AIを活用した議事録作成サービスは数多くあり、とても便利な時代になりました。
しかし、お客さんとのミーティングとなると、機密情報を扱うことが多いため、気軽にそれら議事録作成サービスに音声や内容を預けるのは、セキュリティ・プライバシー面でどうしても敷居が高くなってしまいます。
「であれば、自分で、安全な環境で議事録・要約アプリを作ってしまおう!」と考えたのが、アプリを作ろうと思ったキッカケです。
AWS Bedrockなどの自前環境で動かせる仕組みを使い、データの送信先を自分で管理できるアプリにすれば、機密情報を渡さずに自動議事録が実現できるはず。。。
そこで、昨今流行りの「Vibe Coding」で、実際にアプリを作成してみました。
作成したアプリは以下です。

アプリの仕様
仕様まとめ
- プラットフォーム:デスクトップアプリ(Tauri 2)
- 認証不要:個人利用前提なので認証処理は省略
- フロントエンド:React(Bolt.new を使用)
- バックエンド:Rust(Tauri)
- AWS:Terraform で自前で構築可能
- Lambda関数:すべて Go 言語で実装
なぜ Web ではなくデスクトップアプリか?
Webアプリにすると、セキュリティ・プライバシー面で認証やらなんやら実装しないといけないのと、認証ページがあることで、一気に気軽に使用できる感が無くなるので、デスクトップアプリとして開発しました。
フロントエンドについて
フロントエンドは、Ractです。ここは0->1
実装を得意とする、Bolt.newに書いてもらい、そのまま Tauri に貼り付けました。
Bolt.new は小さなWebページであれば無料枠でも十分なので、フロントエンドを0->1
で実装するならBolt.new を個人的にオススメします。
バックエンドについて
Tauriのバックエンドは、Rustで書きます。
なお、Rust は今回初めて使いました。あまりにも難しい言語で、いくらVibe Codingでも、実装の結果の良し悪しがわからず、、、最低限の言語仕様だけを学んでAIを駆使してなんとか書き上げました。
正直ここはメチャクチャ苦労しました💦
AWS 構成について
以下のような構成になっています。
- 動画のアップロード、ダウンロードは、署名付きURLを払い出して、そのURL経由でアップロード、ダウンロードを行う
- 動画のアップロードを行うと、それを検知して、AWS Transcribeが自動で動作し、動画の文字起こしを自動で行う
- 議事録の作成は、WebSocketを用いて、AWS Bedrockからの回答をStream Responseで返す
- 動画や文字起こし、AWS Bedrockからの回答はすべて各々S3へ格納
なお、LambdaはすべてGo言語で書きました。
ローカル環境からTerraformを扱うことが前提となっているため、 mac と windows でビルド環境の差異を減らしたかったことからGo言語によるビルドで amd64 でデプロイするようにしました。
飽き性な私でもアプリが作れた
私は飽き性なので、ここまでのアプリを作ったのはホント久しぶりでした。
そんな私でもCursorのAIとVibe Codingで、なんとかアプリを作ることができました。
以下、Vibe Codingでアプリを作ってみたときのメリット・デメリットを整理してみました。
メリット
- アプリを作成するスピードが早く、アプリを作るモチベーションを保つことができる
- 面倒な作業はすべてAIがやってくれる
- 実装方法がわからなくても、一旦AIに書かせてみることで、どのように実装すると良さそうなのかわかってくる
デメリット
- 自分の知らないことをAIに書かせても、それを自分で「合ってる」「間違ってる」を判断できないので、「ちゃんと動くアプリ」を作ることは難しい(自分も「わからない」AIも「わからない」だとうまくいかない)
- 一度に多くのコードをAIに書かせても、うまくいかないことが多い
- 自分の考えた仕様をAIに書かせるだけなので、そもそも自分の考えた仕様が間違っていると、うまくいかない
さいごに
Vibe Codingは、アプリを作るモチベーションを保つことができ、実装方法がわからなくてもAIの書いたコードを見て、学びを得ることができます。
一方で、自分で「合ってる」「間違ってる」を判断できないような、自分が理解していない言語やフレームワークなどをAIに書かせても、うまくいかないことが多いと感じました。
私の場合、Tauriを使うのも初めてで、Rustを使うのも初めてでした。
そのため、「あっちのエラーを修正したら、こっちでエラーが起きた」が頻繁に発生して、最低限自分で「合ってる」「間違ってる」を判断できるようにRustの書籍を読んだりしました💦
Vibe Codingができることで、モノづくりの敷居はとても低くなった気がするので、何かアイディアをお持ちの方は是非Vibe Codingでアプリを作ってみてください!!
ではでは👋