Spaces:
Runtime error
Runtime error
""" 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.") |