Skip to content

Latest commit

 

History

History
181 lines (154 loc) · 11.6 KB

File metadata and controls

181 lines (154 loc) · 11.6 KB

Changelog

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.

[2026-07-16] — Content Validation + Lesson 09 Image Assets

Changed

  • Lesson 10 (low-code AI apps): updated two retired docs.microsoft.com/powerapps/... Dataverse links to the current learn.microsoft.com/power-apps/maker/data-platform/data-platform-intro (verified live).
  • Lesson 17 (AI agents): modernized a dated model example (GPT-3.5, GPT-4, Llama-2GPT-5, GPT-4o, and Llama 3.3) and a placeholder deployment name in the Agent Framework sample (my-gpt-4o-deploymentmy-gpt-5-mini-deployment).
  • Root README.md: added the missing ?WT.mc_id=academic-105485-koreyst tracking ID to the Microsoft for Startups link.
  • Lesson 09 image assets regenerated with the gpt-image model: images/generated-image.png, images/sunlit_lounge.png, images/mask.png, images/sunlit_lounge_result.png, and images/startup.png (the editing example's before/after pair was produced via a real client.images.edit call with a generated mask).

Validated

  • Audited the READMEs for lessons 01, 03, 05, 12, 14, and 16 — all current (correct Microsoft Foundry naming and links); no changes required.
  • Ran a full markdown validation across all 41 in-repo markdown files (translations excluded) for deprecated doc paths, /en-us/ Microsoft locales, outdated product/model names, missing tracking IDs, and broken relative links/images. Only the single Microsoft for Startups tracking-ID gap was actionable; all other flags were confirmed false positives (auto-generated translation links, commented-out placeholders, and third-party /en/ structural URLs).

[2026-07-15] — Lesson 09 (Image Applications) Rewrite for GPT Image Models

Changed

  • Rewrote lesson 09 "Building Image Generation Applications" around the current gpt-image model family (default gpt-image-2; gpt-image-1.5 / gpt-image-1-mini also GA), replacing the legacy DALL·E 2/3 content. Key corrections:
    • gpt-image models return the image as base64 (b64_json), not a URL. Updated all samples to base64.b64decode(...) instead of downloading a url with requests.
    • Bumped the image API version to 2025-04-01-preview.
    • Replaced the fabricated "temperature" section (image models don't take temperature) and the DALL·E-2-only image variations content with an image editing (mask/inpainting) section.
    • Updated README.md, python/aoai-app.py, python/oai-app.py, python/aoai-solution.py, both assignment notebooks (aoai-assignment.ipynb, oai-assignment.ipynb), typescript/image-generation-app (main.ts, .env-sample), and the .NET .dib notebook.

Removed

  • Deleted the obsolete python/aoai-app-variation.py and python/oai-app-variation.py samples (images.create_variation is DALL·E-2-only and unsupported by gpt-image).
  • Deleted 4 orphaned image assets tied to the removed temperature-comparison section (v1-generated-image.png, v2-generated-image.png, v1-temp-generated-image.png, v2-temp-generated-image.png).
  • Dropped the unnecessary requests dependency from the lesson's Python samples and requirements.

Validated

  • Ran aoai-app.py end-to-end against a deployed gpt-image-1.5 model and confirmed the base64 decode/save flow produces a PNG. Notebooks confirmed to be valid JSON.

[2026-07-14] — Default Model Update + Reasoning-Model Guidance

Changed

  • Default chat model gpt-4o-minigpt-5-mini across the curriculum's runnable samples, docs, and configuration. This was driven by model lifecycle status: on Microsoft Foundry, gpt-4o-mini (retires 2026-10-01) and the entire gpt-4.1 family (gpt-4.1, gpt-4.1-mini, gpt-4.1-nano, retire 2026-10-14) are Deprecating, whereas the GPT-5 family (gpt-5-mini, gpt-5, gpt-5-nano) is Generally Available (retires 2027-02-06). Updated:
    • .env.copy, 00-course-setup/03-providers.md (recommended deployment and az cognitiveservices deploy commands), and the READMEs for lessons 04, 06, 07, and 15.
    • Python samples in lesson 06 (oai-app.py, oai-app-recipe.py, oai-history-bot.py, oai-study-buddy.py, githubmodels-app.py) and lesson 08 scripts.
    • TypeScript / JavaScript samples in lessons 06, 07, and 11, and the .dib .NET notebooks for lessons 06 and 07.
    • Assignment notebooks in lessons 04, 06, 07, and 11 (code cells), plus shared/python/api_utils.py docstring examples.
  • Reasoning-model parameter guidance (new). gpt-5-mini is a reasoning model: it does not support temperature/top_p, and uses max_completion_tokens (chat completions) / max_output_tokens (Responses API) instead of max_tokens. Accordingly:
    • Removed temperature/top_p/max_tokens from samples that now default to gpt-5-mini (githubmodels-app.py, aoai-app-recipe.py, oai-app-recipe.py, lesson 15 RAG README).
    • Added a "Reasoning models don't use temperature" note to lesson 06, explaining that reasoning models are steered with prompt engineering + reasoning controls rather than sampling knobs, while temperature/top_p remain valid on non-reasoning models (GPT-4.x, Mistral, Llama, Phi, open models).
  • gpt-5-mini is not used for the fine-tuning tutorial (lesson 18). GPT-5 only supports reinforcement fine-tuning (RFT); the lesson 18 supervised fine-tuning (SFT) walkthrough keeps gpt-4.1-mini, which supports SFT/DPO.
  • Temperature demos use a Llama model. To keep teaching temperature (which reasoning models reject), a Llama-3.3-70B-Instruct model is used via the Foundry Models endpoint. Added a new AZURE_INFERENCE_CHAT_MODEL variable to .env.copy; the lesson 04/06 githubmodels notebooks and the 06 js-githubmodels sample read it (falling back to Llama-3.3-70B-Instruct) and keep their temperature/top_p/max_tokens demos.
  • JS / .NET samples updated for GPT-5. Removed temperature/top_p/max_tokens from the GPT-5 samples (06 recipe-app TypeScript, 06 .dib .NET - which also raises MaxOutputTokenCount so reasoning output isn't truncated). The 06 js-githubmodels sample now uses Llama to keep its temperature demo. The .dib notes that Azure.AI.Inference + a Llama model is the way to demonstrate Temperature in .NET.
  • Left gpt-4o-mini / gpt-5-mini in place where they remain accurate: tiktoken token-encoding references, model-catalog availability lists, and lesson 02 speech models (gpt-4o-transcribe).
  • The lesson 20 (Mistral) and 21 (Meta) samples keep temperature/max_tokens because they target Mistral/Llama models, which support those parameters.

[2026-07-06] — Content Modernization Refresh

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.

Added

  • Microsoft Agent Framework section in lesson 17-ai-agents covering 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.md and lesson 19-slm.
  • Continuous integration workflows:
    • .github/workflows/code-quality.yml — Ruff + Black (enforced on the maintained shared/ 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.

Changed

  • 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_CREDENTIAL environment 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 to 2024-10-21.
  • TypeScript samples (lessons 06, 07, 08, 11) migrated off the deprecated @azure/openai beta SDK to the openai package (chat apps use the Responses API; the search app uses the embeddings client).
  • .NET notebooks (dotnet/*.dib) standardized on Azure.AI.OpenAI 2.1.0: lessons 06 and 07 use the ChatClient API, lesson 08 uses EmbeddingClient (GenerateEmbedding / ToFloats), and lesson 09 uses ImageClient (GenerateImage) with gpt-image-1, replacing the legacy OpenAIClient / GetEmbeddingsAsync / GetImageGenerationsAsync from 1.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 installs ruff, black, mypy, and pytest so the CI checks can be reproduced locally.
  • Image generation (lesson 09) recommends gpt-image-1 for Azure (the Azure catalog dropped dall-e-3).
  • docs/ENHANCED_FEATURES_ROADMAP.md updated 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).

Fixed

  • shared/python/input_validation.pyvalidate_text_input(allow_empty=True) now returns an empty string for whitespace-only input instead of raising a "too short" error (consistent with the None case). Found and covered by the new test suite.
  • Lesson 09 image samples — corrected real bugs: InvalidRequestErrorBadRequestError, images.createimages.generate, Image.create_variationclient.images.create_variation, and a variable that shadowed the openai module.
  • Lesson 15 RAG notebook — repaired the client setup, replaced the removed DataFrame.append with pd.concat, and modernized the legacy SDK usage.
  • Deprecated / retired model names (gpt-3.5-turbo, gpt-35-turbo) replaced with gpt-4o-mini in active samples; historical fine-tuning outputs in lesson 18 were preserved and annotated rather than rewritten.

Deprecated / Notes

  • Microsoft Foundry Models samples that use the azure-ai-inference / @azure-rest/ai-inference SDK (client.complete()) — the githubmodels-* and js-githubmodels samples 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-002 references are kept where a precomputed embedding index depends on them.