Prajwal3009's picture
Upload 30 files
ccd7971 verified
import streamlit as st
import os
import pathlib
import textwrap
import google.generativeai as genai
from dotenv import load_dotenv
def fasto():
# Load environment variables from .env
load_dotenv()
os.getenv("GOOGLE_API_KEY")
genai.configure(api_key=os.getenv("GOOGLE_API_KEY"))
# App title
st.title= "Fast Response"
# Initialize the Gemini model
model = genai.GenerativeModel('gemini-1.5-flash')
# Store generated responses
if "messages" not in st.session_state.keys():
st.session_state.messages = [{"role": "assistant", "content": "How may I assist you?"}]
# Create two columns
col1, col2 = st.columns([3, 1])
# User-provided prompt and chat messages in the left column
with col1:
# Display chat messages
for message in st.session_state.messages:
with st.chat_message(message["role"]):
st.write(message["content"])
# User-provided prompt
prompt = st.text_input("Enter your prompt:")
if prompt:
st.session_state.messages.append({"role": "user", "content": prompt})
with st.chat_message("user"):
st.write(prompt)
# Generate a new response if last message is not from assistant
if st.session_state.messages[-1]["role"] != "assistant":
with st.chat_message("assistant"):
with st.spinner("Thinking..."):
response = model.generate_content(prompt)
st.write(response.text)
message = {"role": "assistant", "content": response.text}
st.session_state.messages.append(message)
# Select box for user role in the right column
with col2:
role = st.selectbox(
"Select your role:",
("Doctor", "Electronic Expert", "Lawyer", "Chef"),
index=None,
placeholder="Select a role...",
)
# Predefined chat prompt templates
templates = {
"Doctor": "As a doctor, I can help you with medical advice.",
"Electronic Expert": "As an electronic expert, I can help you with electronic devices.",
"Lawyer": "As a lawyer, I can help you with legal advice.",
"Chef": "As a chef, I can help you with cooking advice.",
}
# Add the selected role's template to the prompt
if role in templates:
prompt += " " + templates[role]
if __name__ == "__main__":
fasto()