首页
/ Generative AI for Beginners(Version 3)开源课程全景导读:21 课实战地图与运行环境搭建指南

Generative AI for Beginners(Version 3)开源课程全景导读:21 课实战地图与运行环境搭建指南

2026-09-07 15:08:15作者:幸俭卉

本课程是微软 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(稀疏检出):只拉取课程本体,跳过 translationstranslated_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.md02-setup-local.md03-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;pythontypescriptjs-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 输出结构化可调用结果、接入外部数据源;pythonjs-githubmodelstypescript 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.txtpyproject.toml,可直接作为依赖基线。

3. 进阶选项:容器 / Conda / Jupyter

  • 仓库携带 .devcontainer 相关配置,VS Code 可在容器内一键复现开发环境(本地使用需自备 Docker);在 Codespaces 中使用容器时,也可把依赖写进环境文件后以 conda env create --file 方式构建虚拟环境。
  • 不习惯代码编辑器的学习者可直接在浏览器启动 Jupyter:jupyter notebookjupyterhub,随后导航到任意 *.ipynb 即可,例如 08-building-search-applications/python/oai-solution.ipynb

值得补充的是,仓库为公共代码沉淀了可复用层:shared/python/ 下的辅助工具模块(如 api_utils.pyenv_utils.pyinput_validation.py)配有 tests 目录下的对应单元测试(test_api_utils.pytest_env_utils.pytest_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 接上自己的数据——一条从提示词到完整应用的成长路径就在你面前。

登录后查看全文
热门项目推荐
相关项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
33
18
ops-transformerops-transformer
本项目是CANN提供的transformer类大模型算子库,实现网络在NPU上加速计算。
C++
1.13 K
2.75 K
pytorchpytorch
作为 Ascend for PyTorch 社区的核心组件,TorchNPU 是昇腾专为 PyTorch 打造的深度学习适配插件,使 PyTorch 框架能够直接调用昇腾 NPU,为开发者提供昇腾 AI 处理器的超强算力。
Python
857
1.35 K
docsdocs
暂无描述
Markdown
897
5.8 K
kernelkernel
openEuler内核是openEuler操作系统的核心,既是系统性能与稳定性的基石,也是连接处理器、设备与服务的桥梁。
C
529
593
ops-nnops-nn
本项目是CANN提供的神经网络类计算算子库,实现网络在NPU上加速计算。
C++
915
1.83 K
jiuwenswarmjiuwenswarm
JiuwenSwarm 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。
Python
3.58 K
1.01 K
ops-mathops-math
本项目是CANN提供的数学类基础计算算子库,实现网络在NPU上加速计算。
C++
1.35 K
1.46 K
cann-learning-hubcann-learning-hub
CANN 学习中心仓,支持在线互动运行、边学边练,提供教程、示例与优化方案,一站式助力昇腾开发者快速上手。
Jupyter Notebook
1.01 K
515
AscendNPU-IRAscendNPU-IR
AscendNPU-IR是基于MLIR(Multi-Level Intermediate Representation)构建的,面向昇腾亲和算子编译时使用的中间表示,提供昇腾完备表达能力,通过编译优化提升昇腾AI处理器计算效率,支持通过生态框架使能昇腾AI处理器与深度调优
C++
547
388