File size: 1,566 Bytes
8d72f48
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
#!/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()