使用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

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

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