Add doc about how to use aad for model client (#38)

* Add doc about how to use aad for model client

* update after testing
This commit is contained in:
Jack Gerrits 2024-06-03 16:06:04 -04:00 committed by GitHub
parent a97703e441
commit 7bfd182a0f
4 changed files with 51 additions and 2 deletions

View File

@ -17,7 +17,8 @@ extensions = [
"sphinx.ext.autodoc",
"sphinx.ext.autosummary",
"sphinx.ext.napoleon",
"sphinxcontrib.apidoc"
"sphinxcontrib.apidoc",
"myst_parser"
]
apidoc_module_dir = '../../src/agnext'

View File

@ -0,0 +1,41 @@
# Azure OpenAI with AAD Auth
This guide will show you how to use the Azure OpenAI client with Azure Active Directory (AAD) authentication.
The identity used must be assigned the [**Cognitive Services OpenAI User**](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/role-based-access-control#cognitive-services-openai-user) role.
## Install Azure Identity client
The Azure identity client is used to authenticate with Azure Active Directory.
```sh
pip install azure-identity
```
## Using the Model Client
```python
from agnext.agent_components.model_client import AzureOpenAI
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
# Create the token provider
token_provider = get_bearer_token_provider(
DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default"
)
client = AzureOpenAI(
model="{your-azure-deployment}",
api_version="2024-02-01",
azure_endpoint="https://{your-custom-endpoint}.openai.azure.com/",
azure_ad_token_provider=token_provider,
model_capabilities={
"vision":True,
"function_calling":True,
"json_output":True,
}
)
```
```{note}
See [here](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/managed-identity#chat-completions) for how to use the Azure client directly or for more info.
```

View File

@ -1,6 +1,13 @@
agnext
------
.. toctree::
:caption: Guides
:hidden:
guides/azure_openai_with_aad_auth
.. toctree::
:caption: Reference
:hidden:

View File

@ -32,7 +32,7 @@ dev = [
"types-Pillow",
"polars",
]
docs = ["sphinx", "furo", "sphinxcontrib-apidoc"]
docs = ["sphinx", "furo", "sphinxcontrib-apidoc", "myst-parser"]
[tool.setuptools.package-data]
agnext = ["py.typed"]