Skip to content

Commit 587528d

Browse files
Replcae OpenAI API calls with SDK API call
1 parent 3c7a606 commit 587528d

File tree

4 files changed

+24
-23
lines changed

4 files changed

+24
-23
lines changed

infra/scripts/index_scripts/02_process_data.py

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
from azure.keyvault.secrets import SecretClient
2-
from openai import AzureOpenAI
2+
from azure.ai.inference import EmbeddingsClient
33
import re
44
import time
55
import pypdf
66
from io import BytesIO
77
from azure.search.documents import SearchClient
88
from azure.storage.filedatalake import DataLakeServiceClient
99
from azure.search.documents.indexes import SearchIndexClient
10-
from azure.identity import (AzureCliCredential, get_bearer_token_provider)
10+
from azure.identity import AzureCliCredential
1111

1212

1313
key_vault_name = 'kv_to-be-replaced'
@@ -60,16 +60,14 @@ def get_secrets_from_kv(secret_name: str) -> str:
6060
# Function: Get Embeddings
6161
def get_embeddings(text: str, openai_api_base, openai_api_version):
6262
model_id = "text-embedding-ada-002"
63-
ad_token_provider = get_bearer_token_provider(
64-
credential, "https://cognitiveservices.azure.com/.default"
65-
)
66-
client = AzureOpenAI(
67-
api_version=openai_api_version,
68-
azure_endpoint=openai_api_base,
69-
azure_ad_token_provider=ad_token_provider
63+
client = EmbeddingsClient(
64+
endpoint=f"{openai_api_base}/openai/deployments/{model_id}",
65+
credential=credential,
66+
credential_scopes=["https://cognitiveservices.azure.com/.default"]
7067
)
7168

72-
embedding = client.embeddings.create(input=text, model=model_id).data[0].embedding
69+
response = client.embed(input=[text])
70+
embedding = response.data[0].embedding
7371
return embedding
7472

7573

infra/scripts/index_scripts/requirements.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
azure-storage-file-datalake==12.20.0
2-
openai==1.84.0
2+
azure-ai-inference==1.0.0b9
33
pypdf==5.6.0
44
# pyodbc
55
tiktoken==0.9.0

scripts/data_utils.py

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import tiktoken
2121
from azure.ai.documentintelligence import DocumentIntelligenceClient
2222
from azure.ai.documentintelligence.models import AnalyzeDocumentRequest
23+
from azure.ai.inference import EmbeddingsClient
2324
from azure.core.credentials import AzureKeyCredential
2425
from azure.storage.blob import ContainerClient
2526
from bs4 import BeautifulSoup
@@ -28,7 +29,6 @@
2829
PythonCodeTextSplitter,
2930
RecursiveCharacterTextSplitter,
3031
TextSplitter)
31-
from openai import AzureOpenAI
3232
from tqdm import tqdm
3333

3434
# Configure environment variables
@@ -844,22 +844,26 @@ def get_embedding(
844844
api_version = "2024-02-01"
845845

846846
if azure_credential is not None:
847-
api_key = azure_credential.get_token(
848-
"https://cognitiveservices.azure.com/.default"
849-
).token
847+
# Use managed identity credential with credential_scopes parameter
848+
client = EmbeddingsClient(
849+
endpoint=f"{endpoint}/openai/deployments/{deployment_id}",
850+
credential=azure_credential,
851+
credential_scopes=["https://cognitiveservices.azure.com/.default"]
852+
)
850853
else:
854+
# Use API key credential
851855
api_key = (
852856
embedding_model_key
853857
if embedding_model_key
854858
else os.getenv("AZURE_OPENAI_API_KEY")
855859
)
856-
857-
client = AzureOpenAI(
858-
api_version=api_version, azure_endpoint=endpoint, api_key=api_key
859-
)
860-
embeddings = client.embeddings.create(model=deployment_id, input=text)
861-
862-
return embeddings.model_dump()["data"][0]["embedding"]
860+
client = EmbeddingsClient(
861+
endpoint=f"{endpoint}/openai/deployments/{deployment_id}",
862+
credential=AzureKeyCredential(api_key)
863+
)
864+
865+
response = client.embed(input=[text])
866+
return response.data[0].embedding
863867

864868
except Exception as e:
865869
raise Exception(

src/requirements.txt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
azure-identity==1.25.0
22
# Flask[async]==2.3.2
3-
openai==2.0.1
43
azure-search-documents==11.7.0b1
54
azure-storage-blob==12.26.0
65
python-dotenv==1.1.1

0 commit comments

Comments
 (0)