voicebot / app.py
datbkpro's picture
Update app.py
c1f5409 verified
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)