Skip to content

Commit

Permalink
Added zero to prod gifs and updated main readme
Browse files Browse the repository at this point in the history
  • Loading branch information
vieiraae committed Feb 7, 2025
1 parent 1c76ab0 commit c97d370
Show file tree
Hide file tree
Showing 3 changed files with 36 additions and 26 deletions.
62 changes: 36 additions & 26 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,8 @@

## What's new ✨

➕ the [**Zero-to-Production**](labs/zero-to-production/zero-to-production.ipynb) lab with an iterative policy exploration to fine-tune the optimal production configuration.
➕ the [**Terraform flavor of backend pool load balancing**](labs/backend-pool-load-balancing-tf/backend-pool-load-balancing-tf.ipynb) lab.
➕ the [**AI Foundry SDK**](labs/ai-foundry-sdk/ai-foundry-sdk.ipynb) lab.
➕ the [**Content filtering**](labs/content-filtering/content-filtering.ipynb) and [**Prompt shielding**](labs/content-filtering/prompt-shielding.ipynb) labs.
➕ the [**Model routing**](labs/model-routing/model-routing.ipynb) lab with OpenAI model based routing.
Expand Down Expand Up @@ -47,13 +49,13 @@ Acknowledging the rising dominance of Python, particularly in the realm of AI, a
These labs are currently recommended after which to model your workloads.

<!-- Backend pool load balancing -->
#### [**🧪 Backend pool load balancing**](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb) (built-in)
#### [**🧪 Backend pool load balancing**](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb) - Available with [Bicep](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb) and [Terraform](labs/backend-pool-load-balancing-tf/backend-pool-load-balancing-tf.ipynb)

