doctorecord / src /services /embedding_client.py
levalencia's picture
Update Dockerfile to use new app entry point and enhance requirements.txt with additional dependencies. Remove obsolete streamlit_app.py file.
0a40afa
"""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]