edithram23's picture
Update app.py
806b0d1 verified
import streamlit as st
import google.generativeai as genai
import pandas as pd
import os
import numpy as np
genai.configure(api_key=os.getenv('GEMINI'))
database_str=''
with open('database.txt', 'r',encoding='utf-8') as f:
database_str = f.read()
def generate_response(query):
prompt = f'''
You are a Course suggestor based on the user requirement and the from the given database which consist of
the course name and description of the course.
You're tasked to use the description of each course and compare it with the user input and output which course's
description matches the user requirement.
Output the course name alone which matches the user requirement.
you may output a max of 3 courses if you find that are good matches. name of the course should be exactly same as the database provided to you.
# Database
{database_str}
# User Input
{query[-1]}
# Output : (Course Name with | as splitter)
'''
model = genai.GenerativeModel("gemini-1.5-flash")
response = model.generate_content(prompt)
return response.text.split("|")
# Define session state variables
if 'messages' not in st.session_state:
st.session_state.messages = []
if 'mess' not in st.session_state:
st.session_state.mess=[]
if st.sidebar.button("RESET"):
st.session_state.messages=[]
st.session_state.mess=[]
# User input
st.title('Analytics Vidhya Course Finder')
user_input = st.chat_input('Write your message here...')
if user_input:
# Append user input to messages
st.session_state.messages.append({"role": "user", "content": user_input})
st.session_state.mess+=[user_input]
# Generate chatbot response
bot_response = generate_response(st.session_state.mess)
st.session_state.messages.append({"role": "bot", "content": bot_response})
# Display chat messages in correct order
for message in st.session_state.messages:
if message["role"] == "user":
with st.chat_message("human"):
st.write(message['content'])
else:
with st.chat_message("ai"):
for i in message['content']:
st.write('* '+i)