【ListeningMindガイド編集部からのご案内】
無料トライアルのご案内
「ブランドは消費者にどう思われているのか?」
「消費者は何に困り、何を求めているのか?」
ListeningMindは、
消費者の思考を明らかにするツールです。
>>自社ブランドを調べてみる(無料トライアル有り)
【ListeningMindガイド編集部からのご案内】
無料トライアルのご案内
「ブランドは消費者にどう思われているのか?」
「消費者は何に困り、何を求めているのか?」
ListeningMindは、
消費者の思考を明らかにするツールです。
>>自社ブランドを調べてみる(無料トライアル有り)
前回までで、自分のパソコンの中(ローカル環境)で動くAIアプリが完成しました。しかし、今のままでは自分しか使えません。
今回は、このアプリを「Streamlit Community Cloud」という無料のサーバーに乗せて、世界中の誰でもスマホやPCからアクセスできるようにする方法(デプロイ)を解説します。また、その際に絶対にやってはいけない「APIキーの漏洩」を防ぐためのセキュリティ対策についても学びます。
アプリをクラウドで動かすためには、単にPythonのコードだけを渡しても動きません。クラウド上のサーバーに「このアプリを動かすには、どの道具(ライブラリ)が必要か」を教えてあげる必要があります。
そのため、必ず以下の2つのファイルをセットで用意します。
app.py(設計図)
requirements.txt(道具のリスト)
streamlit と google-generativeai の2行だけを書きます。クラウドサーバーは、起動する前にまず requirements.txt を読み込み、必要な道具を自動的にインストールしてから app.py を実行してくれます。
次に、この2つのファイルを「GitHub」というサービスに保存(プッシュ)します。
なぜ直接Streamlit Cloudにファイルをアップロードしないのでしょうか?それには2つの理由があります。
現代のWeb開発では、このように「コードの保管場所(GitHub)」と「アプリを動かす場所(クラウド)」を分けるのが標準的なルールになっています。
GitHubにコードをアップロードする際、絶対にやってはいけないことがあります。それは、app.py の中にAPIキーを直接書き込んだまま公開してしまうことです。
python# ❌ 絶対にやってはいけない書き方
genai.configure(api_key="自分の本物のキー")
もしこれをGitHubの公開リポジトリにアップロードしてしまうと、世界中の人があなたのAPIキーを盗み見て、あなたに高額な請求が来る可能性があります。これを防ぐために、Streamlitの「Secrets(シークレット)」機能を使います。
Pythonのコードは以下のように書き換えておきます。
python# ⭕️ 安全な書き方(Streamlitの隠し金庫から鍵を取り出す指示)
api_key = st.secrets["GEMINI_API_KEY"]
genai.configure(api_key=api_key)
この状態のコードをGitHubにアップロードします。これなら、誰が見てもAPIキーの本体は分かりません。
準備が整ったら、いよいよクラウドへ公開します。手順は非常に簡単です。
あなたの名前/ai-app)を選択します。GEMINI_API_KEY = "自分の本物のキー"デプロイ時に赤いエラー画面が出てしまった場合は、以下の原因を疑ってください。
ModuleNotFoundError: No module named 'google'
requirements.txt の書き間違い、またはファイル名が間違っている(例:requirement.txt と s が抜けている)ため、ライブラリがインストールされていません。SyntaxError: unexpected character
今回は、ローカルのアプリを世界に公開するためのインフラ知識を学びました。
app.py と requirements.txt がセットで必要。st.secrets と書き、本物のキーはStreamlit Cloudの管理画面から安全に登録する。これで、あなたは「AIアプリを作って、安全に公開する」という一連のサイクルをすべて一人で回せるようになりました!
次回は、このアプリをさらに本格的にするための「データ保存・データベース(SQLite / Supabase)」の仕組みについて解説します。

デプロイ手順とGitHub連携を画像付きで確認したい方へ
APIキーの安全な管理(Secrets)について知りたい方へ
本記事の内容は執筆時点の情報をもとに作成しています。
Python、Streamlit、Gemini API、GitHub、Streamlit Cloud、Supabase、Vercel、Cloudflare、Google Cloud などの仕様、料金、UI、提供条件は予告なく変更される場合があります。
記事内のコード、設定例、画面構成は学習用・検証用のサンプルです。
実際の運用環境に導入する場合は、公式ドキュメントを確認したうえで、ご自身の責任で検証・調整してください。
APIキー、認証情報、個人情報、業務データなどの機密情報は、記事中のサンプル通りであっても公開リポジトリや公開画面にそのまま掲載しないでください。
外部サービス利用時の課金、障害、セキュリティ事故、データ消失などについて、当サイトは責任を負いません。
AIアプリ開発入門 第3回|Geminiと繋いで連続処理(チェーン)を作ろう!〜Streamlitの一時記憶の魔法〜
AIアプリ開発入門 第5回|データを記録して本格的なツールにしよう(DB保存の基礎)