import logging from typing import Dict, Any, List, Union from modules.connectors.connectorAiOpenai import AiConnector logger = logging.getLogger(__name__) class AiInterface: """Interface for AI service interactions""" def __init__(self): self.service = AiConnector() async def callAiBasic(self, messages: List[Dict[str, str]], produceUserAnswer: bool = False, temperature: float = None) -> str: """Enhanced AI service call with language support.""" # Add language instruction for user-facing responses if produceUserAnswer and hasattr(self, 'userLanguage') and self.userLanguage: ltext = f"Please respond in '{self.userLanguage}' language." if messages and messages[0]["role"] == "system": if "language" not in messages[0]["content"].lower(): messages[0]["content"] = f"{ltext} {messages[0]['content']}" else: # Insert a system message with language instruction messages.insert(0, { "role": "system", "content": ltext }) # Call the AI service return await self.service.callAiBasic(messages, temperature=temperature) async def callAiImage(self, imageData: Union[str, bytes], mimeType: str = None, prompt: str = "Describe this image") -> str: """Enhanced AI service call with language support.""" if not self.service: logger.error("AI service not set in AiInterface") return "Error: AI service not available" return await self.service.callAiImage(imageData, mimeType, prompt)