All notable changes to the Generative AI for Beginners curriculum are documented in this file.
The format is based on Keep a Changelog. Because this is a learning curriculum rather than a versioned software package, entries are grouped by date.
A broad refresh to keep the curriculum accurate for 2026: modern APIs, current product names and model names, updated provider guidance, and new developer-experience tooling.
- Microsoft Agent Framework section in lesson
17-ai-agentscovering single chat agents, tools/function calling, Azure OpenAI (Microsoft Foundry) configuration, and multi-agent workflow orchestration (SequentialBuilder/ConcurrentBuilder). - Foundry Local documented as an offline / on-device provider (alongside Ollama) in
00-course-setup/03-providers.mdand lesson19-slm. - Continuous integration workflows:
.github/workflows/code-quality.yml— Ruff + Black (enforced on the maintainedshared/module, advisory across the rest of the curriculum), an advisory ESLint pass, and a pytest job..github/workflows/security.yml— CodeQL analysis (Python + JavaScript/TypeScript) and dependency review on pull requests.
- Test suite under
tests/— 41 pytest tests covering the shared utility module. - Azure OpenAI → Responses API migration skill under
.github/skills/azure-openai-to-responses/used to guide the API migration.
- Chat Completions API → Responses API across all Python and TypeScript chat samples
(
client.responses.create(...)→response.output_text), including lessons 04, 06, 07, 11, 15, and 18, plus their READMEs. - GitHub Models → Microsoft Foundry Models throughout prose, links, and samples. GitHub Models
retires at the end of July 2026; samples now point to the Microsoft Foundry model catalog and use
the
AZURE_INFERENCE_ENDPOINT/AZURE_INFERENCE_CREDENTIALenvironment variables. .env.copy,AGENTS.md, and provider docs updated to reflect that Azure OpenAI is now part of Microsoft Foundry, and the default API version bumped to2024-10-21.- TypeScript samples (lessons 06, 07, 08, 11) migrated off the deprecated
@azure/openaibeta SDK to theopenaipackage (chat apps use the Responses API; the search app uses the embeddings client). - .NET notebooks (
dotnet/*.dib) standardized onAzure.AI.OpenAI2.1.0: lessons 06 and 07 use theChatClientAPI, lesson 08 usesEmbeddingClient(GenerateEmbedding/ToFloats), and lesson 09 usesImageClient(GenerateImage) withgpt-image-1, replacing the legacyOpenAIClient/GetEmbeddingsAsync/GetImageGenerationsAsyncfrom1.0.0-beta.9. - Product-name modernization: "Azure AI Studio" / "Azure AI Foundry" → Microsoft Foundry (lessons 14, 16, 17) and "Bing" → Microsoft Copilot (lesson 12), where those referred to the current products.
- DevContainer (
.devcontainer/) now ships Pylance, Black, Ruff, ESLint, Prettier, and Copilot extensions, enables format-on-save, and installsruff,black,mypy, andpytestso the CI checks can be reproduced locally. - Image generation (lesson 09) recommends
gpt-image-1for Azure (the Azure catalog droppeddall-e-3). docs/ENHANCED_FEATURES_ROADMAP.mdupdated to reflect completed work (API migration, CI, DevContainer, tests) and current facts (translations are produced automatically by the Azure Co-op Translator; the Assistants API is superseded by the Responses API).
shared/python/input_validation.py—validate_text_input(allow_empty=True)now returns an empty string for whitespace-only input instead of raising a "too short" error (consistent with theNonecase). Found and covered by the new test suite.- Lesson 09 image samples — corrected real bugs:
InvalidRequestError→BadRequestError,images.create→images.generate,Image.create_variation→client.images.create_variation, and a variable that shadowed theopenaimodule. - Lesson 15 RAG notebook — repaired the client setup, replaced the removed
DataFrame.appendwithpd.concat, and modernized the legacy SDK usage. - Deprecated / retired model names (
gpt-3.5-turbo,gpt-35-turbo) replaced withgpt-4o-miniin active samples; historical fine-tuning outputs in lesson 18 were preserved and annotated rather than rewritten.
- Microsoft Foundry Models samples that use the
azure-ai-inference/@azure-rest/ai-inferenceSDK (client.complete()) — thegithubmodels-*andjs-githubmodelssamples and lessons 19, 20, and 21 — remain on the Model Inference API, which does not support the Responses API. These are intentionally left on that SDK. AzureOpenAI()is intentionally retained where still appropriate (embeddings and image generation), as those workflows are not part of the Responses API migration.text-embedding-ada-002references are kept where a precomputed embedding index depends on them.