0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Gemini APIをStreamlitで利用してみた【サンプルコード】

Last updated at Posted at 2024-08-25

前提

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
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?