|
|
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) |
|
|
|
|
|
|