# #!/usr/bin/env python # import os # import gradio as gr # from services.data_service import DataService # from services.ui_service import general_chat_ui, study_support_ui # from configs.config import GPT4O_MODEL, CLAUDE_MODEL # from vector_services.data_curator import DataCurator # def main() -> None: # base_dir = "./usiu-knowledge-base" # vector_store_dir = "./usiu_vector_db" # # Load the existing vector store and obtain its retriever. # curator = DataCurator(knowledge_base_dir=base_dir, persist_directory=vector_store_dir) # vector_store = curator.load_vectorstore() # retriever = curator.get_retriever() # # Initialize DataService with the retriever so that general chat uses RAG. # data_service = DataService(retriever=retriever) # prompts_service = data_service.prompts_service # # Get system prompts for general and study support. # general_chat_prompt = prompts_service.get_prompt("general") # study_prompt = prompts_service.get_prompt("study") # # Use the ui_service functions that already manage state properly. # general_ui = general_chat_ui(general_chat_prompt, GPT4O_MODEL) # study_ui = study_support_ui(study_prompt, CLAUDE_MODEL) # # Assemble the interfaces in tabs. # interfaces = [general_ui, study_ui] # tab_names = ["General Academic Chat", "Study Support Chat"] # demo = gr.TabbedInterface(interfaces, tab_names) # demo.launch(share=True, inbrowser=True, server_name="localhost", server_port=8001) # if __name__ == "__main__": # main() #!/usr/bin/env python import os import gradio as gr from services.data_service import DataService from services.ui_service import dashboard_ui from configs.config import GPT4O_MODEL, CLAUDE_MODEL from vector_services.data_curator import DataCurator def main() -> None: base_dir = "./usiu-knowledge-base" vector_store_dir = "./vector_services/usiu_vector_db" # Load the existing vector store and obtain its retriever. curator = DataCurator(knowledge_base_dir=base_dir, persist_directory=vector_store_dir) vector_store = curator.load_vectorstore() retriever = curator.get_retriever() # Initialize DataService with the retriever so that general chat uses RAG. data_service = DataService(retriever=retriever) prompts_service = data_service.prompts_service # Get system prompts for general and study support. general_chat_prompt, study_prompt = prompts_service.get_prompt() # Build the dashboard, passing the relevant prompts and model identifiers. dashboard = dashboard_ui(general_chat_prompt, GPT4O_MODEL, study_prompt, CLAUDE_MODEL) dashboard.launch(share=True, inbrowser=True, server_name="0.0.0.0") if __name__ == "__main__": main()