cmagganas's picture
commenting out the csv part of the app
477d34f
raw
history blame
2.61 kB
""" this app is streamlit app for the current project hosted on HuggingFace spaces """
import streamlit as st
from openai_chat_completion import OpenAIChatCompletions
from dataclean_hf import main
from util import json_to_dict #, join_dicts
st.title("Kaleidoscope Data - Data Cleaning LLM App")
st.write("This app is a demo of the LLM model for data cleaning. It is a work in progress and is not yet ready for production use.")
# text box or csv upload
text_input = st.text_input("Enter text", "")
csv_file = st.file_uploader("Upload CSV", type=['csv'])
# button to run data cleaning API on text via c class in openai_chat_completion.py
if st.button("Run Data Cleaning API"):
# if text_input is not empty, run data cleaning API on text_input
if text_input:
MODEL = "gpt-4" # "gpt-3.5-turbo"
try:
with open('prompts/gpt4-system-message2.txt', 'r', encoding='utf8') as f:
sys_mes = f.read()
f.close()
except FileNotFoundError:
with open('../prompts/gpt4-system-message2.txt', 'r', encoding='utf8') as f:
sys_mes = f.read()
f.close()
# instantiate OpenAIChatCompletions class
# get response from openai_chat_completion method
chat = OpenAIChatCompletions(model=MODEL, system_message=sys_mes)
response = chat.openai_chat_completion(text_input, n_shot=None)
# display response
# st.write(response['choices'][0]['message']['content'])
response_content = response['choices'][0]['message']['content']
st.write(json_to_dict(response_content))
# if csv_file is not empty, run data cleaning API on csv_file
# elif csv_file:
# # run data cleaning API on csv_file
# output_df = main(csv_file)
# @st.cache_data
# def convert_df(df):
# """coverting dataframe to csv
# Args:
# df (_type_): pd.DataFrame
# Returns:
# _type_: csv
# """
# # IMPORTANT: Cache the conversion to prevent computation on every rerun
# return df.to_csv().encode('utf-8')
# csv = convert_df(output_df)
# st.download_button(
# label="Download data as CSV",
# data=csv,
# file_name='cleaned_df.csv',
# mime='text/csv',
# )
# if both text_input and csv_file are empty, display error message
else:
st.write("Please enter text or upload a CSV file.")