generative-ai-for-beginners 环境搭建完全指南:Fork、Codespaces 与本地跑通第一课
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
本指南以仓库课程初始化章节(对应translations/en/00-course-setup/README.md,仓库根目录的原文见 00-course-setup/README.md)为核心,系统讲解如何从零准备一个可运行 21 课 Generative AI 动手项目的开发环境。你将掌握 Fork 仓库、创建 GitHub Codespaces、安全托管 API Key、配置.env,并能在云上或本机(原生 Python、Conda、VS Code Dev Container、Jupyter)任一形态中运行课程代码,最终安全高效地进入 第 1 课:生成式 AI 与 LLM 入门。
一、课程环境概览与整体路线
这个仓库是一个开源课程项目(关于课程规模与定位可在仓库根目录的 pyproject.toml 与课程说明中确认),学习过程会涉及大量需要调用云端模型接口的 Notebook 与脚本(例如基于 OpenAI / Azure OpenAI / Hugging Face 的作业)。为了让你“零折腾”地聚焦学习本身,官方给出了完整的环境准备路线:
| 我要做什么 | 前往哪个文档 |
|---|---|
| 直接开始第 1 课 | 01-introduction-to-genai |
| 离线、在自有电脑上运行 | 00-course-setup/02-setup-local.md |
| 配置一个 LLM Provider(OpenAI / Azure / Hugging Face / Foundry Models 等) | 00-course-setup/03-providers.md |
| 不想安装任何东西、云端一键开跑 | 00-course-setup/01-setup-cloud.md |
仓库还提供了整套共享工具代码用于环境变量的安全读取(shared/python/env_utils.py)与 OpenAI/Azure 客户端的创建(shared/python/api_utils.py),后文会结合这些源码说明“配置变量 → 被代码消费”的完整链路。
二、第一步:Fork 本仓库(获得可写副本)
课程要求你动手修改代码、完成挑战,因此需要把仓库 Fork 到自己的账号下。具体操作:
- 打开仓库主页,点击右上角Fork,把整个仓库复制到你自己的账号中,得到可自由修改的副本;
- 可选但推荐:顺手给仓库点一个Star(🌟),方便日后在“你 Star 过的仓库”里快速找回本仓库及其关联项目。
Fork 完成后,你既可以把它作为云端 Codespace 的基底,也可以本地git clone你自己的副本。
三、第二步:创建 Codespace,让环境“预装好”
为避免依赖安装带来的各类兼容性问题,官方推荐在GitHub Codespaces中运行本课程。在 GitHub 的云端开发环境中,仓库已通过预构建的开发容器帮你装好 Python、Node.js、.NET、Java 等运行时,首次启动大约需要几分钟构建容器。
在你自己的 Fork 副本中依次点击:Code → Codespaces → New on main(即基于main分支新建一个 codespace),浏览器就会打开一个云端的 VS Code 窗口并开始构建开发容器。
关于云端方案的更多细节(个人免费配额、停止/删除空闲 codespace 以节约配额的提示等)见 00-course-setup/01-setup-cloud.md。
3.1 用 Codespaces Secrets 安全保存密钥(推荐)
把 API Key 直接写进代码库是危险的。Codespaces 提供了“Secrets”机制,将密钥与代码隔离保存:
- 点击左下角 ⚙️ 齿轮图标 →Command Palette;
- 输入并执行
Codespaces : Manage user secret→Add a new secret; - 名称填
OPENAI_API_KEY,粘贴你的密钥后Save保存。
保存后,仓库里的代码会自动读取该密钥,你无需在仓库内落盘任何明文密钥。
3.2 备选:在 Codespace 里使用.env文件
如果你确实需要一份本地可见的.env(例如需要在多个 Provider 间切换),仓库也提供了现成模板。在 Codespace 终端中执行:
cp .env.copy .env code .env # 将占位符替换为真实 Key仓库根目录确实存在 .env.copy 模板文件,所有需要填写的变量及其注释都列在其中。
四、第三步:安全配置 API Key 与.env文件
绝对不要把任何 API Key 写死在代码里:提交到公开仓库可能引发安全问题,甚至被他人盗用而产生费用。规范的姿势是把密钥放入python-dotenv读取的.env文件(该文件已被.gitignore忽略,不会进入版本库),或用 Codespaces Secrets 保存。下面是一份完整的六步流程:
1. 进入项目根目录
cd path/to/your/project2. 创建.env文件
Unix 系系统:
touch .envWindows 系统:
echo . > .env3. 编辑.env,填入你的 Provider 凭据
用任意文本编辑器(VS Code、Notepad++ 等)打开.env,参考仓库根目录 .env.copy 模板的结构,把占位符替换成真实值。仓库各文档与代码目前使用的主要变量如下(关于 GitHub Models 退役与 Microsoft Foundry Models 接管的说明见下文“技术需求与 Provider 选择”):
# OpenAI Provider OPENAI_API_KEY='<add your OpenAI API key here>' ## Azure OpenAI in Microsoft Foundry AZURE_OPENAI_API_VERSION='2024-10-21' AZURE_OPENAI_API_KEY='<add your Foundry resource key here>' AZURE_OPENAI_ENDPOINT='<add your Foundry resource endpoint here, e.g. https://<resource-name>.openai.azure.com>' AZURE_OPENAI_DEPLOYMENT='<add your chat completion model deployment name here, e.g. gpt-4o-mini>' AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='<add your embeddings model deployment name here, e.g. text-embedding-3-small>' ## Microsoft Foundry Models (multi-provider model catalog) AZURE_INFERENCE_ENDPOINT='<add your Microsoft Foundry project endpoint here>' AZURE_INFERENCE_CREDENTIAL='<add your Microsoft Foundry Models API key here>' ## Hugging Face HUGGING_FACE_API_KEY='<add your HuggingFace API or token here>'各变量的含义对照表:
| 变量 | 含义 |
|---|---|
HUGGING_FACE_API_KEY | 在 Hugging Face 个人资料中创建的 Access Token(用于鉴权,故沿用 API key 命名) |
OPENAI_API_KEY | 非 Azure 场景下 OpenAI 服务的授权 Key |
AZURE_OPENAI_API_KEY | Azure OpenAI 资源的授权 Key |
AZURE_OPENAI_ENDPOINT | Azure OpenAI 资源对应的部署端点 |
AZURE_OPENAI_DEPLOYMENT | 文本生成(chat completion)模型的部署名,例如gpt-4o-mini |
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT | 文本嵌入(embeddings)模型的部署名,例如text-embedding-3-small |
AZURE_INFERENCE_ENDPOINT | Microsoft Foundry 项目的端点,用于 Microsoft Foundry Models |
AZURE_INFERENCE_CREDENTIAL | Microsoft Foundry 项目的 API Key |
说明:
AZURE_OPENAI_DEPLOYMENT与AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT分别代表课程默认使用的文本生成与向量检索模型,具体如何在作业中使用,会在对应课程的任务说明中给出。各 Provider 如何注册账号、申请 Key、部署模型,完整指引在 00-course-setup/03-providers.md。
4. 保存文件并关闭编辑器
5. 安装python-dotenv(用于把.env中的变量加载进 Python 应用):
pip install python-dotenv仓库根目录 requirements.txt 中已固定python-dotenv==1.2.2,因此执行pip install -r requirements.txt亦可。
6. 在 Python 脚本中加载环境变量:
from dotenv import load_dotenv import os # 从 .env 文件加载环境变量 load_dotenv() # 读取 Microsoft Foundry Models 变量 endpoint = os.getenv("AZURE_INFERENCE_ENDPOINT") token = os.getenv("AZURE_INFERENCE_CREDENTIAL") print(endpoint)到这里,你已经成功创建.env、写入凭据,并能在 Python 中读取它们。
4.1 源码侧:环境变量是如何被“消费”的
仓库并不要求你手写样板代码,而是把环境读取逻辑收敛进了 shared/python/env_utils.py:
get_required_env(var_name, description)(shared/python/env_utils.py):读取必填变量,缺失时抛出带变量名与用途提示的ValueError,提示内容会引导你去.env中补齐;validate_env_vars(*var_names)(shared/python/env_utils.py):批量校验多个变量是否都已设置,并返回变量名到值的字典;get_env_with_default(var_name, default)(shared/python/env_utils.py):为可选变量提供默认值。
客户端创建侧则由 shared/python/api_utils.py 负责:
create_openai_client()(shared/python/api_utils.py)在没有显式传入 key 时自动读取OPENAI_API_KEY环境变量,缺失即抛出异常;create_azure_openai_client()(shared/python/api_utils.py)自动读取AZURE_OPENAI_ENDPOINT、AZURE_OPENAI_API_KEY,并以<endpoint>/openai/v1/作为base_url构造客户端。
这意味着:只要.env或 Codespaces Secrets 配置正确,课程中的示例脚本便会自动取到凭据,不需要你改动任何共享代码。
五、常见问题排查(Troubleshooting)
环境搭建失败大多集中在容器构建、终端会话、密钥与 Notebook 内核四个方面。官方给出的对照表如下:
| 症状 | 解决方法 |
|---|---|
| 容器构建卡住超过 10 分钟 | Codespaces → “Rebuild Container”(重建容器) |
提示python: command not found | 终端没有正确附着到容器;点击+→ 选择bash新开终端 |
来自 OpenAI 的401 Unauthorized | OPENAI_API_KEY有误或已过期,重新生成并更新密钥 |
| VS Code 一直显示 “Dev container mounting…” | 刷新浏览器标签页——Codespaces 偶尔会丢失连接 |
| Notebook 内核缺失 | Notebook 菜单 →Kernel ▸ Select Kernel ▸ Python 3 |
ModuleNotFoundError: dotenv | 环境未装依赖,执行pip install -r requirements.txt |
| OpenAI 返回 401 / 429 | 检查OPENAI_API_KEY是否正确、是否触发限流 |
| Docker 构建报No space left | Docker Desktop →Settings→Resources,调大磁盘分配 |
若配置的是本地环境而不是 Codespaces,可对照 00-course-setup/02-setup-local.md 末尾的排障表(如 Windows 下
pip无法构建 wheel 时先pip install --upgrade pip setuptools wheel)。
六、在本机运行课程代码
如果你选择在自己电脑上运行,需要先安装某个版本的 Python。然后克隆仓库:
git clone https://github.com/<your-github>/generative-ai-for-beginners cd generative-ai-for-beginners(课程官方原仓库地址为https://github.com/microsoft/generative-ai-for-beginners,实际使用中建议直接克隆你自己 Fork 的副本以便提交练习成果。)克隆完成后,还需要按第四节配置.env,或在对应课程目录内安装依赖。
仓库根目录的 requirements.txt 与 pyproject.toml 对 Python 版本有明确约定:requires-python = ">=3.10",主要依赖包括openai>=1.12.0、python-dotenv==1.2.2、azure-ai-inference、tiktoken以及numpy/pandas/matplotlib等数据科学工具链。
七、可选的高级环境方案
官方环境准备不止一种,以下方案可按需选用:
7.1 方案 A:Miniconda + 虚拟环境
Miniconda 是 Conda 的轻量安装器。Conda 本身是一个包管理器,能方便地创建与切换不同的 Python虚拟环境,对pip装不了的包也很有用。
- 按官方指南装好 Miniconda,验证:
conda --version; - 若尚未克隆仓库,先完成克隆;
- 创建环境描述文件
environment.yml(在 Codespace 中请建在.devcontainer目录下,即.devcontainer/environment.yml),并填入:
name: <environment-name> channels: - defaults - microsoft dependencies: - python=<python-version> - openai - python-dotenv - pip - pip: - azure-ai-ml<environment-name>是你想给环境起的名字;<python-version>是你想用的 Python 版本,例如3表示最新的 Python 3 大版本。
- 用以下命令创建并激活环境:
conda env create --name ai4beg --file .devcontainer/environment.yml # 其中 .devcontainer 路径仅适用于 Codespace 场景 conda activate ai4beg如果 Conda 解析频道报错,也可以手动安装微软 AI 库:
conda install -c microsoft azure-ai-ml7.2 方案 B:VS Code + Python 扩展
官方推荐使用 Visual Studio Code 搭配Python 扩展(ID:ms-python.python)学习本课程,但这只是推荐而非硬性要求:
- 克隆并在 VS Code 中打开仓库后,VS Code 会自动建议你安装 Python 扩展;
- 仓库内含
.devcontainer目录,因此打开时会提示是否“在容器中重新打开”项目; - 注意:若你想使用本机安装的 Python,当 VS Code 提示以容器方式重开时,请选择拒绝,以继续使用本地 Python。
7.3 方案 C:浏览器里的 Jupyter
喜欢经典 Jupyter 界面、不想依赖 VS Code 的话,也可以在浏览器里跑课程。进入课程目录后执行:
jupyter notebook或
jupyterhub启动后命令行窗口会给出访问 URL。打开后你能看到课程大纲,并可导航到任意*.ipynb文件,例如 08-building-search-applications/python/oai-solution.ipynb。
7.4 方案 D:在容器(Dev Container)中运行
不想在自己的电脑或 Codespace 里装环境,还可以使用容器。仓库的.devcontainer目录让 VS Code 可以把整个项目放进容器构建。在 Codespaces 之外使用此方案需要自行安装 Docker,工程量不小,只推荐有容器使用经验的开发者尝试。
在 GitHub Codespaces 中保护 API Key 的最佳实践是使用Codespaces Secrets,具体管理方式见 GitHub 官方的 Secrets 管理文档。
八、课程的技术需求与 Provider 选择
本课程中的编码作业可以(并非必须)配置为调用一个或多个 LLM Provider 的托管端点,例如 OpenAI、Azure OpenAI、Microsoft Foundry Models、Hugging Face;如果你想完全离线,也可以选择 Foundry Local 或 Ollama 在本机运行开源模型。你需要使用自己的账号来完成这些练习——作业都是可选的,你可以按兴趣配置其中一个、全部或一个都不配置。需要说明的是,仓库中的 00-course-setup/03-providers.md 明确提示:GitHub Models(及其GITHUB_TOKEN变量)将于 2026 年 7 月底停用,官方建议改用Microsoft Foundry Models(一个端点 + 一个 API Key 即可访问 OpenAI、Meta、Mistral、Cohere、Microsoft 等数百个模型),因此本指南沿用了 Foundry 相关的变量命名。
作业文件名会通过标签标明所需的 Provider:
aoai:需要 Azure OpenAI 端点与 Key;oai:需要 OpenAI 端点与 Key;hf:需要 Hugging Face Token;githubmodels:需要 Microsoft Foundry Models 端点与 Key(对应 GitHub Models 退役后的替代方案)。
你可以只配置其中一部分。未配置对应凭据的作业在运行时自然报错,不影响其他课程的推进。
8.1 如何获取各 Provider 的端点与密钥
- Azure OpenAI:登录 Azure Portal,在左侧菜单进入Keys and Endpoint,点击Show Keys即可看到 KEY 1、KEY 2 与 Endpoint;用 KEY 1 作为
AZURE_OPENAI_API_KEY、Endpoint 作为AZURE_OPENAI_ENDPOINT。随后在Model deployments里点击进入 Microsoft Foundry 门户(旧入口为 “Manage Deployments”),查看已部署模型:推荐部署一个文本生成模型(如gpt-4o-mini)与一个文本嵌入模型(如text-embedding-3-small),并把部署名填入AZURE_OPENAI_DEPLOYMENT与AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT。 - OpenAI:在 OpenAI 平台账号页创建 API Key,填入
OPENAI_API_KEY。 - Hugging Face:在个人资料的 Access Tokens 里为本项目新建一个 Token,填入
HUGGING_FACE_API_KEY(技术上它不是 API Key 而是鉴权 Token,此处沿用统一命名)。请不要公开分享该 Token。 - Microsoft Foundry Models:进入 Microsoft Foundry 创建(或打开)一个项目,在模型目录中部署一个模型(例如
gpt-4o-mini),然后在项目Overview页复制endpoint与API key,分别填入AZURE_INFERENCE_ENDPOINT与AZURE_INFERENCE_CREDENTIAL。 - 离线 Provider:不需要任何云订阅时,可选用 Foundry Local(自动选择 NPU/GPU/CPU 并暴露 OpenAI 兼容端点)或 Ollama(本地运行 Llama、Phi、Mistral、Gemma 等开源模型的流行选择)。离线方案的动手示例可参考 19-slm/README.md。
每个 Provider 的注册成本、Key 获取入口、Playground 等更多细节,都整理在 00-course-setup/03-providers.md 的对比表中。
8.2 在等待申请期间可以做什么
Azure OpenAI 这类服务有时需要先提交申请、等待审批。在等待期间,每个编码课程目录下的README.md都内嵌了代码与运行结果展示,你可以先阅读、理解代码逻辑,等凭据到位后再实际运行 Notebook。
九、验证环境是否就绪
配置完成后,可以用下面这个最小的 Python 片段做自检——它能确认python-dotenv可导入、.env能被加载、关键变量已读取(不输出密钥本身):
python -c "from dotenv import load_dotenv; import os; load_dotenv(); assert os.getenv('OPENAI_API_KEY') or os.getenv('AZURE_OPENAI_API_KEY') or os.getenv('AZURE_INFERENCE_CREDENTIAL'); print('env OK')"更进一步,可以尝试调用共享模块的校验函数。仓库的单元测试也覆盖了这些逻辑(见 tests/ 下的test_env_utils.py等),如果你后续修改了共享代码,可参考 pyproject.toml 中配置的pytest运行测试。按官方文档的约定,“缺少凭据”只会让对应作业在运行时报错(相关作业会给出清晰的缺失变量提示),不会破坏整个课程仓库。
十、学完准备后,如何开始
完成上述步骤后,你已具备完整的运行环境。接下来推荐按 00-course-setup/README.md 的路线进入学习主线:从 第 1 课:生成式 AI 与 LLM 入门 开始,然后一路推进到提示工程、文本/图像/搜索应用、Function Calling、RAG、微调、AI Agent 等章节(目录编号01…21)。如果你在学习中遇到问题,官方在 AI 社区 Discord 中设有学习者频道,项目团队也会在该频道协助答疑;本课程同时是开源项目,欢迎以 Pull Request 或 Issue 的方式提出改进——需要注意按贡献规范提交,且翻译类贡献不接受机器翻译结果,请只在精通的语言上参与翻译。
【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考