Spaces:
Running
Running
import streamlit as st | |
from utils import get_api_key, get_response | |
def main(): | |
st.header('Welcome to SciDocuParse! π§βπ¬π') | |
st.write('A scientific document parser, particularly specializing in graph analysis π and data interpretation π.') | |
st.session_state["thought_process"] = "" | |
st.session_state["response"] = "" | |
with st.sidebar: | |
st.header('SciDocuParse Sidebar π§') | |
st.caption('A tool to help you analyze scientific papers and documents efficiently! π') | |
paper = st.text_area('Paste scientific document citation here π§βπ«', | |
"""@article{wang2020automated, | |
title={Automated diabetic retinopathy grading and lesion detection based on the modified R-FCN object-detection algorithm}, | |
author={Wang, Jialiang and Luo, Jianxu and Liu, Bin and Feng, Rui and Lu, Lina and Zou, Haidong}, | |
journal={IET Computer Vision}, | |
volume={14}, | |
number={1}, | |
pages={1--8}, | |
year={2020}, | |
publisher={Wiley Online Library} | |
}""", height=350, help='Paste your document citation in BiBtex format.') | |
if not paper: | |
st.error('Provide a citation first! β οΈ') | |
user_prompt = st.text_area("Enter your query for analysis π:", | |
"Summarize this document and highlight key findings in graphs π") | |
persona = "You are a master Scientific Graph Analyzer skilled in interpreting graphs across all fields. Analyze trends (linear/exponential growth, correlations, outliers) and statistical patterns (mean, variance). Summarize key findings in plain language, Expalin data about causality, anomalies, or data limitations. Prioritize clarity: ensure outputs are accessible to technical and non-technical audiences. Combine technical precision with intuitive communication to deliver accurate, user-friendly interpretations." | |
user_prompt = persona + paper + user_prompt | |
# api_key = get_api_key() | |
if st.button('Analyze with LLM π'): | |
with st.spinner('Processing your document...'): | |
api_key = get_api_key() | |
thought_process, response = get_response(user_prompt, api_key) # uncommenting it to save tokens | |
st.session_state["thought_process"] = thought_process | |
st.session_state["response"] = response | |
if "thought_process" in st.session_state and "response" in st.session_state: | |
if len(st.session_state["thought_process"]) >= 1 and len(st.session_state["response"]) >= 1: | |
with st.expander('Show thought process π'): | |
st.caption(thought_process) | |
st.subheader('RESPONSE π') | |
st.write(response) | |
st.caption('SciDocuParse is made by John Manuel Carado') | |
st.caption('Intelligent Systems course in WVSU - CICT, Midterm Requirement') | |
if __name__ == '__main__': | |
main() |