in tools/aoai.py [0:0]
def __init__(self, document_filename=""):
"""
Initializes the AzureOpenAI client.
Parameters:
document_filename (str, optional): Additional attribute for improved log traceability.
"""
self.max_retries = 10 # Maximum number of retries for rate limit errors
self.max_embeddings_model_input_tokens = 8192
self.max_gpt_model_input_tokens = 128000 # this is gpt4o max input, if using gpt35turbo use 16385
self.document_filename = f"[{document_filename}]" if document_filename else ""
self.openai_service_name = os.getenv('AZURE_OPENAI_SERVICE_NAME')
self.openai_api_base = f"https://{self.openai_service_name}.openai.azure.com"
self.openai_api_version = os.getenv('AZURE_OPENAI_API_VERSION')
self.openai_embeddings_deployment = os.getenv('AZURE_OPENAI_EMBEDDING_DEPLOYMENT')
self.openai_gpt_deployment = os.getenv('AZURE_OPENAI_CHATGPT_DEPLOYMENT')
# Log a warning if any environment variable is empty
env_vars = {
'AZURE_OPENAI_SERVICE_NAME': self.openai_service_name,
'AZURE_OPENAI_API_VERSION': self.openai_api_version,
'AZURE_OPENAI_EMBEDDING_DEPLOYMENT': self.openai_embeddings_deployment,
'AZURE_OPENAI_CHATGPT_DEPLOYMENT': self.openai_gpt_deployment
}
for var_name, var_value in env_vars.items():
if not var_value:
logging.warning(f'[aoai]{self.document_filename} Environment variable {var_name} is not set.')
# Initialize the ChainedTokenCredential with ManagedIdentityCredential and AzureCliCredential
try:
self.credential = ChainedTokenCredential(
ManagedIdentityCredential(),
AzureCliCredential()
)
logging.debug(f"[aoai]{self.document_filename} Initialized ChainedTokenCredential with ManagedIdentityCredential and AzureCliCredential.")
except Exception as e:
logging.error(f"[aoai]{self.document_filename} Failed to initialize ChainedTokenCredential: {e}")
raise
# Initialize the bearer token provider
try:
self.token_provider = get_bearer_token_provider(
self.credential,
"https://cognitiveservices.azure.com/.default"
)
logging.debug(f"[aoai]{self.document_filename} Initialized bearer token provider.")
except Exception as e:
logging.error(f"[aoai]{self.document_filename} Failed to initialize bearer token provider: {e}")
raise
# Initialize the AzureOpenAI client
try:
self.client = AzureOpenAI(
api_version=self.openai_api_version,
azure_endpoint=self.openai_api_base,
azure_ad_token_provider=self.token_provider,
max_retries=self.max_retries
)
logging.debug(f"[aoai]{self.document_filename} Initialized AzureOpenAI client.")
except ClientAuthenticationError as e:
logging.error(f"[aoai]{self.document_filename} Authentication failed during AzureOpenAI client initialization: {e}")
raise
except Exception as e:
logging.error(f"[aoai]{self.document_filename} Failed to initialize AzureOpenAI client: {e}")
raise