File size: 1,211 Bytes
0a40afa
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
"""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]