Spaces:
Sleeping
Sleeping
from application.services import streamlit_function, llm_service | |
from application.services import gemini_model, openai_model | |
import streamlit as st | |
from google.genai.errors import ClientError | |
from application.utils import logger | |
import test | |
logger = logger.get_logger() | |
streamlit_function.config_homepage() | |
pdf_file = streamlit_function.upload_file("pdf", label="Upload Sustainability Report PDF") | |
available_files = ["Select a pdf file"] | |
for file in llm_service.get_files(): | |
available_files.append(file.filename) | |
selected_file = st.selectbox("Select a existing file", available_files) | |
for key in ["gpt4o_mini_result", "gpt4o_result", "gemini_result", "pdf_file"]: | |
if key not in st.session_state: | |
st.session_state[key] = None | |
if st.session_state.pdf_file: | |
with st.container(): | |
col1, col2, col3 = st.columns([5, 5, 5], gap="small") | |
with col1: | |
if st.button("Generate GPT-4o-min Response"): | |
with st.spinner("Calling GPT-4o-mini..."): | |
result = llm_service.extract_emissions_data_as_json("openai","gpt-4o-mini",pdf_file) | |
# result= openai_model.extract_emissions_data_as_json("openai","gpt-4o-mini",pdf_file) | |
st.session_state.gpt4o_mini_result = result | |
if st.session_state.gpt4o_mini_result: | |
st.write("Extracted Metrics by gpt-4o-mini") | |
st.json(st.session_state.gpt4o_mini_result) | |
with col2: | |
if st.button("Generate GPT-4o Response"): | |
with st.spinner("Calling gpt-4o..."): | |
result= llm_service.extract_emissions_data_as_json("openai","gpt-4o",pdf_file) | |
st.session_state.gpt4o_result = result | |
if st.session_state.gpt4o_result: | |
st.write("Extracted Metrics by gpt-4o") | |
st.json(st.session_state.gpt4o_result) | |
with col3: | |
try: | |
if st.button("Generate Gemini Response"): | |
with st.spinner("Calling gemini-1.5-pro-latest..."): | |
result = llm_service.extract_emissions_data_as_json("gemini","gemini-2.0-flash", st.session_state.pdf_file) | |
# result = gemini_model.extract_emissions_data_as_json("gemini","gemini-2.0-flash", pdf_file) | |
st.session_state.gemini_result = result | |
except ClientError as e: | |
st.error(f"Gemini API Error: {e}") | |
logger.error("Error Details:", e.message, e.response) | |
if st.session_state.gemini_result: | |
st.write("Extracted Metrics by gemini-1.5-pro-latest") | |
st.json(st.session_state.gemini_result) | |