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

这是代码

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")

另见:

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注