"""Azure OpenAI embeddings client.""" from typing import List import logging from openai import AzureOpenAI from config.settings import settings class EmbeddingClient: def __init__(self): self.client = AzureOpenAI( api_key=settings.AZURE_OPENAI_API_KEY, api_version=settings.AZURE_OPENAI_API_VERSION, azure_endpoint=settings.AZURE_OPENAI_ENDPOINT ) self.logger = logging.getLogger(__name__) def embed(self, texts: List[str]) -> List[List[float]]: """Get embeddings for a list of texts using Azure OpenAI.""" try: self.logger.info(f"Getting embeddings for {len(texts)} texts") response = self.client.embeddings.create( model=settings.AZURE_OPENAI_EMBEDDING_MODEL, input=texts ) embeddings = [item.embedding for item in response.data] self.logger.info(f"Successfully generated {len(embeddings)} embeddings") return embeddings except Exception as e: self.logger.error(f"Error generating embeddings: {str(e)}") # Return zero vectors as fallback return [[0.0] * 1536 for _ in texts]