File size: 1,916 Bytes
dbf2148
 
c1f5409
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
b18fec3
 
c1f5409
b18fec3
dbf2148
c1f5409
 
 
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
import gradio as gr
import groq
from config.settings import settings
from core.rag_system import EnhancedRAGSystem
from core.tts_service import EnhancedTTSService
from core.wikipedia_processor import WikipediaProcessor
from services.audio_service import AudioService
from services.chat_service import ChatService
from services.image_service import ImageService
from services.streaming_voice_service import StreamingVoiceService
from ui.components import create_custom_css, create_header
from ui.tabs import create_all_tabs
def main():
    # Initialize clients and services
    if not settings.GROQ_API_KEY:
        raise ValueError("Please set the GROQ_API_KEY environment variable.")

    client = groq.Client(api_key=settings.GROQ_API_KEY)
    
    # Initialize core systems
    rag_system = EnhancedRAGSystem()
    tts_service = EnhancedTTSService()
    wikipedia_processor = WikipediaProcessor()
    
    # Initialize services
    audio_service = AudioService(client, rag_system, tts_service)
    chat_service = ChatService(client, rag_system, tts_service)
    image_service = ImageService(client)
    streaming_voice_service = StreamingVoiceService(client, rag_system, tts_service)
    
    # Create Gradio interface
    with gr.Blocks(css=create_custom_css(), theme=gr.themes.Soft(primary_hue="orange", neutral_hue="slate")) as demo:
        create_header()
        gr.Markdown("### 🌐 Hệ thống Đa ngôn ngữ - Tự động chuyển đổi model theo ngôn ngữ")
        create_all_tabs(
            audio_service=audio_service,
            chat_service=chat_service,
            image_service=image_service,
            rag_system=rag_system,
            tts_service=tts_service,
            wikipedia_processor=wikipedia_processor,
            streaming_voice_service=streaming_voice_service
        )
    
    return demo

if __name__ == "__main__":
    demo = main()
    demo.launch(share=True)