【初心者向け】ChatGPTが作ったWebアプリ(StreamlitとGemini APIとSQLite)を1日で爆誕させてみた
「AIチャットボットって面白そうだけど、作るの難しそう…?」
そんなあなたに朗報です!実は、ChatGPTの力を借りれば、初心者でも夢のAIWebアプリが作れるんです!
今回、私はStreamlit、Gemini API、SQLiteを使って、生成AIと対話できるようなAIWebアプリを開発してみました。なんと、プログラムはほぼChatGPT先生が書いてくれたんです!
「え、本当に?」
はい、本当です!この記事では、私がAIWebアプリを作る過程を、初心者向けにわかりやすくご紹介します。
AIWebアプリに興味があるけど、何から始めればいいかわからない…
プログラミング初心者だけど、何か面白いものを作ってみたい!
ChatGPTって、コードも書けるの?
そんな疑問を持つあなたにこそ、ぜひ読んでほしい!この記事を読めば、「自分にもできるかも!」と思えるはず。さあ、AIとの新しい冒険を始めましょう!🚀
ChatGPTでコードを書いてもらう
chatgptに聞いてみました。
[Pythonとデータベースとstreamlitと無料のgemini apiでなんかWebアプリ作りたいんだけど、雛形作って]
すると、こんな感じに回答が返ってきました。
了解にゃん!Streamlitを使って、Pythonとデータベース(SQLite)を組み合わせたWebアプリの雛形を作るかえ?
Gemini APIを活用するなら、例えば「テキスト入力 → Gemini APIで応答生成 → データベースに保存&表示」みたいなシンプルなアプリが良さそうかえ?
とりあえず、基本構造のコードを準備するにゃん!
import streamlit as st
import sqlite3
import google.generativeai as genai
# 設定(Gemini APIキー)
API_KEY = "your_gemini_api_key_here"
genai.configure(api_key=API_KEY)
# データベースのセットアップ
def init_db():
conn = sqlite3.connect("chat_history.db")
c = conn.cursor()
c.execute("""
CREATE TABLE IF NOT EXISTS chats (
id INTEGER PRIMARY KEY AUTOINCREMENT,
user_input TEXT,
ai_response TEXT
)
"""
)
conn.commit()
conn.close()
# Gemini API で応答を生成
def get_gemini_response(prompt):
try:
model = genai.GenerativeModel("gemini-pro")
response = model.generate_content(prompt)
return response.text if response else "エラーが発生しました"
except Exception as e:
return f"APIエラー: {e}"
# データベースへ保存
def save_chat(user_input, ai_response):
conn = sqlite3.connect("chat_history.db")
c = conn.cursor()
c.execute("INSERT INTO chats (user_input, ai_response) VALUES (?, ?)", (user_input, ai_response))
conn.commit()
conn.close()
# 過去の会話を取得
def load_chats():
conn = sqlite3.connect("chat_history.db")
c = conn.cursor()
c.execute("SELECT user_input, ai_response FROM chats ORDER BY id DESC")
data = c.fetchall()
conn.close()
return data
# Streamlit UI
st.title("Gemini API Chat App")
st.write("Gemini API を使用した簡単なチャットアプリ")
init_db()
user_input = st.text_input("質問を入力してください")
if st.button("送信"):
if user_input:
ai_response = get_gemini_response(user_input)
save_chat(user_input, ai_response)
st.write("**AIの応答:**", ai_response)
# チャット履歴の表示
st.subheader("チャット履歴")
for chat in load_chats():
st.write(f"**あなた:** {chat[0]}")
st.write(f"**AI:** {chat[1]}")
雛形を作ったにゃん!
これは、Streamlitを使ってGemini APIとSQLiteを組み合わせたチャットアプリのベースかえ?
- Streamlit → Web UI作成
- SQLite → チャット履歴を保存
- Gemini API → AI応答生成
APIキーを設定して、streamlit run ファイル名.py
で動かせるにゃん!
カスタマイズしたい部分があれば教えてかえ?
ChatGPTに環境構築方法を教えてもらう
コードはわかったけど、streamlitとかgoogle.generativeaiとかをインストールしないといけないので、どうしたらいいかをChatGPTにきいてみました。
[環境設定方法を教えて]
環境設定の方法を教えるにゃん!この手順で進めるかえ?
1. Python環境を準備する
Pythonがインストールされていない場合は、公式サイトからダウンロード&インストールするにゃん!
バージョンは Python 3.8以上 を推奨するかえ。
2. 仮想環境を作る(推奨)
プロジェクト用のフォルダを作って、仮想環境を作成&有効化するにゃん!
mkdir streamlit_gemini_app
cd streamlit_gemini_app
python -m venv venv
-
Windows の場合:
venv\Scripts\activate
-
Mac/Linux の場合:
source venv/bin/activate
3. 必要なライブラリをインストール
以下のコマンドでライブラリをインストールするにゃん!
pip install streamlit google-generativeai sqlite3
※ sqlite3
はPythonに標準搭載なので、別途インストール不要かえ。
4. Gemini APIキーを取得
- Google AI Studio にアクセス
- APIキーを発行(Googleアカウントが必要)
-
your_gemini_api_key_here
を発行したAPIキーに置き換える
環境変数に設定する場合(推奨)
ターミナルで次のコマンドを実行してAPIキーを環境変数に設定するかえ:
-
Windows (PowerShell)
$env:GEMINI_API_KEY="your_api_key"
-
Mac/Linux
export GEMINI_API_KEY="your_api_key"
Pythonコード内で使う場合:
import os
API_KEY = os.getenv("GEMINI_API_KEY")
5. アプリを起動
アプリのPythonファイルを作成して、Streamlitを実行するにゃん!
streamlit run ファイル名.py
(例: streamlit run app.py
)
6. ブラウザでアクセス
起動後、ブラウザで http://localhost:8501
にアクセスするとアプリが表示されるにゃん!
これで環境設定完了にゃん!
問題があれば教えてかえ?
Python仮想環境作成
Python仮想環境(streamlit-venv)という名前で作成して、ライブラリをインストールしました。
仮想環境の作り方は、過去に紹介しているのでこちらを参照してください。
ライブラリのインストールは、activateした(streamlit-venv)環境で実行します。
sqlite3はanacondaでもあるので、conda installでいけるけど、streamlitとgoogle.generativeaiはpipでしかインストールできないので、pipでインストールしようとしたら、エラーになりました。
chatgptに聞いてみたら、まずはanaconda環境にpipがインストールされているか確認して、インストールされていなかったらインストールする必要があるといわれたので、pipを確認しました。
(streamlit-venv) C:\Users\xxxxx\xxxxxx>conda list pip
・・・
# Name Version Build Channel
上記の通り、インストールされていなかったので、インストールしました。
>conda install pip
GeminiAPI(無料版)を取得
Google AI Studioから、GeminiAPIを取得します。
Googleアカウントにログインした状態で、GoogleAIStudioにアクセスして、左上の「Get API Key」をクリックします。
「キーAPIキーを作成」をクリックして、APIキーを作成します。
APIキーが作成されます。このAPIキーはあとで使います。
pyファイル作成
一番最初にChatGPTが書いてくれたコードを[Streamlit-python.py]というファイル名で保存しました。以下の内容だけ修正しました。
[API_KEY=]に、先ほど取得したAPIキーを設定
[genai.GenerativeModel]を("gemini-2.0-flash")に変更
実行してみる
anaconda promptで、仮想環境(streamlit-venv)をactivateした状態で、以下のコマンドを実行してStreamlitを実行しました。
>streamlit run Streamlit-python.py
そうすると、emailとかでてきたので、またChatGPTに聞きました。
そのままEnterを押したらブラウザが起動して、Streamlitの画面が表示されました。
生成AIが質問の答えを返してくれて、その履歴をデータベースに保存して表示してくれるアプリが作成できました。
最後に(注意事項等)
Streamlitを終了するには、ブラウザを閉じるのではなく、AnacondaPromptでCtrl+Cで終了してから、ブラウザを閉じないと、プロセスが残って固まってしまうので気を付けて!
GeminiAPIキーが他の人に公開されると、勝手に利用されてしまうかもしれないので、APIキーは公開しないように気を付けて!(特にGitなどでコードを管理する場合にはソースに埋め込まないで。環境変数とか公開環境の秘密の場所に格納するようにしてね!)
Streamlitを呼び出すプログラムはJupyterNotebookで実行できないから気を付けて!
(次は、vsCodeかcursorを入れて開発してみようかな・・・)
1か月くらいかけてじっくり勉強しようと思ってたら、1日でうごくものが作成できたのでびっくりでした!
Discussion