From d2f4f1d27b92235458549987cfb5a99c6eef0f3b Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 19 Sep 2024 03:57:32 +0000 Subject: [PATCH 1/4] support azure login --- optillm.py | 23 ++++++++++++++++++----- requirements.txt | 3 ++- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/optillm.py b/optillm.py index 1044b7aa..f3b4eb7b 100644 --- a/optillm.py +++ b/optillm.py @@ -31,11 +31,24 @@ API_KEY = os.environ.get("OPENAI_API_KEY") default_client = OpenAI(api_key=API_KEY) else: - default_client = AzureOpenAI( - api_key=os.environ.get("AZURE_OPENAI_API_KEY"), - api_version=os.environ.get("AZURE_API_VERSION"), - azure_endpoint=os.environ.get("AZURE_API_BASE"), -) + API_KEY = os.environ.get("AZURE_OPENAI_API_KEY") + API_VERSION = os.environ.get("AZURE_API_VERSION") + AZURE_ENDPOINT = os.environ.get("AZURE_API_BASE") + if API_KEY is not None: + default_client = AzureOpenAI( + api_key=API_KEY, + api_version=API_VERSION, + azure_endpoint=AZURE_ENDPOINT, + ) + else: + from azure.identity import DefaultAzureCredential, get_bearer_token_provider + azure_credential = DefaultAzureCredential() + token_provider = get_bearer_token_provider(azure_credential, "https://cognitiveservices.azure.com/.default") + default_client = AzureOpenAI( + api_version=API_VERSION, + azure_endpoint=AZURE_ENDPOINT, + azure_ad_token_provider=token_provider + ) # Server configuration server_config = { diff --git a/requirements.txt b/requirements.txt index 2bbd104c..834a0567 100644 --- a/requirements.txt +++ b/requirements.txt @@ -3,4 +3,5 @@ networkx openai z3-solver aiohttp -flask \ No newline at end of file +flask +azure.identity \ No newline at end of file From bd8fa9f55d5a11bd59b783f7f0c6c1fcda3584d8 Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 19 Sep 2024 03:59:11 +0000 Subject: [PATCH 2/4] move import up --- optillm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optillm.py b/optillm.py index f3b4eb7b..9c8af968 100644 --- a/optillm.py +++ b/optillm.py @@ -4,6 +4,7 @@ import secrets from flask import Flask, request, jsonify from openai import AzureOpenAI, OpenAI +from azure.identity import DefaultAzureCredential, get_bearer_token_provider # Import approach modules from mcts import chat_with_mcts @@ -41,7 +42,6 @@ azure_endpoint=AZURE_ENDPOINT, ) else: - from azure.identity import DefaultAzureCredential, get_bearer_token_provider azure_credential = DefaultAzureCredential() token_provider = get_bearer_token_provider(azure_credential, "https://cognitiveservices.azure.com/.default") default_client = AzureOpenAI( From 3b92db7fef135ac53894a05a970eb84e93763bea Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 19 Sep 2024 03:59:31 +0000 Subject: [PATCH 3/4] revert move --- optillm.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/optillm.py b/optillm.py index 9c8af968..f3b4eb7b 100644 --- a/optillm.py +++ b/optillm.py @@ -4,7 +4,6 @@ import secrets from flask import Flask, request, jsonify from openai import AzureOpenAI, OpenAI -from azure.identity import DefaultAzureCredential, get_bearer_token_provider # Import approach modules from mcts import chat_with_mcts @@ -42,6 +41,7 @@ azure_endpoint=AZURE_ENDPOINT, ) else: + from azure.identity import DefaultAzureCredential, get_bearer_token_provider azure_credential = DefaultAzureCredential() token_provider = get_bearer_token_provider(azure_credential, "https://cognitiveservices.azure.com/.default") default_client = AzureOpenAI( From 4df57f7273fba44f09123145d1e6340a37fbae5a Mon Sep 17 00:00:00 2001 From: Peli de Halleux Date: Thu, 19 Sep 2024 04:05:15 +0000 Subject: [PATCH 4/4] docs --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 85813e0c..6259d904 100644 --- a/README.md +++ b/README.md @@ -36,7 +36,10 @@ python3 -m venv .venv source .venv/bin/activate pip install -r requirements.txt ``` -Set up the `OPENAI_API_KEY` environment variable (for OpenAI) or the `AZURE_OPENAI_API_KEY`, `AZURE_API_VERSION` and `AZURE_API_BASE` environment variables (for Azure OpenAI). +Set up the `OPENAI_API_KEY` environment variable (for OpenAI) +or the `AZURE_OPENAI_API_KEY`, `AZURE_API_VERSION` and `AZURE_API_BASE` environment variables (for Azure OpenAI) +or `AZURE_API_VERSION` and `AZURE_API_BASE` environment variables + `az login` for Azure OpenAI with Managed Entra. + You can then run the optillm proxy as follows. ```bash