#!/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 from api_gateway.gateway import register_service, gateway def main() -> None: base_dir = "./usiu-knowledge-base" vector_store_dir = "week5/chatbot_prototype/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) # Register services with API Gateway register_service("data_service", data_service) register_service("curator", curator) # Get system prompts for general and study support general_chat_prompt, study_prompt = data_service.prompts_service.get_prompt() # Build the dashboard, passing the relevant prompts, model identifiers, and retriever dashboard = dashboard_ui( general_chat_prompt=general_chat_prompt, general_model=GPT4O_MODEL, study_prompt=study_prompt, study_model=CLAUDE_MODEL, retriever=retriever # Pass the retriever directly to ui_service ) dashboard.launch(share=True, inbrowser=True, server_name="0.0.0.0") if __name__ == "__main__": main()