Generative AI for Beginners 课程全解读:21 节课带你从零构建生成式 AI 应用
本指南以课程总览页 translations/fi/README.md(芬兰语版)为主干,并对照仓库英文根 README.md 与各章节源码组织展开。读完本文,你将完整掌握这套“21 课生成式 AI 课程”的整体结构、Learn/Build 两种课型的区分、三套模型运行环境的接入方式、免翻译的稀疏克隆方法,以及从第 00 课环境搭建到逐章推进的实战路径。
课程是什么:21 课覆盖从概念到代码的完整链路
按总览页描述,本仓库是一套由 Microsoft Cloud Advocates 维护的开源课程(版本 3),目标是用 21 节课讲清“构建生成式 AI 应用所需的全部知识”。其核心设计有四点:
- 每课独立成章、可随意切入:21 节课每节都有独立主题,学习者可以从任何感兴趣的章节开始,无需严格按顺序阅读;
- 两种课型标签:章节被明确标注为 "Learn"(概念学习课,解释生成式 AI 概念)或 "Build"(动手构建课,在讲解概念的同时尽可能给出 Python 与 TypeScript 双语言代码示例);
- Keep Learning 延伸模块:每节课都附带 "Keep Learning" 小节,给出继续深入学习的材料;
- 面向 .NET 开发者另有分册:总览页说明,若使用 .NET 技术栈,可关注配套的《Generative AI for Beginners(.NET Edition)》。
仓库布局:一节一章,代码、课文与配图就近存放
“每课一个目录”是这套课程最重要的目录约定。以根目录为例,00-course-setup/ 至 21-meta/ 共 22 个编号目录,每一课目录内通常包含:
- README.md:书面课文,即该课的“正文”;
- images/:课文配图;
- python/:Python 代码(脚本或 Jupyter notebook);
- typescript/、js-githubmodels/ 或 javascript/:部分动手课提供的 TypeScript/JavaScript 版本;
- dotnet/:少量动手课附带的 .NET 交互式 notebook(.dib)。
以 06 课 06-text-generation-apps/README.md 为例,其目录同时包含 python/、js-githubmodels/、typescript/recipe-app/ 与 dotnet/notebook-azure-openai.dib,直观体现了“跨语言、多 provider 对齐”的代码组织方式。
仓库根目录还维护了一批与课程配套的质量基建,可辅助理解代码约定:
- shared/python/api_utils.py:提供带超时、重试与异常处理的 HTTP 请求封装,以及 OpenAI client 创建工具;
- shared/python/env_utils.py、shared/python/input_validation.py:分别处理环境变量加载与输入校验;
- tests/:
conftest.py、test_api_utils.py、test_env_utils.py、test_input_validation.py等单元测试对上述 shared 工具进行验证。
运行课程代码:三套可选的模型服务与文件命名约定
总览页明确指出,运行本课程代码可以采用以下三种服务之一,且代码文件的命名前缀直接与所选服务一一对应,这是本仓库最值得先掌握的映射关系:
| 服务(总览页原文) | 命名前缀 | 典型文件 |
|---|---|---|
| Azure OpenAI Service | aoai-assignment |
aoai-assignment.ipynb、06-text-generation-apps/python/aoai-app.py |
| GitHub Marketplace Model Catalog(GitHub Models) | githubmodels |
githubmodels-assignment.ipynb、06-text-generation-apps/python/githubmodels-app.py |
| OpenAI API | oai-assignment |
oai-assignment.ipynb、06-text-generation-apps/python/oai-app.py |
从仓库源码结构看,上述三种前缀贯穿各章 notebook 与脚本(如 08-building-search-applications/python/oai-solution.ipynb、20-mistral/python/githubmodels-assignment.ipynb 等),因此“选好服务 → 找到对应前缀的示例文件 → 直接复用”是本课程最高效的跑代码方式。
除服务外,入门还建议具备 Python 或 TypeScript 的基础知识,并准备一个用于 fork 课程的 GitHub 账号。另外,00-course-setup/README.md 已单独成课(第 00 课),专门指导开发环境搭建。
版本提示:芬兰语总览页对应的英文根 README.md 目前对“可用服务”清单做了更新——除 Azure OpenAI、OpenAI API 外,还新增了 Microsoft Foundry Models 与支持完全离线运行的 Foundry Local;同时 00-course-setup/README.md 标注 GitHub Models(及
GITHUB_TOKEN变量)将在 2026 年 7 月底退役,建议用 Microsoft Foundry Models 提供的AZURE_INFERENCE_ENDPOINT与AZURE_INFERENCE_CREDENTIAL环境变量替代。翻译文档生成时间较早,实际运行时请以仓库英文原版与第 00 课的最新说明为准。
拿到仓库:完整克隆与“免翻译”稀疏克隆
仓库内置 50 余种语言翻译(translations/ 与 translated_images/),这会显著增大下载体积。总览页给出的建议是:绝大多数学习者不需要本地翻译文件,此时应使用 Git 的 sparse checkout 功能只拉取课程主体。
Bash / macOS / Linux:
git clone --filter=blob:none --sparse https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners.git
cd generative-ai-for-beginners
git sparse-checkout set --no-cone '/*' '!translations' '!translated_images'
CMD(Windows):
git clone --filter=blob:none --sparse https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners.git
cd generative-ai-for-beginners
git sparse-checkout set --no-cone "/*" "!translations" "!translated_images"
命令要点拆解:
--filter=blob:none:先不下载各文件的具体内容(blob),按需延迟获取,大幅减小首次下载量;--sparse配合sparse-checkout set --no-cone:用'/*'通配包含根目录全部课程,再用'!translations'与'!translated_images'显式排除翻译正文与翻译配图;- 该结果保留了完成课程所需的全部章节、代码、测试与配置,而下载速度显著更快。
第 00 课:先搭好开发环境
00-course-setup/README.md 是官方给出的“开课前置流程”,总览页也将其列为第一站。其主干步骤包括:
- Fork 本仓库到自己的 GitHub 账号,便于修改代码、完成作业;
- 创建 Codespaces(推荐以规避本地依赖问题),并把模型 API Key 以用户级 secret(如
OPENAI_API_KEY)写入; - 根据自身需求进入对应分支文档:跑云端选择 01-setup-cloud.md,离线开发选择 02-setup-local.md,配置模型服务商(Endpoint/Key、
.env文件、python-dotenv等)选择 03-providers.md。
该 README 还内置了一张“排障对照表”,覆盖容器构建卡住、python: command not found、来自 OpenAI 的 401 Unauthorized、Dev container 挂载异常、notebook kernel 缺失等常见症状与修复动作,遇到环境问题时可直接按表排查。
21 课课程目录总表
下表完整继承总览页的章节清单(编号、章节类型与主题),并将原文档中的相对链接统一转换为以仓库根目录为起点的路径:
| # | 课型 | 章节(课文位置) | 主题与核心内容 |
|---|---|---|---|
| 00 | Learn | 00-course-setup | 如何搭建开发环境(云端 / 本地 / Provider 三篇指南) |
| 01 | Learn | 01-introduction-to-genai | 理解什么是生成式 AI,以及大语言模型(LLM)如何工作 |
| 02 | Learn | 02-exploring-and-comparing-different-llms | 探索并比较不同 LLM,学会按使用场景选型 |
| 03 | Learn | 03-using-generative-ai-responsibly | 负责任地构建生成式 AI 应用 |
| 04 | Learn | 04-prompt-engineering-fundamentals | Prompt 工程基础,含三套 provider 的动手作业 notebook |
| 05 | Learn | 05-advanced-prompts | 进阶提示词创作,应用能提升输出效果的 prompt 工程技术 |
| 06 | Build | 06-text-generation-apps | 基于 Azure OpenAI / OpenAI API 构建文本生成应用 |
| 07 | Build | 07-building-chat-applications | 高效构建并集成聊天应用的技术 |
| 08 | Build | 08-building-search-applications | 使用 Embedding(嵌入)检索数据的搜索应用 |
| 09 | Build | 09-building-image-applications | 图像生成应用 |
| 10 | Build | 10-building-low-code-ai-applications | 使用低代码工具构建生成式 AI 应用 |
| 11 | Build | 11-integrating-with-function-calling | Function Calling(函数调用)是什么及其应用场景 |
| 12 | Learn | 12-designing-ux-for-ai-applications | 将 UX 设计原则应用于生成式 AI 应用开发 |
| 13 | Learn | 13-securing-ai-applications | AI 系统面临的威胁与风险,以及安全防护方法 |
| 14 | Learn | 14-the-generative-ai-application-lifecycle | 管理 LLM 应用生命周期与 LLMOps 的工具与指标 |
| 15 | Build | 15-rag-and-vector-databases | 基于 RAG 框架、从向量数据库中检索嵌入的应用 |
| 16 | Build | 16-open-source-models | 使用 Hugging Face 上的开源模型构建应用 |
| 17 | Build | 17-ai-agents | 基于 AI Agent 框架构建应用 |
| 18 | Learn | 18-fine-tuning | LLM 微调的“是什么、为什么、怎么做” |
| 19 | Learn | 19-slm | 使用小语言模型(SLM)构建的收益 |
| 20 | Learn | 20-mistral | Mistral 模型家族的特性与差异 |
| 21 | Learn | 21-meta | Meta 模型家族的特性与差异 |
每节课程的“标配”资源保持一致,包含:主题短视频介绍、位于章节 README 中的书面课文、尽可能同时覆盖 Python 与 TypeScript 且支持 Azure OpenAI / OpenAI API 的代码示例,以及用于延伸学习的额外资源链接。
动手型(Build)章节的配套代码盘点
Build 课的代码密度通常最高,仓库中的对应目录可直接作为“最小可用示例”研读:
- 06 文本生成:
python/下提供oai-app.py、aoai-app.py、githubmodels-app.py及*-app-recipe.py等多个可直接运行的脚本,另有js-githubmodels/app.js与typescript/recipe-app/; - 07 聊天应用:
python/中按三套 provider 各配*-assignment*.ipynb作业,js-githubmodels/app.js与typescript/chat-completions-app/提供 JS/TS 实现; - 08 搜索应用:除
python/的 assignment/solution notebook 外,scripts/ 提供从获取字幕到生成嵌入(embedding)的完整数据处理流水线(含prepare_transcripts_ai_show.sh、transcript_enrich_embeddings.py等),并预置 300 万条嵌入索引 embedding_index_3m.json 供查询实验使用; - 09 图像生成:
python/oai-app.py、oai-app-variation.py与aoai-*版本演示了文生图与图生变体两类 API 用法; - 11 函数调用:
python/提供 aoai/oai 两套 assignment notebook,typescript/function-app/与js-githubmodels/app.js覆盖 JS 技术栈; - 15 RAG:单一 notebook notebook-rag-vector-databases.ipynb 串起“文本切分→嵌入→向量检索→生成”的完整链路;
- 19/20/21:分别以 Phi 系列(
19-slm/python/*.ipynb)、Mistral 与 Meta(githubmodels-assignment.ipynb)为对象,展示具体模型家族的实操。
概念型(Learn)章节并非没有代码——例如 04 课的 python/ 中为三个 provider 各准备了一份 *-assignment.ipynb,05 课也提供了 python/aoai-assignment.py 与 javascript/assignment.js 等练习骨架,建议做“读课文 → 补全作业 → 对照 *-solution.*”三步走。
进阶方向与配套内容
总览页同时给出了课程之外的延伸指引:
- 对已经掌握基础、需要更高级示例的读者,课程方维护有一套覆盖 Python 与 TypeScript 的生成式 AI 代码示例集(README 中以外部链接指向,本文不展开);
- “Ready to Deploy / Building a startup”段落面向有部署与商业化诉求的读者,介绍了借助 Azure 额度起步的渠道;
- 课程团队还维护了 LangChain、Azure / Edge / MCP / Agent、生成式 AI 系列(.NET、Java、JavaScript)、核心学习(ML、数据科学、AI、网络安全、Web 开发、IoT、XR)以及 Copilot 系列等多个姊妹课程,可在对应生态中按需衔接。
获取帮助、反馈与贡献
总览页在仓库内提供了两条求助路径:一是加入官方社区服务器,与同课程学习者、资深开发者交流;二是通过产品开发者论坛反馈使用中遇到的问题。若发现拼写或代码错误,可提交 issue 或 pull request——这也是课程持续演进的主要方式。
仓库还明确致谢了负责 GitHub Actions 与工作流的维护者,以及逐课提升学习与代码体验的贡献者,这侧面说明该课程强依赖“CI 翻译 + 社区 PR”的协作模式。
需要特别说明的是:芬兰语总览页由自动化翻译工具(Co-op Translator)生成,机器翻译可能存在偏差,权威版本应以仓库英文原版 README 为准;涉及配置、API 变更等关键信息时,请以本指南“版本提示”中给出的根目录 README.md 与 00-course-setup/README.md 为最终依据。所有章节课文、代码与测试均存放在本仓库内,按上文目录索引即可逐课深入。
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 StartedRust0629
MiniCPM5-2BMiniCPM5-2B 是一款面向端侧、本地部署和资源受限场景的 2B 稠密 Transformer,能够达到同尺寸开源模型 SOTA 水平。Markdown00
GLM-5.3GLM-5.3 与 GLM-5.2 使用相同的基座模型——所有提升均来自后训练。与 GLM-5.2 相比,它在复杂编程和长程任务上的表现显著提升。Jinja00
HivisionIDPhotos⚡️HivisionIDPhotos: a lightweight and efficient AI ID photos tools. 一个轻量级的AI证件照制作算法。Python07
DragonOSDragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios. 使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。Rust00
Spark-X2.5-1.7BSpark-X2.5-1.7B 旨在让强大的 AI 更加实用、高效且易于获取。这些模型在广泛的日常任务中表现出色,涵盖对话、写作、翻译、推理、编程、工具调用和智能体工作流,并在同等规模的开源模型中取得领先结果。Spark-X2.5 将面向效率的架构与最高 1M tokens 的原生上下文窗口相结合,并支持 200 多种语言。Python00