gtamkaleidoscope's picture
Update app/app.py
660fb22
raw
history blame contribute delete
No virus
2.56 kB
""" this app is streamlit app for the current project hosted on HuggingFace spaces """
import streamlit as st
import json
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 Demo App")
st.write("This app is a demo our LLM model for cleaning cannabis data")
# 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.")