尝试使用 Gemini-Pro 制作 LLM 聊天机器人时出现类型错误

问题描述 投票:0回答:1

这是代码

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:

我想检查用户是否与机器人进行了活跃的聊天,如果有,那么机器人会保存之前的对话历史记录以供下一次对话使用。会话结束后,历史记录将重置

python machine-learning artificial-intelligence chatbot
1个回答
0
投票

类型错误是因为您在不存储值的类上使用

in
in
仅适用于集合、列表和其他包含值的数据结构。

如果你想看看某个东西是否具有

chat_session
属性,你可以尝试
hasattr(st.session_state, "chat_session")

另请参阅:

© www.soinside.com 2019 - 2024. All rights reserved.