見出し画像

Google Gemini Pro VisionのAPIをStreamlitでウェブアプリ構築方法

Google Gemini Pro Visionという画像に対して操作が可能なAPIがあります。

今回、Google Gemini Pro VisionのAPIを利用して、Streamlitでウェブアプリを構築方法を紹介していきます。


完成イメージ


まずは、app.pyとして以下を用意します。

import streamlit as st
import google.generativeai as genai
from PIL import Image as PIL_Image
from io import BytesIO

# APIキーの設定
api_key = st.sidebar.text_input("API Key", type="password")
genai.configure(api_key=api_key)

# モデル読み込み
multimodal_model = genai.GenerativeModel("gemini-pro-vision")

# Streamlitの画面設定
st.title("😱画像解析アプリ(Gemini Pro Vision)")
st.write("画像をアップロードして、その内容についての説明を得るアプリです。")

# ファイルアップロード
uploaded_file = st.file_uploader("画像をアップロードしてください", type=["png", "jpg", "jpeg"])
if uploaded_file is not None:
    # 画像の表示
    image = PIL_Image.open(uploaded_file)
    st.image(image, caption="アップロードされた画像", use_column_width=True)

    # プロンプト入力
    prompt = st.text_input("画像についてのプロンプトを入力してください", "この画像について説明しなさい?")

    # コンテンツの準備
    contents = [image, prompt]

    # レスポンスの生成
    if st.button("解析開始"):
        with st.spinner("解析中..."):
            responses = multimodal_model.generate_content(contents, stream=True)

            # レスポンスの表示
            for response in responses:
                st.write(response.text)


次に、Pythonがインストールされている環境で以下を実行しますと完成となります。

python -m venv venv
venv\Scripts\Activate
pip install google-generativeai streamlit
streamlit run app.py


初期画面


使い方は、左側にAPI Keyと書かれているところに、Google GeminiのAPIキーを入力します。

次に、右側で"Browsefiles"をクリックして、読み込ませたい画像をアップロードします。

次に、画像が表示されますので、この画像に対してAIに問いたいことをPromptに書いて、解析開始ボタンを押します。


実行画面


この画像について、色々と聞いてみます。


猫が1匹いて、他には居なさそうです。


昼間の撮影です。


アドバイスもしてくれるようです。

この記事が気に入ったらサポートをしてみませんか?