|
import streamlit as st |
|
import requests |
|
import pandas as pd |
|
|
|
|
|
st.set_page_config(layout="wide", page_title="2-2") |
|
|
|
|
|
def upload_file(file): |
|
if file is not None: |
|
url = "https://insly.ai/api/docusmart?locale=en-US" |
|
headers = { |
|
"accept": "multipart/form-data", |
|
"X-API-Key": "ai", |
|
} |
|
|
|
data = { |
|
'system_message': '"""Respond in ALLCAPS"""', |
|
} |
|
files = { |
|
"file": (file.name, file, file.type) |
|
} |
|
response = requests.post(url, headers=headers, files=files, data=data) |
|
return response.json() |
|
return None |
|
|
|
|
|
def display_response_and_table(response_json): |
|
if response_json: |
|
|
|
with st.expander("Full JSON Response", expanded=False): |
|
st.json(response_json) |
|
|
|
|
|
response_data = response_json.get('response', {}) |
|
|
|
|
|
key_value_pairs = response_data.pop('key_value_pairs', {}) |
|
all_response_data = {**response_data, **key_value_pairs} |
|
|
|
|
|
df = pd.DataFrame(list(all_response_data.items()), columns=['Key', 'Value']) |
|
|
|
|
|
st.table(df) |
|
|
|
else: |
|
st.write("No response to display.") |
|
|
|
|
|
col1, col2 = st.columns(2) |
|
|
|
with col1: |
|
file1 = st.file_uploader("Upload file to Column 1", key="file1", label_visibility="collapsed") |
|
if file1: |
|
json_response1 = upload_file(file1) |
|
if json_response1: |
|
display_response_and_table(json_response1) |
|
|
|
with col2: |
|
file2 = st.file_uploader("Upload file to Column 2", key="file2", label_visibility="collapsed") |
|
if file2: |
|
json_response2 = upload_file(file2) |
|
if json_response2: |
|
display_response_and_table(json_response2) |
|
|