GitHub Models 即将退役:如何把 generative-ai-for-beginners 的练习迁移到 Microsoft Foundry Models
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
generative-ai-for-beginners课程里带githubmodels标签的练习(Python 脚本与 Jupyter Notebook)原来依赖 GitHub Models 的端点和GITHUB_TOKEN。根据 00-course-setup/03-providers.md 的说明,GitHub Models 将于 2026 年 7 月底退役,其直接替代品是 Microsoft Foundry Models——同一个免费模型目录,配合 Azure AI Inference SDK / OpenAI SDK 的用法不变。本文的任务就一条:把练习的凭据配置从 GitHub Models 换成 Microsoft Foundry Models 的端点和 API key,并验证替换后的脚本可以正常运行。适用对象是已经在本地或 Codespaces 跑过本课程的开发者;如果你希望完全离线运行,文档另行指向 Foundry Local / Ollama 路线,不属于本次迁移范围。
退役时间线与需要变更的内容
先明确迁移边界,以下事实均来自课程文档:
- GitHub Models(及其
GITHUB_TOKEN变量)于 2026 年 7 月底退役(见 00-course-setup/02-setup-local.md 与 00-course-setup/README.md 中的 Note)。 - Microsoft Foundry Models 提供与 GitHub Models 相同的免费试用模型目录和 Azure AI Inference SDK / OpenAI SDK 体验,用「一个 endpoint + 一个 API key」访问 OpenAI、Meta、Mistral、Cohere、Microsoft 等数百个模型。
- 练习文件的命名标签不变:带
githubmodels标签的文件现在要求的是Microsoft Foundry Models 的 endpoint 和 key(见 00-course-setup/03-providers.md 中 provider 标签说明)。也就是说你不需要重命名或改写练习文件,只需要换掉环境变量。 - 未配置凭据时的行为有明确说明:相关练习会直接因缺少凭据而报错,不会静默跳过。
第一步:在 Foundry portal 获取 endpoint 和 API key
按 00-course-setup/03-providers.md 中「Configure Microsoft Foundry Models: From Portal」一节的官方步骤操作:
- 进入 Microsoft Foundry 门户(
ai.azure.com),创建(或打开)一个 Foundry project。 - 浏览 model catalog,部署一个模型,例如
gpt-4o-mini。 - 在项目Overview页面,复制endpoint和API key。
- 在
.env文件中,把 endpoint 值填给AZURE_INFERENCE_ENDPOINT,把 key 值填给AZURE_INFERENCE_CREDENTIAL。
文档同时注明 Microsoft Foundry 提供 Free tier,即「一个 endpoint + key 可访问多个模型供应商」。
第二步:更新 .env 文件
仓库根目录提供.env.copy模板,其中已包含 Microsoft Foundry Models 的注释块(引自 00-course-setup/03-providers.md):
## Microsoft Foundry Models (multi-provider model catalog, replaces GitHub Models, which retires end of July 2026) AZURE_INFERENCE_ENDPOINT='<add your Microsoft Foundry project endpoint here>' AZURE_INFERENCE_CREDENTIAL='<add your Microsoft Foundry Models API key here>'两种落地方式,任选其一:
方式一(推荐):基于模板文件。在仓库根目录执行:
cp .env.copy .env然后把右侧占位符替换为你上一步复制到的 endpoint 和 API key。该文件已被 gitignore,不会把密钥提交进仓库。
方式二:从零创建。在 00-course-setup/02-setup-local.md 中给出的流程是:在 Unix 系系统用touch .env(Windows 用echo . > .env)创建空文件,然后写入两行配置,your_foundry_endpoint_here/your_foundry_api_key_here替换为你自己的值:
AZURE_INFERENCE_ENDPOINT=your_foundry_endpoint_here AZURE_INFERENCE_CREDENTIAL=your_foundry_api_key_here注意区分变量用途,避免和另外两组 Azure/OpenAI 变量混淆(引自 00-course-setup/03-providers.md 的变量表):
| 变量 | 用途 |
|---|---|
AZURE_INFERENCE_ENDPOINT | Microsoft Foundry project 的 endpoint,用于 Microsoft Foundry Models(原 GitHub Models 练习) |
AZURE_INFERENCE_CREDENTIAL | Microsoft Foundry project 的 API key |
AZURE_OPENAI_ENDPOINT/AZURE_OPENAI_API_KEY/AZURE_OPENAI_DEPLOYMENT | 带aoai标签的练习专用,指向 Azure OpenAI 资源,与本次迁移无关 |
OPENAI_API_KEY | 带oai标签的练习专用 |
如果你使用的是 GitHub Codespaces,还可以把变量存为 Codespaces secrets,从而不需要本地.env文件;该选项仅在 Codespaces 环境生效,Docker Desktop 用户仍需建立本地.env(引自 00-course-setup/03-providers.md)。
第三步:运行一个 githubmodels 标签的练习做验证
本仓库中githubmodels练习已经改为从AZURE_INFERENCE_*两个变量取凭据。以 06-text-generation-apps/python/githubmodels-app.py 为例,其开头就是迁移后的标准写法:
import os from azure.ai.inference import ChatCompletionsClient from azure.core.credentials import AzureKeyCredential # Get these from your Microsoft Foundry project's "Overview" page token = os.environ["AZURE_INFERENCE_CREDENTIAL"] endpoint = os.environ["AZURE_INFERENCE_ENDPOINT"] client = ChatCompletionsClient( endpoint=endpoint, credential=AzureKeyCredential(token), )可以看到脚本里没有硬编码任何密钥,也不再有GITHUB_TOKEN。运行这类练习前的准备步骤(引自 00-course-setup/02-setup-local.md):
- 确认 Python 3.10+,创建虚拟环境后执行
pip install -r requirements.txt; - 若单独装 dotenv:
pip install python-dotenv; - 在脚本中通过
load_dotenv()加载.env。
验证方式一:确认环境变量能被读取。文档给出的最小验证脚本,成功条件是终端打印出你的 Foundry endpoint(而不是None):
from dotenv import load_dotenv import os load_dotenv() endpoint = os.getenv("AZURE_INFERENCE_ENDPOINT") token = os.getenv("AZURE_INFERENCE_CREDENTIAL") print(endpoint)验证方式二:跑通一个完整练习。运行 06-text-generation-apps/python/githubmodels-app.py(模型为gpt-4o-mini),脚本会向 Foundry Models 发起一次 chat completion 请求;能打印出模型回复内容即说明迁移生效。反向判断:如果.env中缺少这两个变量,脚本在读取环境变量处就会抛错,这正是文档所说「相关练习会因缺少凭据而报错」的预期现象。
常见问题与限制
ModuleNotFoundError: dotenv:说明依赖没装进当前环境,文档给出的修复是执行pip install -r requirements.txt(见 00-course-setup/02-setup-local.md 的 Troubleshooting 表)。- 密钥安全:文档明确要求不要在任何代码里直接写 API key、不要把
.env提交到仓库(.env已在.gitignore中)。Codespaces 场景下优先用 Codespace secrets。 - 其他标签的练习不受影响:
aoai、oai、hf标签的练习继续使用各自原有的变量(AZURE_OPENAI_*、OPENAI_API_KEY、HUGGING_FACE_API_KEY),本次迁移只替换AZURE_INFERENCE_*这一组。 - 时间边界:退役时间为 2026 年 7 月底,在此之前旧配置仍可能可用;文档没有提供对存量 GitHub Models 配置做自动转换的脚本,迁移方式就是本文所示的手动替换环境变量。
下一步
完成迁移并验证通过后,可以继续按课程目录完成带githubmodels标签的各课练习(如 06、07、11、20、21 等课程的js-githubmodels/、python/目录下的作业文件),它们现在都走同一组AZURE_INFERENCE_*变量。若你希望完全不依赖云服务,00-course-setup/03-providers.md 指向 Lesson 19(SLM)的 Foundry Local / Ollama 离线示例作为替代路线。
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考