glucose_eval_ui / app.py
paulokewunmi's picture
Upload 2 files
d50630f verified
raw
history blame contribute delete
No virus
1.32 kB
import streamlit as st
import json
@st.cache_data
def load_data(file_path):
with open(file_path, 'r') as file:
return json.load(file)
data = load_data('out.json')
# Sidebar for plot selection
plot_ids = [item["plot_id"] for item in data]
selected_plot_id = st.sidebar.selectbox('Select a Plot ID', plot_ids)
selected_plot = next(item for item in data if item["plot_id"] == selected_plot_id)
# Display plot details
st.header('Plot Details')
st.markdown(f"```\n{selected_plot['plot']}\n```")
# st.write(selected_plot['plot'])
# Display conversation
st.header('Conversation')
with st.expander("Show Conversation", expanded=False):
for line in selected_plot['conversation']:
if line.startswith("User:"):
line.split(':', 1)[1].strip()
with st.chat_message("user"):
st.markdown(line.split(':', 1)[1].strip())
else:
with st.chat_message("assistant"):
st.markdown(line.split(':', 1)[1].strip())
# Display evaluation
st.header('Evaluation')
evaluation = json.loads(selected_plot['evaluation'])
# for key, value in evaluation.items():
# st.markdown(f"```\n{key}: {value}\n```")
st.json(evaluation)
# Error handling
if 'error' in selected_plot:
st.error(f"Error in plot {selected_plot_id}: {selected_plot['error']}")