这是代码
import os import streamlit as st from dotenv import load_dotenv import google.generativeai as gen_ai load_dotenv() st.set_page_config( page_title="Chat with Gemini Pro", page_icon=":brain:", layout="centered" )GOOGLE_API_KEY = os.getenv("GOOGLE_API_KEY") gen_ai.configure(api_key=GOOGLE_API_KEY) model = gen_ai.GenerativeModel("gemini-pro") def translate_role_for_streamlit(user_role): if user_role == "model": return "assistant" else: return user_role if "chat_session" not in st.session_state: st.session_state.chat_session = model.start_chat(history=[])st.title("CAIE Bot") for message in st.session_state.chat_session.history: with st.chat_message(translate_role_for_streamlit(message.role)): st.markdown(message.parts[0].text) user_prompt = st.chat_input("Ask CAIE bot...") if user_prompt: st.chat_message("user").markdown(user_prompt) gemini_response = st.session_state.chat_session.send_message(user_prompt) with st.chat_message("assistant"): st.markdown(gemini_response.text) !streamlit run main.py
我在这一行遇到错误
if "chat_session" not in st.session_state:
我想检查用户是否与机器人有活跃的聊天,如果有,那么机器人会保存之前的对话历史供下次对话使用。会话结束后,历史记录将重置
回答:
类型错误的原因是您对一个不存储值的类使用了in
。只有集合、列表和其他包含值的数据结构才可以使用in
。
如果您想查看某物是否具有chat_session
属性,可以尝试hasattr(st.session_state, "chat_session")
。
另见: