airabbitX's picture
Upload 19 files
46a6768 verified
import gradio as gr
from utils.credentials import check_credentials, init_clients
from ui.embeddings_tab import create_embeddings_tab
from ui.search_tab import create_search_tab
def create_app():
"""Create and configure the Gradio application"""
with gr.Blocks(title="MongoDB Vector Search Tool") as iface:
gr.Markdown("# MongoDB Vector Search Tool")
# Check credentials first
has_creds, cred_message = check_credentials()
if not has_creds:
gr.Markdown(f"""
## ⚠️ Setup Required
{cred_message}
After setting up credentials, refresh this page.
""")
else:
# Initialize clients
openai_client, db_utils = init_clients()
if not openai_client or not db_utils:
gr.Markdown("""
## ⚠️ Connection Error
Failed to connect to MongoDB Atlas or OpenAI. Please check your credentials and try again.
""")
else:
# Get available databases
try:
databases = db_utils.get_databases()
except Exception as e:
gr.Markdown(f"""
## ⚠️ Database Error
Failed to list databases: {str(e)}
Please check your MongoDB Atlas connection and try again.
""")
databases = []
# Create tabs
embeddings_tab, embeddings_interface = create_embeddings_tab(
openai_client=openai_client,
db_utils=db_utils,
databases=databases
)
search_tab, search_interface = create_search_tab(
openai_client=openai_client,
db_utils=db_utils,
databases=databases
)
return iface
if __name__ == "__main__":
app = create_app()
app.launch(server_name="0.0.0.0")