From 3c840b5fbb98e75a009d2b84566d4eaf72f68731 Mon Sep 17 00:00:00 2001 From: Jorge Peguero <119319498+jorgedoiany@users.noreply.github.com> Date: Wed, 17 Jun 2026 15:17:01 +0000 Subject: [PATCH] fix: replace AzureAIProjectAgentProvider with FoundryChatClient in lesson 09 --- .../09-python-agent-framework.ipynb | 39 +++++++++++---- .../09-python-agent-framework.ipynb | 48 ++++++++++++++----- 2 files changed, 67 insertions(+), 20 deletions(-) diff --git a/09-metacognition/code_samples/09-python-agent-framework.ipynb b/09-metacognition/code_samples/09-python-agent-framework.ipynb index ea1ba9172d..5b64ae6abb 100644 --- a/09-metacognition/code_samples/09-python-agent-framework.ipynb +++ b/09-metacognition/code_samples/09-python-agent-framework.ipynb @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "! pip install agent-framework azure-ai-projects azure-identity -q" + "%pip install agent-framework azure-ai-projects azure-identity python-dotenv -q" ] }, { @@ -40,15 +40,32 @@ "outputs": [], "source": [ "import logging\n", - "logging.getLogger(\"agent_framework.azure\").setLevel(logging.ERROR)\n", + "logging.getLogger(\"agent_framework.foundry\").setLevel(logging.ERROR)\n", "\n", "import os\n", "import asyncio\n", + "import dotenv\n", "from typing import Annotated\n", "\n", "from agent_framework import tool\n", - "from agent_framework.azure import AzureAIProjectAgentProvider\n", - "from azure.identity import AzureCliCredential" + "from agent_framework.foundry import FoundryChatClient\n", + "from azure.identity import DefaultAzureCredential\n", + "\n", + "dotenv.load_dotenv()\n", + "\n", + "endpoint = os.getenv(\"AZURE_AI_PROJECT_ENDPOINT\")\n", + "deployment_name = os.getenv(\"AZURE_AI_MODEL_DEPLOYMENT_NAME\")\n", + "\n", + "missing = [k for k, v in {\n", + " \"AZURE_AI_PROJECT_ENDPOINT\": endpoint,\n", + " \"AZURE_AI_MODEL_DEPLOYMENT_NAME\": deployment_name\n", + "}.items() if not v]\n", + "\n", + "if missing:\n", + " raise ValueError(\n", + " f\"Missing required environment variables: {', '.join(missing)}. \"\n", + " \"Please set them as environment variables (e.g., in your .env file or shell environment).\"\n", + " )" ] }, { @@ -58,8 +75,12 @@ "metadata": {}, "outputs": [], "source": [ - "\n", - "provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())" + "# Create the Azure AI Foundry client\n", + "client = FoundryChatClient(\n", + " project_endpoint=endpoint,\n", + " model=deployment_name,\n", + " credential=DefaultAzureCredential()\n", + ")" ] }, { @@ -150,7 +171,7 @@ "metadata": {}, "outputs": [], "source": [ - "agent = await provider.create_agent(\n", + "agent = client.as_agent(\n", " tools=[get_flight_times, get_flight_times_backup],\n", " name=\"FlightBookingAgent\",\n", " instructions=\"\"\"You are a flight booking agent with self-reflection capabilities.\n", @@ -198,7 +219,7 @@ "metadata": {}, "outputs": [], "source": [ - "evaluation_agent = await provider.create_agent(\n", + "evaluation_agent = client.as_agent(\n", " tools=[get_flight_times, get_flight_times_backup],\n", " name=\"ResponseEvaluator\",\n", " instructions=\"\"\"You are a quality evaluator for travel agent responses.\n", @@ -253,7 +274,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.13" } }, "nbformat": 4, diff --git a/translations/es/09-metacognition/code_samples/09-python-agent-framework.ipynb b/translations/es/09-metacognition/code_samples/09-python-agent-framework.ipynb index a00bc9539c..676a0a3fa7 100644 --- a/translations/es/09-metacognition/code_samples/09-python-agent-framework.ipynb +++ b/translations/es/09-metacognition/code_samples/09-python-agent-framework.ipynb @@ -29,7 +29,7 @@ "metadata": {}, "outputs": [], "source": [ - "! pip install agent-framework azure-ai-projects azure-identity -q" + "%pip install agent-framework azure-ai-projects azure-identity python-dotenv -q" ] }, { @@ -40,15 +40,32 @@ "outputs": [], "source": [ "import logging\n", - "logging.getLogger(\"agent_framework.azure\").setLevel(logging.ERROR)\n", + "logging.getLogger(\"agent_framework.foundry\").setLevel(logging.ERROR)\n", "\n", "import os\n", "import asyncio\n", + "import dotenv\n", "from typing import Annotated\n", "\n", "from agent_framework import tool\n", - "from agent_framework.azure import AzureAIProjectAgentProvider\n", - "from azure.identity import AzureCliCredential" + "from agent_framework.foundry import FoundryChatClient\n", + "from azure.identity import DefaultAzureCredential\n", + "\n", + "dotenv.load_dotenv()\n", + "\n", + "endpoint = os.getenv(\"AZURE_AI_PROJECT_ENDPOINT\")\n", + "deployment_name = os.getenv(\"AZURE_AI_MODEL_DEPLOYMENT_NAME\")\n", + "\n", + "missing = [k for k, v in {\n", + " \"AZURE_AI_PROJECT_ENDPOINT\": endpoint,\n", + " \"AZURE_AI_MODEL_DEPLOYMENT_NAME\": deployment_name\n", + "}.items() if not v]\n", + "\n", + "if missing:\n", + " raise ValueError(\n", + " f\"Missing required environment variables: {', '.join(missing)}. \"\n", + " \"Please set them as environment variables (e.g., in your .env file or shell environment).\"\n", + " )" ] }, { @@ -58,8 +75,12 @@ "metadata": {}, "outputs": [], "source": [ - "\n", - "provider = AzureAIProjectAgentProvider(credential=AzureCliCredential())" + "# Create the Azure AI Foundry client\n", + "client = FoundryChatClient(\n", + " project_endpoint=endpoint,\n", + " model=deployment_name,\n", + " credential=DefaultAzureCredential()\n", + ")" ] }, { @@ -150,7 +171,7 @@ "metadata": {}, "outputs": [], "source": [ - "agent = await provider.create_agent(\n", + "agent = client.as_agent(\n", " tools=[get_flight_times, get_flight_times_backup],\n", " name=\"FlightBookingAgent\",\n", " instructions=\"\"\"You are a flight booking agent with self-reflection capabilities.\n", @@ -198,7 +219,7 @@ "metadata": {}, "outputs": [], "source": [ - "evaluation_agent = await provider.create_agent(\n", + "evaluation_agent = client.as_agent(\n", " tools=[get_flight_times, get_flight_times_backup],\n", " name=\"ResponseEvaluator\",\n", " instructions=\"\"\"You are a quality evaluator for travel agent responses.\n", @@ -240,7 +261,12 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "---\n\n\n**Aviso Legal**:\nEste documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables por malentendidos o interpretaciones erróneas que puedan derivarse del uso de esta traducción.\n\n" + "---\n", + "\n", + "\n", + "**Aviso Legal**:\n", + "Este documento ha sido traducido utilizando el servicio de traducción automática [Co-op Translator](https://github.com/Azure/co-op-translator). Aunque nos esforzamos por la precisión, tenga en cuenta que las traducciones automáticas pueden contener errores o inexactitudes. El documento original en su idioma nativo debe considerarse la fuente autorizada. Para información crítica, se recomienda la traducción profesional realizada por humanos. No nos hacemos responsables por malentendidos o interpretaciones erróneas que puedan derivarse del uso de esta traducción.\n", + "\n" ] } ], @@ -260,9 +286,9 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.12.0" + "version": "3.12.13" } }, "nbformat": 4, "nbformat_minor": 5 -} \ No newline at end of file +}