Playground to try the built-in load balancing [backend pool functionality of Azure API Management](https://learn.microsoft.com/azure/api-management/backends?tabs=bicep) to either a list of Azure OpenAI endpoints or mock servers.
Playground to try the built-in load balancing [backend pool functionality of Azure API Management](https://learn.microsoft.com/azure/api-management/backends?tabs=bicep) to either a list of Azure OpenAI endpoints or mock servers.

[<img src="images/backend-pool-load-balancing-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb)

[🦾 Bicep](labs/backend-pool-load-balancing/main.bicep)[⚙️ Policy](labs/backend-pool-load-balancing/policy.xml)[🧾 Notebook](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb) 🟰 [💬](../../issues/16 "Feedback loop discussion")
[🦾 Bicep](labs/backend-pool-load-balancing/main.bicep)[⚙️ Policy](labs/backend-pool-load-balancing/policy.xml)[🧾 Notebook](labs/backend-pool-load-balancing/backend-pool-load-balancing.ipynb)

<!-- Token rate limiting -->
#### [**🧪 Token rate limiting**](labs/token-rate-limiting/token-rate-limiting.ipynb)
Expand All @@ -62,7 +64,7 @@ Playground to try the [token rate limiting policy](https://learn.microsoft.com/a

[<img src="images/token-rate-limiting-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/token-rate-limiting/token-rate-limiting.ipynb)

[🦾 Bicep](labs/token-rate-limiting/main.bicep)[⚙️ Policy](labs/token-rate-limiting/policy.xml)[🧾 Notebook](labs/token-rate-limiting/token-rate-limiting.ipynb) 🟰 [💬](../../issues/26 "Feedback loop discussion")
[🦾 Bicep](labs/token-rate-limiting/main.bicep)[⚙️ Policy](labs/token-rate-limiting/policy.xml)[🧾 Notebook](labs/token-rate-limiting/token-rate-limiting.ipynb)

<!-- Token metrics emitting -->
#### [**🧪 Token metrics emitting**](labs/token-metrics-emitting/token-metrics-emitting.ipynb)
Expand All @@ -71,7 +73,7 @@ Playground to try the [emit token metric policy](https://learn.microsoft.com/azu

[<img src="images/token-metrics-emitting-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/token-metrics-emitting/token-metrics-emitting.ipynb)

[🦾 Bicep](labs/token-metrics-emitting/main.bicep)[⚙️ Policy](labs/token-metrics-emitting/policy.xml)[🧾 Notebook](labs/token-metrics-emitting/token-metrics-emitting.ipynb) 🟰 [💬](../../issues/28 "Feedback loop discussion")
[🦾 Bicep](labs/token-metrics-emitting/main.bicep)[⚙️ Policy](labs/token-metrics-emitting/policy.xml)[🧾 Notebook](labs/token-metrics-emitting/token-metrics-emitting.ipynb)

<!-- Semantic caching -->
#### [**🧪 Semantic caching**](labs/semantic-caching/semantic-caching.ipynb)
Expand All @@ -80,7 +82,7 @@ Playground to try the [semantic caching policy](https://learn.microsoft.com/azur

[<img src="images/semantic-caching-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/semantic-caching/semantic-caching.ipynb)

[🦾 Bicep](labs/semantic-caching/main.bicep)[⚙️ Policy](labs/semantic-caching/policy.xml)[🧾 Notebook](labs/semantic-caching/semantic-caching.ipynb) 🟰 [💬](../../issues/27 "Feedback loop discussion")
[🦾 Bicep](labs/semantic-caching/main.bicep)[⚙️ Policy](labs/semantic-caching/policy.xml)[🧾 Notebook](labs/semantic-caching/semantic-caching.ipynb)

<!-- Access controlling -->
#### [**🧪 Access controlling**](labs/access-controlling/access-controlling.ipynb)
Expand All @@ -89,7 +91,16 @@ Playground to try the [OAuth 2.0 authorization feature](https://learn.microsoft.

[<img src="images/access-controlling-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/access-controlling/access-controlling.ipynb)

[🦾 Bicep](labs/access-controlling/main.bicep)[⚙️ Policy](labs/access-controlling/policy.xml)[🧾 Notebook](labs/access-controlling/access-controlling.ipynb) 🟰 [💬](../../issues/25 "Feedback loop discussion")
[🦾 Bicep](labs/access-controlling/main.bicep)[⚙️ Policy](labs/access-controlling/policy.xml)[🧾 Notebook](labs/access-controlling/access-controlling.ipynb)

<!-- zero-to-production -->
#### [**🧪 Zero-to-Production**](labs/zero-to-production/zero-to-production.ipynb)

Playground to create a combination of several policies in an iterative approach. We start with load balancing, then progressively add token emitting, rate limiting, and, eventually, semantic caching. Each of these sets of policies is derived from other labs in this repo.

[<img src="images/zero-to-production.gif" alt="flow" style="width: 537px; display: inline-block;" data-target="animated-image.originalImage">](labs/zero-to-production/zero-to-production.ipynb)

[🦾 Bicep](labs/zero-to-production/main.bicep)[⚙️ Policy](labs/zero-to-production/policy-3.xml)[🧾 Notebook](labs/zero-to-production/zero-to-production.ipynb)

<!-- GPT-4o inferencing -->
#### [**🧪 GPT-4o inferencing**](labs/GPT-4o-inferencing/GPT-4o-inferencing.ipynb)
Expand All @@ -98,7 +109,7 @@ Playground to try the new GPT-4o model. GPT-4o ("o" for "omni") is designed to h

[<img src="images/GPT-4o-inferencing-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/GPT-4o-inferencing/GPT-4o-inferencing.ipynb)

[🦾 Bicep](labs/GPT-4o-inferencing/main.bicep)[⚙️ Policy](labs/GPT-4o-inferencing/policy.xml)[🧾 Notebook](labs/GPT-4o-inferencing/GPT-4o-inferencing.ipynb) 🟰 [💬](../../issues/29 "Feedback loop discussion")
[🦾 Bicep](labs/GPT-4o-inferencing/main.bicep)[⚙️ Policy](labs/GPT-4o-inferencing/policy.xml)[🧾 Notebook](labs/GPT-4o-inferencing/GPT-4o-inferencing.ipynb)

<!-- Function calling -->
#### [**🧪 Function calling**](labs/function-calling/function-calling.ipynb)
Expand All @@ -107,7 +118,7 @@ Playground to try the OpenAI [function calling](https://learn.microsoft.com/azur

[<img src="images/function-calling-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/function-calling/function-calling.ipynb)

[🦾 Bicep](labs/function-calling/main.bicep)[⚙️ Policy](labs/function-calling/policy.xml)[🧾 Notebook](labs/function-calling/function-calling.ipynb) 🟰 [💬](../../issues/36 "Feedback loop discussion")
[🦾 Bicep](labs/function-calling/main.bicep)[⚙️ Policy](labs/function-calling/policy.xml)[🧾 Notebook](labs/function-calling/function-calling.ipynb)

<!-- Model Routing -->
#### [**🧪 Model Routing**](labs/model-routing/model-routing.ipynb)
Expand All @@ -116,16 +127,15 @@ Playground to try routing to a backend based on Azure OpenAI model and version.

[<img src="images/model-routing-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/model-routing/model-routing.ipynb)

[🦾 Bicep](labs/model-routing/main.bicep)[⚙️ Policy](labs/model-routing/policy.xml)[🧾 Notebook](labs/model-routing/model-routing.ipynb) 🟰 [💬](../../issues/37 "Feedback loop discussion")

[🦾 Bicep](labs/model-routing/main.bicep)[⚙️ Policy](labs/model-routing/policy.xml)[🧾 Notebook](labs/model-routing/model-routing.ipynb)
<!-- Response streaming -->
#### [**🧪 Response streaming**](labs/response-streaming/response-streaming.ipynb)

Playground to try response streaming with Azure API Management and Azure OpenAI endpoints to explore the advantages and shortcomings associated with [streaming](https://learn.microsoft.com/azure/api-management/how-to-server-sent-events#guidelines-for-sse).

[<img src="images/response-streaming-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/response-streaming/response-streaming.ipynb)

[🦾 Bicep](labs/response-streaming/main.bicep)[⚙️ Policy](labs/response-streaming/policy.xml)[🧾 Notebook](labs/response-streaming/response-streaming.ipynb) 🟰 [💬](../../issues/18 "Feedback loop discussion")
[🦾 Bicep](labs/response-streaming/main.bicep)[⚙️ Policy](labs/response-streaming/policy.xml)[🧾 Notebook](labs/response-streaming/response-streaming.ipynb)

<!-- Vector searching -->
#### [**🧪 Vector searching**](labs/vector-searching/vector-searching.ipynb)
Expand All @@ -134,7 +144,7 @@ Playground to try the [Retrieval Augmented Generation (RAG) pattern](https://lea

[<img src="images/vector-searching-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/vector-searching/vector-searching.ipynb)

[🦾 Bicep](labs/vector-searching/main.bicep)[⚙️ Policy](labs/vector-searching/policy.xml)[🧾 Notebook](labs/vector-searching/vector-searching.ipynb) 🟰 [💬](../../issues/19 "Feedback loop discussion")
[🦾 Bicep](labs/vector-searching/main.bicep)[⚙️ Policy](labs/vector-searching/policy.xml)[🧾 Notebook](labs/vector-searching/vector-searching.ipynb)

<!-- Built-in logging -->
#### [**🧪 Built-in logging**](labs/built-in-logging/built-in-logging.ipynb)
Expand All @@ -143,7 +153,7 @@ Playground to try the [buil-in logging capabilities of Azure API Management](htt

[<img src="images/built-in-logging-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/built-in-logging/built-in-logging.ipynb)

[🦾 Bicep](labs/built-in-logging/main.bicep)[⚙️ Policy](labs/built-in-logging/policy.xml)[🧾 Notebook](labs/built-in-logging/built-in-logging.ipynb) 🟰 [💬](../../issues/20 "Feedback loop discussion")
[🦾 Bicep](labs/built-in-logging/main.bicep)[⚙️ Policy](labs/built-in-logging/policy.xml)[🧾 Notebook](labs/built-in-logging/built-in-logging.ipynb)

<!-- SLM self-hosting -->
#### [**🧪 SLM self-hosting**](labs/slm-self-hosting/slm-self-hosting.ipynb) (phy-3)
Expand All @@ -152,7 +162,7 @@ Playground to try the self-hosted [phy-3 Small Language Model (SLM)](https://azu

[<img src="images/slm-self-hosting-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/slm-self-hosting/slm-self-hosting.ipynb)

[🦾 Bicep](labs/slm-self-hosting/main.bicep)[⚙️ Policy](labs/slm-self-hosting/policy.xml)[🧾 Notebook](labs/slm-self-hosting/slm-self-hosting.ipynb) 🟰 [💬](../../issues/21 "Feedback loop discussion")
[🦾 Bicep](labs/slm-self-hosting/main.bicep)[⚙️ Policy](labs/slm-self-hosting/policy.xml)[🧾 Notebook](labs/slm-self-hosting/slm-self-hosting.ipynb)

<!-- Message storing -->
#### [**🧪 Message storing**](labs/message-storing/message-storing.ipynb)
Expand All @@ -161,7 +171,7 @@ Playground to test storing message details into Cosmos DB through the [Log to ev

[<img src="images/message-storing-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/message-storing/message-storing.ipynb)

[🦾 Bicep](labs/message-storing/main.bicep)[⚙️ Policy](labs/message-storing/policy.xml)[🧾 Notebook](labs/message-storing/message-storing.ipynb) 🟰 [💬](../../issues/34 "Feedback loop discussion")
[🦾 Bicep](labs/message-storing/main.bicep)[⚙️ Policy](labs/message-storing/policy.xml)[🧾 Notebook](labs/message-storing/message-storing.ipynb)

<!-- Developer tooling -->
<!-- #### [**🧪 Developer tooling** (WIP)](labs/developer-tooling/developer-tooling.ipynb)
Expand All @@ -170,7 +180,7 @@ Playground to try the developer tooling available with Azure API Management to d
[<img src="images/developer-tooling-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/developer-tooling/developer-tooling.ipynb)
[🦾 Bicep](labs/developer-tooling/main.bicep) ➕ [⚙️ Policy](labs/developer-tooling/policy.xml) ➕ [🧾 Notebook](labs/developer-tooling/developer-tooling.ipynb) 🟰 [💬](../../issues/35 "Feedback loop discussion") -->
[🦾 Bicep](labs/developer-tooling/main.bicep) ➕ [⚙️ Policy](labs/developer-tooling/policy.xml) ➕ [🧾 Notebook](labs/developer-tooling/developer-tooling.ipynb) -->

<!-- Prompt flow -->
#### [**🧪 Prompt flow**](labs/prompt-flow/prompt-flow.ipynb)
Expand All @@ -179,7 +189,7 @@ Playground to try the [Azure AI Studio Prompt Flow](https://learn.microsoft.com/

[<img src="images/prompt-flow-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/prompt-flow/prompt-flow.ipynb)

[🦾 Bicep](labs/prompt-flow/main.bicep)[⚙️ Policy](labs/prompt-flow/policy.xml)[🧾 Notebook](labs/prompt-flow/prompt-flow.ipynb) 🟰 [💬](../../issues/38 "Feedback loop discussion")
[🦾 Bicep](labs/prompt-flow/main.bicep)[⚙️ Policy](labs/prompt-flow/policy.xml)[🧾 Notebook](labs/prompt-flow/prompt-flow.ipynb)

<!-- Content Filtering -->
#### [**🧪 Content Filtering**](labs/content-filtering/content-filtering.ipynb)
Expand All @@ -188,7 +198,7 @@ Playground to try integrating Azure API Management with [Azure AI Content Safety

[<img src="images/content-filtering-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/content-filtering/content-filtering.ipynb)

[🦾 Bicep](labs/content-filtering/main.bicep)[⚙️ Policy](labs/content-filtering/content-filtering-policy.xml)[🧾 Notebook](labs/content-filtering/content-filtering.ipynb) 🟰 [💬](../../issues/52 "Feedback loop discussion")
[🦾 Bicep](labs/content-filtering/main.bicep)[⚙️ Policy](labs/content-filtering/content-filtering-policy.xml)[🧾 Notebook](labs/content-filtering/content-filtering.ipynb)

<!-- Prompt Shielding -->
#### [**🧪 Prompt Shielding**](labs/content-filtering/prompt-shielding.ipynb)
Expand All @@ -197,7 +207,7 @@ Playground to try Prompt Shields from Azure AI Content Safety service that analy

[<img src="images/content-filtering-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/content-filtering/prompt-shielding.ipynb)

[🦾 Bicep](labs/content-filtering/main.bicep)[⚙️ Policy](labs/content-filtering/prompt-shield-policy.xml)[🧾 Notebook](labs/content-filtering/prompt-shielding.ipynb) 🟰 [💬](../../issues/53 "Feedback loop discussion")
[🦾 Bicep](labs/content-filtering/main.bicep)[⚙️ Policy](labs/content-filtering/prompt-shield-policy.xml)[🧾 Notebook](labs/content-filtering/prompt-shielding.ipynb)

### Deprecated Labs

Expand All @@ -210,17 +220,18 @@ Playground to try the advanced load balancing (based on a custom [Azure API Mana

[<img src="images/advanced-load-balancing-small.gif" alt="flow" style="width: 437px; display: inline-block;" data-target="animated-image.originalImage">](labs/advanced-load-balancing/advanced-load-balancing.ipynb)

[🦾 Bicep](labs/advanced-load-balancing/main.bicep)[⚙️ Policy](labs/advanced-load-balancing/policy.xml)[🧾 Notebook](labs/advanced-load-balancing/advanced-load-balancing.ipynb) 🟰 [💬](../../issues/17 "Feedback loop discussion")
[🦾 Bicep](labs/advanced-load-balancing/main.bicep)[⚙️ Policy](labs/advanced-load-balancing/policy.xml)[🧾 Notebook](labs/advanced-load-balancing/advanced-load-balancing.ipynb)

### Backlog of Labs

This is a list of potential future labs to be developed.

* Assistants load balancing
* Real Time API
* Semantic Kernel with Agents
* Logic Apps RAG
* Semantic Kernel plugin
* PII handling
* Llama inferencing
* AI Foundry with Deepseek R1
* Gemini

> [!TIP]
> Kindly use [the feedback discussion](../../discussions/9) so that we can continuously improve with your experiences, suggestions, ideas or lab requests.
Expand All @@ -232,8 +243,7 @@ This is a list of potential future labs to be developed.
* [Python 3.12 or later version](https://www.python.org/) installed
* [VS Code](https://code.visualstudio.com/) installed with the [Jupyter notebook extension](https://marketplace.visualstudio.com/items?itemName=ms-toolsai.jupyter) enabled
* [Azure CLI](https://learn.microsoft.com/cli/azure/install-azure-cli) installed
* [An Azure Subscription](https://azure.microsoft.com/free/) with Contributor permissions
* [Access granted to Azure OpenAI](https://aka.ms/oai/access) or just enable the mock service
* [An Azure Subscription](https://azure.microsoft.com/free/) with Owner or Contributor+UserAccessAdministrator permissions
* [Sign in to Azure with Azure CLI](https://learn.microsoft.com/cli/azure/authenticate-azure-cli-interactively)

### Quickstart
Expand Down
Binary file added images/zero-to-production-small.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added images/zero-to-production.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit c97d370

Please sign in to comment.