Spaces:
Runtime error
Runtime error
| import json | |
| import os | |
| from groq import Groq | |
| from tts_engine import synthesize_speech, play_audio | |
| # Fallback to the key used in gen_voice.py if env var is missing | |
| api_key = os.environ.get("GROQ_API_KEY", "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") | |
| try: | |
| client = Groq(api_key=api_key) | |
| except Exception as e: | |
| print(f"Failed to initialize Groq client in agents.py: {e}") | |
| client = None | |
| def generate_response(prompt: str) -> str: | |
| if not client: | |
| return "Groq client not initialized." | |
| print("Generating LLM response...") | |
| try: | |
| response = client.chat.completions.create( | |
| model='llama-3.3-70b-versatile', | |
| messages=[ | |
| {"role": "system", "content": "You are a helpful voice assistant. Keep your response brief, natural, and conversational in Tamil or English."}, | |
| {"role": "user", "content": prompt} | |
| ] | |
| ) | |
| return response.choices[0].message.content | |
| except Exception as e: | |
| print(f"Error calling LLM: {e}") | |
| return "மன்னிக்கவும், ஒரு பிழை ஏற்பட்டுள்ளது." # Sorry, an error occurred. | |
| def handle_agent_request(agent_name: str, entities: dict): | |
| print(f"\n[{agent_name}] Handling request with entities: {json.dumps(entities, indent=2)}") | |
| prompt = f"The user triggered the {agent_name} with these details: {json.dumps(entities)}. Please provide a short helpful response confirming this in Tamil." | |
| response_text = generate_response(prompt) | |
| print(f"[{agent_name} Response]: {response_text}") | |
| # Synthesize and play | |
| audio_path = synthesize_speech(response_text, f"{agent_name}_response.wav") | |
| if audio_path: | |
| play_audio(audio_path) | |
| print(f"[{agent_name}] Done processing intent.\n") | |
| def HEALTHCARE_AGENT(entities: dict): | |
| handle_agent_request("HEALTHCARE_AGENT", entities) | |
| def ECOMMERCE_AGENT(entities: dict): | |
| handle_agent_request("ECOMMERCE_AGENT", entities) | |
| def BANKING_AGENT(entities: dict): | |
| handle_agent_request("BANKING_AGENT", entities) | |
| def LMS_AGENT(entities: dict): | |
| handle_agent_request("LMS_AGENT", entities) | |