Spaces:
Running
Running
File size: 1,826 Bytes
ea1ba01 1c19c94 ea1ba01 542a0cb daa81fb 542a0cb 1c19c94 daa81fb ea1ba01 be1430e daa81fb be1430e ea1ba01 daa81fb ea1ba01 27232ee 6cc3b6e 3de8e98 27232ee daa81fb 886eee7 882e3b8 886eee7 daa81fb ea1ba01 882e3b8 ea1ba01 886eee7 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
import streamlit as st
import os
from dotenv import load_dotenv
from langsmith import traceable
from app.chat import (
initialize_session_state,
display_chat_history,
)
from app.data_loader import get_data, load_docs
from app.document_processor import process_documents, save_vector_store_to_supabase, load_vector_store_from_supabase
from app.db import supabase
from app.config import Config
# Modularized helpers
import app.rag as rag
import app.vector_store as vs
import app.auth as auth
import app.ui as ui
from app.session import restore_user_session_if_needed, ensure_active_session
from app.workflows import prepare_vector_store_if_needed
from uuid import uuid4
load_dotenv()
BUCKET_NAME = Config.BUCKET_NAME
VECTOR_STORE_PREFIX = Config.VECTOR_STORE_PREFIX
@traceable(name="Main Chatbot RAG App")
def main():
try:
load_dotenv()
except Exception:
pass
initialize_session_state()
st.set_page_config(
page_title="PNP-Bot",
page_icon="assets/favicon.ico",
)
# Try restore Supabase session if user missing
restore_user_session_if_needed()
# Authentication gate
user = st.session_state.get("user")
if not user:
auth.auth_view()
return
# Ensure we have an active chat session
ensure_active_session(user["id"])
# Sidebar: delegate completely to UI module
with st.sidebar:
ui.render_sidebar_sessions()
# Vector store orchestration (delegated)
vector_store = prepare_vector_store_if_needed(len(st.session_state["history"]))
st.session_state["vector_store"] = vector_store
if st.session_state["vector_store"] is not None:
chain = rag.create_conversational_chain(st.session_state["vector_store"])
display_chat_history(chain)
if __name__ == "__main__":
main()
|