# Copyright (c) Microsoft Corporation. # Licensed under the MIT License. import os import streamlit as st from src.components import tabs from src.components.index_pipeline import IndexPipeline from src.enums import EnvVars from src.functions import initialize_app from src.graphrag_api import GraphragAPI # Load environment variables initialized = initialize_app() st.session_state["initialized"] = True if initialized else False def graphrag_app(initialized: bool): st.title("Microsoft GraphRAG Copilot") main_tab, prompt_gen_tab, prompt_edit_tab, index_tab, query_tab = st.tabs([ "**Intro**", "**1. Prompt Generation**", "**2. Prompt Configuration**", "**3. Index**", "**4. Query**", ]) # display only the main tab if a connection to an existing APIM has not been initialized with main_tab: tabs.get_main_tab(initialized) if initialized: # setup API request information COLUMN_WIDTHS = [0.275, 0.45, 0.275] apim_url = st.session_state[EnvVars.DEPLOYMENT_URL.value] apim_key = st.session_state[EnvVars.APIM_SUBSCRIPTION_KEY.value] # perform health check to verify connectivity client = GraphragAPI(apim_url, apim_key) if not client.health_check_passed(): st.error("APIM Connection Error") st.stop() indexPipe = IndexPipeline(client, COLUMN_WIDTHS) # display tabs with prompt_gen_tab: tabs.get_prompt_generation_tab(client, COLUMN_WIDTHS) with prompt_edit_tab: tabs.get_prompt_configuration_tab() with index_tab: tabs.get_index_tab(indexPipe) with query_tab: tabs.get_query_tab(client) deployer_email = os.getenv("DEPLOYER_EMAIL", "deployer@email.com") footer = f"""
""" st.markdown(footer, unsafe_allow_html=True) if __name__ == "__main__": graphrag_app(st.session_state["initialized"])