| 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(): |
| |
| 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) |
| |
| |
| rag_system = EnhancedRAGSystem() |
| tts_service = EnhancedTTSService() |
| wikipedia_processor = WikipediaProcessor() |
| |
| |
| 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) |
| |
| |
| 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) |
|
|
|
|