前提
Google AI StudioのGemini APIのページのGet API Keyで、APIキーを発行・取得済みであること
Streamlit と Gemini API SDK をインストールする
pip install streamlit google-generativeai
サンプルコード
ファイル名は <your_script_name>.py
とする。
import streamlit as st
import google.generativeai as genai
import google.ai.generativelanguage as glm
from streamlit_option_menu import option_menu
# APIキーの設定
genai.configure(api_key="APIキーをここに記述")
# Geminiモデルの設定
model = genai.GenerativeModel('gemini-1.5-flash')
# ページ設定
st.set_page_config(page_title="Gemini Chatbot", page_icon="🤖", layout="wide")
# チャットページ
st.title("Streamlit Chatbot")
# 定数定義
USER_NAME = "user"
ASSISTANT_NAME = "assistant"
MODEL_NAME = "model"
# チャットログを保存したセッション情報を初期化
if "chat_log" not in st.session_state:
st.session_state.chat_log = model.start_chat(history=[
glm.Content(role=USER_NAME, parts=[glm.Part(text="あなたは優秀なAIアシスタントです。できるだけ簡潔に回答してください。")]),
glm.Content(role=MODEL_NAME, parts=[glm.Part(text="わかりました。")])
])
st.session_state.chat_log = []
user_msg = st.chat_input("ここにメッセージを入力")
if user_msg:
# 以前のチャットログを表示
for chat in st.session_state.chat_log:
with st.chat_message(chat["name"]):
st.write(chat["msg"])
# 最新のメッセージを表示
with st.chat_message(USER_NAME):
st.write(user_msg)
# アシスタントのメッセージを表示
response = model.generate_content(user_msg)
with st.chat_message(ASSISTANT_NAME):
assistant_msg = response.text
st.write(assistant_msg)
# セッションにチャットログを追加
st.session_state.chat_log.append({"name": USER_NAME, "msg": user_msg})
st.session_state.chat_log.append({"name": ASSISTANT_NAME, "msg": assistant_msg})
実行する
streamlit run <your_script_name>.py