Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import langchain_google_genai as l | |
| import time | |
| from streamlit_option_menu import option_menu | |
| with st.sidebar: | |
| s=option_menu("select from start",options=["select title","enter chat bot","download chat history"]) | |
| if s=="select title": | |
| b=st.selectbox(label="select the topic",options=["Python","SQL","Power BI","Exploratory Data Analysis (EDA)","Machine Learning (ML)","Deep Learning (DL)","Generative AI (Gen AI)","Agentic AI"]) | |
| if not st.session_state: | |
| st.session_state["topic"]=b | |
| elif "topic" in st.session_state: | |
| st.session_state["topic"]=b | |
| elif s=="enter chat bot": | |
| api="AIzaSyCaw1tgfw_90aB3R2R6lfxAJMXjBSLqE8o" | |
| time.sleep(5) | |
| model=l.GoogleGenerativeAI(model="gemini-2.5-flash-lite",api_key=api,max_tokens=10,temperature=0.2) | |
| if st.session_state: | |
| var="behave like a 1 year experice chat model trainer of"+ st.session_state.get("topic")+"Topic you strictly should not discuss anything other that specified topic" | |
| st.session_state["messages"]=[["system",var]] | |
| prompt=st.chat_input("Type your message") | |
| if prompt: | |
| st.session_state["messages"].append(["user",prompt]) | |
| st.session_state.update({"topic":""}) | |
| ai_mess=model.invoke(st.session_state["messages"]) | |
| st.session_state["messages"].append(["ai",ai_mess]) | |
| if "bytes" not in st.session_state: | |
| st.session_state["bytes"]=0 | |
| else: | |
| with open("chat.txt","w") as f: | |
| f.seek(st.session_state["bytes"]) | |
| for role,mess in st.session_state["messages"]: | |
| bytes=f.write("\n"+role+f": {mess}"+"\n") | |
| st.session_state["bytes"]=bytes | |
| for user,message in st.session_state["messages"]: | |
| if user=="user": | |
| with st.chat_message("user"): | |
| st.write(message) | |
| elif user=="ai": | |
| with st.chat_message("assistant"): | |
| st.write(st.session_state["messages"][-1][-1]) | |
| elif s=="download chat history": | |
| with open("chat.txt","r") as f: | |
| st.download_button(label="download chat history",data= f,file_name="chat.txt") | |
| #else: | |
| #st.markdown("please go and select the title to access the chatbot") |