import io import os import streamlit as st import tempfile from scripts import analyze_metadata, generate_metadata, ingest, MODEL_NAME st.title('# DocVerifyRAG') st.write('## Anomaly detection for BIM document metadata') st.write('### Enter your file metadata in the following schema:') user_input = st.text_input( label='Filename, Description, Discipline', value="", placeholder=str) if st.button('Submit'): try: filename, description, discipline = user_input.split(',') st.write('## Analyzing with Vectara + together.ai') analysis = analyze_metadata(filename, description, discipline) st.write(analysis) st.write('## Generate metadata?') st.write('### Upload the file that corresponds to the submitted metadata') uploaded_file = st.file_uploader("Choose a PDF file", type=["pdf","txt"]) if uploaded_file is not None: try: with tempfile.NamedTemporaryFile(delete=False, suffix=os.path.splitext(uploaded_file.name)[1]) as tmp: tmp.write(uploaded_file.read()) file_path = tmp.name st.write(f'Created temporary file {file_path}') docs = ingest(file_path) st.write('## Querying Together.ai API') metadata = generate_metadata(docs) st.write(f'## Metadata Generated by {MODEL_NAME}') st.write(metadata) # Clean up the temporary file os.remove(file_path) except Exception as e: st.error(f'Error: {e}') except ValueError: st.error('Please enter 3 comma separated values')