IsmatS commited on
Commit
c4f0859
·
1 Parent(s): cd7918d
Files changed (1) hide show
  1. app/main.py +20 -19
app/main.py CHANGED
@@ -114,21 +114,30 @@ def get_embedding(text: str) -> List[float]:
114
  """
115
  Generate embedding for semantic search.
116
 
117
- IMPORTANT: You need to deploy an embedding model in Azure OpenAI Studio:
118
- 1. Go to Azure OpenAI Studio → Deployments
119
- 2. Create deployment: text-embedding-3-small
120
- 3. Set dimensions to 1024 to match Pinecone index
121
-
122
- Alternative: Set AZURE_EMBEDDING_MODEL env var to your deployment name
123
  """
124
- client = get_azure_client()
 
 
 
 
 
 
 
 
 
 
 
 
 
125
 
126
  # Get embedding model from env or use default
127
  embedding_model = os.getenv("AZURE_EMBEDDING_MODEL", "text-embedding-3-small")
128
  embedding_dims = int(os.getenv("AZURE_EMBEDDING_DIMS", "1024"))
129
 
130
  try:
131
- response = client.embeddings.create(
132
  input=text,
133
  model=embedding_model,
134
  dimensions=embedding_dims
@@ -139,17 +148,9 @@ def get_embedding(text: str) -> List[float]:
139
 
140
  # Provide helpful error message
141
  if "DeploymentNotFound" in error_msg or "404" in error_msg:
142
- print(f"❌ EMBEDDING ERROR: Deployment '{embedding_model}' not found in Azure OpenAI")
143
- print(f"")
144
- print(f"📋 FIX THIS BY DEPLOYING THE MODEL:")
145
- print(f" 1. Go to: https://oai.azure.com/portal")
146
- print(f" 2. Navigate to: Deployments → Create new deployment")
147
- print(f" 3. Model: text-embedding-3-small")
148
- print(f" 4. Deployment name: text-embedding-3-small")
149
- print(f" 5. Set: dimensions=1024")
150
- print(f"")
151
- print(f" OR set environment variable:")
152
- print(f" AZURE_EMBEDDING_MODEL=<your-existing-embedding-deployment>")
153
  else:
154
  print(f"Embedding error: {e}")
155
 
 
114
  """
115
  Generate embedding for semantic search.
116
 
117
+ Uses separate Azure OpenAI resource for embeddings (memory-efficient for Render free tier).
118
+ Supports custom endpoint/key via AZURE_EMBEDDING_* environment variables.
 
 
 
 
119
  """
120
+ # Check if using separate embedding resource
121
+ embedding_endpoint = os.getenv("AZURE_EMBEDDING_ENDPOINT")
122
+ embedding_api_key = os.getenv("AZURE_EMBEDDING_API_KEY")
123
+
124
+ if embedding_endpoint and embedding_api_key:
125
+ # Use separate embedding client
126
+ embedding_client = AzureOpenAI(
127
+ api_key=embedding_api_key,
128
+ api_version=os.getenv("AZURE_OPENAI_API_VERSION", "2024-08-01-preview"),
129
+ azure_endpoint=embedding_endpoint
130
+ )
131
+ else:
132
+ # Fallback to main Azure client
133
+ embedding_client = get_azure_client()
134
 
135
  # Get embedding model from env or use default
136
  embedding_model = os.getenv("AZURE_EMBEDDING_MODEL", "text-embedding-3-small")
137
  embedding_dims = int(os.getenv("AZURE_EMBEDDING_DIMS", "1024"))
138
 
139
  try:
140
+ response = embedding_client.embeddings.create(
141
  input=text,
142
  model=embedding_model,
143
  dimensions=embedding_dims
 
148
 
149
  # Provide helpful error message
150
  if "DeploymentNotFound" in error_msg or "404" in error_msg:
151
+ print(f"❌ EMBEDDING ERROR: Deployment '{embedding_model}' not found")
152
+ print(f" Endpoint: {embedding_endpoint or os.getenv('AZURE_OPENAI_ENDPOINT')}")
153
+ print(f" Model: {embedding_model}")
 
 
 
 
 
 
 
 
154
  else:
155
  print(f"Embedding error: {e}")
156