File size: 2,764 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
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
67
68
69
70
71
# #!/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()