File_Insights / app.py
ysrakeshgupta's picture
Update app.py
7b12a39 verified
Raw
History Blame Contribute Delete
1.78 kB
import streamlit as st
from langchain.prompts import PromptTemplate
from langchain_google_genai import ChatGoogleGenerativeAI
import os, spaces
import pandas as pd
os.environ['GOOGLE_API_KEY'] = os.getenv('geminiapi')
# Function for LLM response
def llm_response(columns, df_text, user_prompt):
# define llm
llm = ChatGoogleGenerativeAI(model="gemini-pro")
# define prompt template
ptemplate = '''
You are an Expert text analyser to find the insights.we have csv file with following columns: {columns} and For the csv content: {df_text},
find the insights based on given user question: {user_prompt}
'''
prompt = PromptTemplate(template=ptemplate,input_variables=['columns','df_text','user_prompt'])
final_prompt = prompt.format(df_text=df_text, user_prompt=user_prompt, columns=columns)
# invoke llm to get result
result = llm.invoke(final_prompt)
# print result on screen
st.subheader("Result:")
st.write(result.content)
def get_user_input():
user_prompt = st.text_input("Enter User question based on dataframe")
return user_prompt
# define page config
st.set_page_config(
page_title="Blog Generation",
page_icon="🧊",
layout="centered",
initial_sidebar_state="collapsed",
)
st.header("File Insights🧊")
uploaded_file = st.file_uploader("Upload csv file")
if uploaded_file is not None:
df = pd.read_csv(uploaded_file, encoding = "ISO-8859-1")
st.write(df)
user_prompt = get_user_input()
# Convert the DataFrame to a text-based context for the model
df_text = df.to_string(index=False) # Converts DataFrame to a string for context
# Chat with Google Gemini AI using the DataFrame as context
llm_response(','.join(df.columns), df_text, user_prompt)