Generative AI for Beginners(Version 3)开源课程全景导读:21 课实战地图与运行环境搭建指南
本课程是微软 Cloud Advocates 团队维护的《Generative AI for Beginners(Version 3)》开源课程(本仓库即其镜像与多语言协作版本),以 21 个递进式课程为骨架,覆盖从 LLM 基础原理、提示词工程到文本/对话/检索/图像应用,再到 Function Calling、RAG、微调与各类模型家族的完整实战链路。本文以 translations/el/README.md(课程官方希腊语总览)为叙述主线,结合仓库目录与源码,梳理课程结构、可运行代码分布、开发环境搭建与按需克隆策略,帮助你快速定位每一课并规划学习路线。
课程定位:一门口号朴素、内容系统的“造应用”课程
课程总览页开门见山——这是 21 Lessons teaching everything you need to know to start building Generative AI applications,即“从零开始构建生成式 AI 应用所需的全部知识”的 21 节系统课程(编号 00–21)。它强调的并非晦涩的模型理论,而是让学习者能够真正运行代码、把想法变成应用:
- “Learn”型课程:侧重解释某一生成式 AI 概念,例如 LLM 工作原理、负责任 AI、提示词工程、UX 设计、安全、LLMOps 生命周期等;
- “Build”型课程:在讲解概念的同时给出尽可能同时提供 Python 与 TypeScript 示例的实战代码,例如文本生成、聊天应用、语义搜索、图像生成、低代码 AI 应用、Function Calling、RAG、AI Agents 等。
每节课都遵循一致的交付格式(见仓库 README.md 与各课 README):主题短视频导览、写入该课 README.md 的书面课程、同时支撑 Azure OpenAI 与 OpenAI API 的代码示例、以及“Keep Learning”延伸学习入口。
多语言支持与“不带翻译”的快速克隆
课程仓库通过 GitHub Action 自动化翻译流水线维护 50+ 语言版本(希腊语版本位于 translations/el/README.md,翻译配图在 translated_images/el/ 目录),因此英文与各语言版本会保持自动同步。但多语言文件会显著增大克隆体积,官方为此推荐 sparse checkout(稀疏检出):只拉取课程本体,跳过 translations 与 translated_images 两大目录。以 Bash / macOS / Linux 为例:
git clone --filter=blob:none --sparse <远程仓库地址>/generative-ai-for-beginners.git
cd generative-ai-for-beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
Windows CMD 下写法对应为:
git clone --filter=blob:none --sparse <远程仓库地址>/generative-ai-for-beginners.git
cd generative-ai-for-beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
其中 <远程仓库地址> 需替换为你实际 fork 或镜像课程后使用的远端地址。该策略在保留全部课件、代码与作业的同时,把下载体积和克隆时间降到最低;若你的学习目标是中文或某特定语言课件,再按需单独检出对应的 translations/<语言>/ 目录即可。
运行课程代码的三条技术路线与先决条件
课程代码不绑定单一云厂商。总览页明确给出三套可切换的模型接入路线,分别对应文件名中带特定标识的作业:
| 接入路线 | 对应作业文件名标识 | 用途说明 |
|---|---|---|
| Azure OpenAI Service | aoai-*(如 aoai-assignment) |
面向企业级 Azure 环境的 GPT 系列部署 |
| GitHub Marketplace 模型目录 | githubmodels-*(如 githubmodels-assignment) |
单一入口接入多厂商模型的 Playground 式体验 |
| OpenAI API | oai-*(如 oai-assignment) |
官方 OpenAI 服务端点 |
需要特别说明的是,仓库较新的英文总览与 00-course-setup/03-providers.md 均已注明:GitHub Models 将于 2026 年 7 月底退役,模型目录能力由 Microsoft Foundry Models 承接(一条端点与 API Key 即可访问 OpenAI、Meta、Mistral、Cohere、Microsoft 等数百个模型);如希望完全离线运行,还可选用 Foundry Local / Ollama。因此若你在新环境里看到 githubmodels 前缀的示例,可对照升级到 AZURE_INFERENCE_* 的环境变量方案。
先决条件本身很轻:
- 具备 Python 或 TypeScript 基础更佳;零基础者可按官方建议先补语言课;
- 拥有一个 GitHub 账号,用于 fork 整个仓库、保存环境密钥并完成挑战作业;
- 选择上述任一(或多个)LLM 提供商并取得 API 密钥。
21 课课程地图:主题、代码与仓库对应关系
下表继承自课程总览的 21 课索引,并补充每课在仓库中的实际代码/资源落点(下表各 README 链接均指向仓库根目录的相对路径):
| # | 课程(Learn / Build) | 主题内容与仓库关键路径 |
|---|---|---|
| 00 | 课程环境搭建(Learn) | 指导完成 fork、云端 Codespaces、.env 配置与本地运行;配套 01-setup-cloud.md、02-setup-local.md、03-providers.md |
| 01 | 生成式 AI 与 LLM 入门(Learn) | 什么是生成式 AI、LLM 如何工作、tokenizer 与文本补全/对话/摘要等典型能力示例图 |
| 02 | 探索与对比不同 LLM(Learn) | 面向用例的模型选型方法,涉及 benchmark、Embedding、Fine-Tuning、多模态等概念对比 |
| 03 | 负责任地使用生成式 AI(Learn) | 公平性、无害性、有害内容缓解分层与缓解循环方法论 |
| 04 | 提示词工程基础(Learn) | prompt、temperature、token 等核心参数与最佳实践;python 目录 提供 aoai / oai / githubmodels 三套 assignment notebook |
| 05 | 进阶提示词(Learn) | 通过角色、示例、思维链等技术提升输出质量;python 提供 assignment 与 solution,javascript 提供同款作业 |
| 06 | 文本生成应用(Build) | 基于 openai 库构建首个文本生成 App,掌握 prompt、temperature、max_tokens、top_p;python、typescript、js-githubmodels、dotnet 笔记本多语言齐备 |
| 07 | 聊天应用(Build) | system/user/assistant 角色建模、多轮对话与上下文技巧;含多套 notebook 与 typescript chat-completions-app |
| 08 | 基于向量数据库的搜索应用(Build) | 用 Embeddings 做语义检索;scripts 内是配套的转录数据下载与嵌入构建工具链,另有 embedding_index_3m.json 索引样例 |
| 09 | 图像生成应用(Build) | DALL-E 等文生图与图生图、变体生成;python 提供 aoai/oai 全套脚本,typescript 提供 TS 实现 |
| 10 | 低代码 AI 应用(Build) | 借助 Power Platform / AI Builder 类工具以低代码方式交付生成式 AI;配套 assignment.md |
| 11 | Function Calling 集成(Build) | 让 LLM 输出结构化可调用结果、接入外部数据源;python、js-githubmodels、typescript function-app |
| 12 | AI 应用 UX 设计(Learn) | 可解释性、反馈闭环、错误兜底与无障碍设计原则 |
| 13 | AI 应用安全(Learn) | 面向 AI 系统的威胁与风险、红队测试与安全缓解手段 |
| 14 | 生成式 AI 应用生命周期(Learn) | LLM Lifecycle 与 LLMOps:评估指标、阶段流、Prompt Flow 式编排 |
| 15 | RAG 与向量数据库(Build) | 把私域数据“接地”到 LLM 的机制与存储;notebook-rag-vector-databases.ipynb 提供端到端演示,data 内含可检索语料 |
| 16 | 开源模型与 Hugging Face(Build) | 开源 LLM 生态、与闭源模型的取舍、Hugging Face 接入 |
| 17 | AI Agents(Build) | 基于 Agent 框架给 LLM 挂载工具与状态管理,赋予其“行动”能力 |
| 18 | LLM 微调(Learn) | 微调的目的、方法与数据准备;python/openai 内含可直接观摩的训练数据 training-data.jsonl 与 notebook,RESOURCES.md 汇集延伸资料 |
| 19 | 小型语言模型 SLM(Learn) | 用小模型做事的收益;python 含 Phi-3.5 系列与 Phi-3-Vision 的推理演示 notebook |
| 20 | Mistral 模型家族(Learn) | Mistral 各模型的特性与差异;python/githubmodels-assignment.ipynb 提供动手作业 |
| 21 | Meta 模型家族(Learn) | Llama 3.1 / 3.2 等模型的特性与差异;python/githubmodels-assignment.ipynb 提供动手作业,附 sample.jpg 视觉输入样例 |
可以看到仓库目录与总览表格一一对应:每个课程号都是根目录下的一个独立文件夹(0X-*),内部统一组织为 README.md(书面课件)+ images/(课件配图)+ 若干语言的代码目录。其中“Build”型课程基本都提供了 python/、typescript/ 甚至 js-githubmodels/ 与 dotnet 交互式笔记本(.dib)等多个运行形态,方便学习者按语言偏好选择。
一个“Build 型课程”的真实代码样例
以第 06 课“文本生成应用”为例,仓库在 06-text-generation-apps/python/ 中提供了面向不同提供商的多个脚本。githubmodels-app.py 演示了模型目录接入方式(新项目中已迁移到 Microsoft Foundry Models 的 AZURE_INFERENCE_* 环境变量):
import os
from azure.ai.inference import ChatCompletionsClient
from azure.ai.inference.models import SystemMessage, UserMessage
from azure.core.credentials import AzureKeyCredential
token = os.environ["AZURE_INFERENCE_CREDENTIAL"]
endpoint = os.environ["AZURE_INFERENCE_ENDPOINT"]
model_name = "gpt-4o-mini"
client = ChatCompletionsClient(
endpoint=endpoint,
credential=AzureKeyCredential(token),
)
prompt = "Show me 5 recipes for a dish with the following ingredients: chicken, potatoes, and carrots. Per recipe, list all the ingredients used"
response = client.complete(
messages=[
{"role": "system", "content": "You are a helpful assistant."},
{"role": "user", "content": prompt},
],
model=model_name,
temperature=1.0, # 控制输出的随机性
max_tokens=1000, # 限制生成长度
top_p=1.0,
)
if response.choices and response.choices[0].message is not None:
print(response.choices[0].message.content)
这一小段代码完整覆盖了课程在概念层强调的三个运行要素:prompt(消息体)、temperature(多样性)与 token(预算);同目录下另有面向 Azure OpenAI 的 aoai-app.py、面向 OpenAI 的 oai-app.py 及加了额外指令的 *-app-recipe.py,方便学习者对照同一提示在不同提供商/端点下的行为差异。
把课程跑起来:环境搭建的三个层次
课程 00 为环境搭建提供了专门的一课,00-course-setup/README.md 将流程拆为三层:
1. 云端优先(推荐):fork + GitHub Codespaces
将仓库 fork 到自己的账号后,在 Code → Codespaces → New on main 创建云端容器,避免本地依赖冲突。随后通过 ⚙️ → Command Palette → Codespaces: Manage user secret 新增名为 OPENAI_API_KEY 的密钥并填入你的 Key,课程代码即可在云端安全读取该密钥。
2. 本地运行:.env + python-dotenv
本地跑代码同样简单:在项目根目录创建 .env(Unix 用 touch .env,Windows 用 echo . > .env),按 03-providers.md 提供的模板填入对应提供商的密钥:
# OpenAI
OPENAI_API_KEY='<add your OpenAI API key here>'
# Azure OpenAI(已并入 Microsoft Foundry)
AZURE_OPENAI_API_VERSION='2024-10-21'
AZURE_OPENAI_API_KEY='<add your Foundry resource key here>'
AZURE_OPENAI_ENDPOINT='<add your resource endpoint here>'
AZURE_OPENAI_DEPLOYMENT='<deployment name, e.g. gpt-4o-mini>'
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='<embeddings deployment, e.g. text-embedding-3-small>'
# Microsoft Foundry Models(多提供商模型目录)
AZURE_INFERENCE_ENDPOINT='<your Foundry project endpoint here>'
AZURE_INFERENCE_CREDENTIAL='<your Foundry Models API key here>'
# Hugging Face
HUGGING_FACE_API_KEY='<your Hugging Face token here>'
安装 pip install python-dotenv 后,在脚本开头用 load_dotenv() 即可读取这些变量;.env 已被仓库 gitignore,不会泄密。仓库根目录同时提供 requirements.txt 与 pyproject.toml,可直接作为依赖基线。
3. 进阶选项:容器 / Conda / Jupyter
- 仓库携带
.devcontainer相关配置,VS Code 可在容器内一键复现开发环境(本地使用需自备 Docker);在 Codespaces 中使用容器时,也可把依赖写进环境文件后以conda env create --file方式构建虚拟环境。 - 不习惯代码编辑器的学习者可直接在浏览器启动 Jupyter:
jupyter notebook或jupyterhub,随后导航到任意*.ipynb即可,例如 08-building-search-applications/python/oai-solution.ipynb。
值得补充的是,仓库为公共代码沉淀了可复用层:shared/python/ 下的辅助工具模块(如 api_utils.py、env_utils.py、input_validation.py)配有 tests 目录下的对应单元测试(test_api_utils.py、test_env_utils.py、test_input_validation.py),体现了课程对“工程化、可验证代码”的一贯要求。
学习路径建议与参与方式
在掌握 00 课环境后,建议按两条主线推进:
- 概念主线(Learn):01 → 03 → 04/05 → 12 → 13 → 14 → 18,先建立 LLM 原理、负责任的 AI、提示词与工程化(评估/安全/生命周期)的心智模型;
- 动手主线(Build):06 → 07 → 08 → 09,或 10(低代码)→ 11(Function Calling)→ 15(RAG)→ 17(Agents),直接对着各课
python/、typescript/中的可运行脚本与 notebook 迭代练习;16/19/20/21 则可作为“不同模型家族怎么选、怎么调”的扩展补给。
课程本身是开源协作项目:总览页鼓励学习者通过仓库的 Issue / Pull Request 渠道反馈拼写或代码错误,多语言翻译版本也通过 GitHub Action 自动维护、持续同步;文档中还特别致谢了 John Aziz(GitHub Actions 与工作流维护)与 Bernhard Merkle(逐课代码与学习体验优化)等关键贡献者。遇到卡点时,课程官方 Discord 社区与 Microsoft Foundry Developer Forum 是文档推荐的答疑去处(入口均见仓库 README 与各课“Keep Learning”区块)。
小结
《Generative AI for Beginners》的价值在于把“生成式 AI 应用开发”拆成了 21 个可独立学习的单元:概念课讲透 WHY(原理、安全、UX、LLMOps),实战课给出可直接运行的 HOW(Python/TypeScript/notebook 多形态代码)。结合本仓库镜像,你可以从 translations/el/README.md 这类语言总览切入,也可直接按编号进入任一课:改改第 06 课的 prompt 与 temperature,跑通第 08 课的向量检索,再在第 15 课把 RAG 接上自己的数据——一条从提示词到完整应用的成长路径就在你面前。
atomcodeClaude Code 的开源替代方案。连接任意大模型,编辑代码,运行命令,自动验证 — 全自动执行。用 Rust 构建,极致性能。 | An open-source alternative to Claude Code. Connect any LLM, edit code, run commands, and verify changes — autonomously. Built in Rust for speed. Get StartedRust0627
Hy4-previewHy4 preview 是由腾讯混元团队研发的新一代混合专家(MoE)旗舰模型。模型总参数量 770B,每个 token 激活 49B,主干共包含78层,第一层采用标准 FFN,其余 77 层均为 MoE 结构,每层包含 256 个路由专家与 1 个共享专家,每个 token 激活 top-8 路由专家及共享专家。主干之外原生内置 1 层 MTP(总参数量 10B,激活 0.7B)以支持投机解码。Python00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
GLM-5.3-FlashGLM-5.3-Flash (320B-A18B),是GLM-5系列的首个原生多模态模型。320B总参数,能力超过GLM-5.2Jinja00
Spark-X2.5-4BSpark-X2.5-4B 旨在让强大的 AI 更实用、更高效、更易获得。在广泛日常任务中表现强劲,涵盖对话、写作、翻译、推理、编码、工具调用以及智能体工作流,并在同等规模的开源模型中取得领先成绩。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00