尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

generative-ai-for-beginners 课程指南:LLM 服务提供者选型与 .env 凭证配置实战

generative-ai-for-beginners 课程指南:LLM 服务提供者选型与 .env 凭证配置实战 generative-ai-for-beginners 课程指南LLM 服务提供者选型与 .env 凭证配置实战【免费下载链接】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 课程的课程准备文档 03-providers 展开讲解如何为课程中的编程作业选择并配置 LLM 服务提供者OpenAI、Azure OpenAI、Hugging Face 等以及如何安全地创建和填写.env环境变量文件。读完本文后你将能够独立完成凭证获取、.env配置、Azure 门户/Studio 端点与模型部署名称的填写并能结合仓库源码理解这些环境变量在示例代码中是如何被读取和校验的。课程支持哪些 LLM 提供者课程的编程作业可以通过一个或多个受支持的服务提供者接入大语言模型LLM部署。这些提供者都提供托管端点API我们可以在持有正确凭证API Key 或 Token的前提下以编程方式访问。课程讨论的主要提供者包括OpenAI提供多样的模型包括核心的 GPT 系列Azure OpenAI同样提供 OpenAI 模型但侧重于企业级就绪能力Hugging Face面向开源模型与推理服务器此外当前仓库的英文原版文档 00-course-setup/03-providers.md 还补充了两类选项Microsoft Foundry Models用一个端点和一个 API Key 访问 OpenAI、Meta、Mistral、Cohere、Microsoft 等数百个模型取代将于 2026 年 7 月底退役的 GitHub Models以及离线/本地提供者Foundry Local 或 Ollama可完全离线在本机运行模型无需云订阅。完成这些练习需要使用你自己的账户。所有编程作业都是可选的你可以根据自己的兴趣选择配置其中一个、全部或者一个都不配置。各提供者的注册指引概览如下注册入口成本API Key 获取Playground备注OpenAI按量计费见其定价页基于项目Project管理网页端免代码体验提供多种模型Azure按量计费有免费额度通过 SDK 快速入门通过 Azure AI Studio 快速入门需要提前申请访问权限Hugging Face按量计费访问令牌Access TokenHugging ChatHugging Chat 可用的模型数量有限通过文件名识别作业所需的提供者按照下面的步骤配置本仓库以适配不同的提供者。需要特定提供者的作业其文件名中会包含相应的标记这是本课程仓库的命名约定aoai—— 需要 Azure OpenAI 端点与密钥endpoint, keyoai—— 需要 OpenAI 端点与密钥endpoint, keyhf—— 需要 Hugging Face 令牌githubmodels—— 需要 Microsoft Foundry Models 端点与密钥GitHub Models 将于 2026 年 7 月底退役你可以在仓库中直接验证这一约定例如06-text-generation-apps/python/aoai-app.py、09-building-image-applications/python/aoai-app.py 等aoai-*脚本依赖 Azure OpenAI同目录下的oai-*脚本如 06-text-generation-apps/python/oai-app.py依赖 OpenAI06-text-generation-apps/js-githubmodels/app.js 等js-githubmodels目录下的脚本依赖 Microsoft Foundry Models原 GitHub Models。可以只配置一个、不配置、或全部配置提供者。缺少凭证时相关作业会直接报错退出而不会影响其他作业的运行——这正是采用环境变量隔离凭证的设计意图。创建.env文件在开始之前假设你已经注册了相应提供者并拿到了所需的认证凭证API_KEY 或 Token。对于 Azure OpenAI我们进一步假设你拥有一个有效的 Azure OpenAI 服务部署端点且上面至少部署了一个用于聊天补全的 GPT 模型。接下来配置你的本地环境变量在仓库根目录找到.env.copy文件。仓库当前实际提交的模板内容如下.env.copy# OpenAI Provider OPENAI_API_KEYadd your OpenAI API key here ## Azure OpenAI in Microsoft Foundry ## (Azure OpenAI Service is now part of Microsoft Foundry: https://ai.azure.com) AZURE_OPENAI_API_VERSION2024-10-21 # Default is set! (current stable GA API version) AZURE_OPENAI_API_KEYadd your Foundry resource key here AZURE_OPENAI_ENDPOINTadd your Foundry resource endpoint here, e.g. https://resource-name.openai.azure.com AZURE_OPENAI_DEPLOYMENTadd your chat completion model deployment name here, e.g. gpt-4o-mini AZURE_OPENAI_EMBEDDINGS_DEPLOYMENTadd your embeddings model deployment name here, e.g. text-embedding-3-small ## Microsoft Foundry Models ## (Multi-provider model catalog - one endpoint/key for OpenAI, Meta, Mistral, ## Cohere, Microsoft, and more. Replaces GitHub Models, which retires end of July 2026.) AZURE_INFERENCE_ENDPOINTadd your Microsoft Foundry project endpoint here, e.g. https://resource-name.services.ai.azure.com/models AZURE_INFERENCE_CREDENTIALadd your Microsoft Foundry Models API key here ## Hugging Face HUGGING_FACE_API_KEYadd your HuggingFace API or token here翻译版文档中的模板与当前仓库模板略有差异翻译版记录的是AZURE_OPENAI_API_VERSION2024-02-01且未包含 Foundry 变量而当前仓库实际提交的 .env.copy 已将默认 API 版本更新为2024-10-21并新增了AZURE_INFERENCE_ENDPOINT/AZURE_INFERENCE_CREDENTIAL两个变量。实操时应以仓库中的模板为准。用下面的命令把该文件复制为.env。.env已被 .gitignore 忽略从而保证密钥不会随代码一起提交cp .env.copy .env填写具体值替换右侧的占位符方法见下一节。可选如果你使用 GitHub Codespaces可以把这些环境变量作为Codespaces secrets保存在与该仓库关联的密钥库中此时就不需要本地.env文件了。注意该选项仅在 GitHub Codespaces 中有效如果你改用 Docker Desktop则仍然需要配置本地.env。课程入门页 00-course-setup/README.md 中还给出了 Codespaces 下添加 secret 的配套操作齿轮图标 → 命令面板 → Codespaces: Manage user secret → Add a new secret命名为OPENAI_API_KEY以及使用python-dotenv在脚本中加载.env的最小示例from dotenv import load_dotenv import os load_dotenv() # 从 .env 文件加载环境变量 endpoint os.getenv(AZURE_INFERENCE_ENDPOINT) token os.getenv(AZURE_INFERENCE_CREDENTIAL)逐变量解析.env先看一眼变量名理解它们分别代表什么变量说明HUGGING_FACE_API_KEY你在 Hugging Face 个人资料中创建的用户访问令牌OPENAI_API_KEY用于访问非 Azure 的 OpenAI 端点的授权密钥AZURE_OPENAI_API_KEY用于访问 Azure OpenAIFoundry资源的授权密钥AZURE_OPENAI_ENDPOINT已部署的 Azure OpenAI 资源端点AZURE_OPENAI_DEPLOYMENT文本生成模型的部署端点名称AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT文本嵌入模型的部署端点名称AZURE_INFERENCE_ENDPOINTMicrosoft Foundry 项目的端点用于 Foundry Models 目录AZURE_INFERENCE_CREDENTIALMicrosoft Foundry 项目的 API Key说明其中两个 Azure OpenAI 部署变量分别对应聊天补全文本生成与向量检索嵌入的默认模型。它们的具体设置方法会在相关作业的说明中定义。Azure 与 OpenAI 的关键区别OpenAI 只需一个 API Key 即可用模型名如gpt-4o-mini直接调用而 Azure OpenAI 要求你在资源上显式部署模型调用时使用的是部署名deployment name而非模型名——这就是AZURE_OPENAI_DEPLOYMENT与AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT存在的意义。源码视角环境变量如何被读取与校验配置完成后这些变量在课程代码中是如何被消费的仓库提供了两层实现证据。示例脚本的直接消费方式以 06-text-generation-apps/python/aoai-app.py 为例典型的aoai作业脚本采用如下模式见 aoai-app.py#L7-L15from openai import OpenAI import os from dotenv import load_dotenv load_dotenv() # 从 .env 文件加载环境变量 # 把 OpenAI 客户端指向 Azure OpenAI (Microsoft Foundry) 的 v1 端点 client OpenAI( api_keyos.environ[AZURE_OPENAI_API_KEY], base_urlf{os.environ[AZURE_OPENAI_ENDPOINT].rstrip(/)}/openai/v1/, ) deployment os.environ[AZURE_OPENAI_DEPLOYMENT] prompt Complete the following: Once upon a time there was a response client.responses.create(modeldeployment, inputprompt, storeFalse) print(response.output_text)从源码结构看这里体现了两个要点其一base_url被拼成endpoint/openai/v1/形式走的是兼容的 v1 端点因此脚本中不再需要传递api_version其二请求中的model参数填的是.env里的部署名而不是模型名——这与上文变量表的设计一一对应。共享工具库缺失凭证时报错的可读性课程在 shared/python/env_utils.py 中抽出了一套环境变量工具函数用于“安全地获取并校验环境变量”get_required_env读取单个必需变量若未设置或为空抛出带提示信息的ValueError提示你在.env文件或环境中设置它validate_env_vars批量校验多个变量并把所有缺失的变量名一并列在错误信息中方便一次性补齐get_env_with_default读取带默认值的变量。相应地shared/python/api_utils.py 提供了客户端工厂函数create_openai_client从OPENAI_API_KEY读取密钥创建 OpenAI 客户端缺失时报错create_azure_openai_client从AZURE_OPENAI_ENDPOINT与AZURE_OPENAI_API_KEY构建指向endpoint/openai/v1/的客户端端点或密钥缺失时会分别抛出指向对应环境变量的错误信息。这套校验逻辑的行为有完整的测试覆盖见 tests/test_env_utils.py例如test_get_required_env_empty_raises验证空字符串也会被判定为缺失test_validate_env_vars_reports_all_missing验证多个变量缺失时错误信息会包含全部变量名。也就是说“配置不完整时作业直接报错”这句话在仓库里不仅是约定而且有测试背书。配置 Azure OpenAI从门户PortalAzure OpenAI 的端点与密钥值可以在Azure 门户中找到操作如下进入 Azure 门户点击左侧边栏左侧菜单中的Keys and Endpoint密钥和端点选项点击Show Keys显示密钥——你会看到 KEY 1、KEY 2 和 Endpoint将KEY 1的值填入AZURE_OPENAI_API_KEY将Endpoint的值填入AZURE_OPENAI_ENDPOINT。接下来需要已部署模型的具体信息在 Azure OpenAI 资源的左侧边栏点击Model deployments模型部署选项在目标页面点击Go to Microsoft Foundry portal或Manage Deployments取决于你的资源类型。这会把你带到 Microsoft Foundry 门户在下一节的流程中获取其余的值。背景说明来自仓库英文原版文档Azure OpenAI Service 现已并入 Microsoft Foundry——资源与部署仍显示在 Azure 门户中但日常的模型管理部署、Playground、监控改在 Foundry 门户进行。配置 Azure OpenAI从 Foundry 门户 / Studio按照上文从你的资源进入 Microsoft Foundry 门户旧称 Azure OpenAI Studio点击左侧边栏的Deployments部署选项卡查看当前已部署的模型若目标模型尚未部署使用Deploy model / 创建新部署从模型目录中部署它你需要一个文本生成模型——翻译版文档推荐gpt-35-turbo当前仓库模板注释中推荐gpt-4o-mini你需要一个文本嵌入模型——翻译版文档推荐text-embedding-ada-002当前仓库模板注释中推荐text-embedding-3-small。然后把环境变量更新为实际使用的部署名称。部署名通常与模型名相同除非你显式改过。示例AZURE_OPENAI_DEPLOYMENTgpt-4o-mini AZURE_OPENAI_EMBEDDINGS_DEPLOYMENTtext-embedding-3-small完成后别忘了保存.env文件然后就可以退出编辑器、回到课程说明去运行 Notebook 了。配置 OpenAI从个人资料OpenAI 的 API Key 可以在你的 OpenAI 账户资料页API keys 页面中找到。如果还没有可以先注册账户并创建一个 API Key。拿到密钥后将其填入.env中的OPENAI_API_KEY变量即可。OpenAI 侧没有“部署”概念脚本中直接以模型名发起请求因此配置最简单。配置 Hugging Face从个人资料Hugging Face 的令牌Token可以在个人资料的Access Tokens页面找到。不要公开粘贴或分享这些令牌。正确做法是为本课程的使用场景新建一个令牌再把它复制到.env的HUGGING_FACE_API_KEY变量下。命名说明严格来说它不是 API Key 而是访问令牌但由于其用途是身份认证仓库沿用API_KEY的命名以保持各提供者配置的一致性。配置 Microsoft Foundry Models原 GitHub Models仓库当前英文文档与 .env.copy 注释中还新增了 Foundry Models 的配置路径GitHub Models 将于 2026 年 7 月底退役Foundry Models 是直接的替代品进入 Microsoft Foundry 并创建或打开一个 Foundry 项目浏览模型目录并部署一个模型例如gpt-4o-mini在项目的Overview页面复制endpoint与API key在.env中分别填入AZURE_INFERENCE_ENDPOINT与AZURE_INFERENCE_CREDENTIAL。离线/本地提供者补充如果完全不使用云订阅也可以在本机直接运行兼容的开放模型Foundry Local微软的端侧运行时自动选择最佳执行提供者NPU、GPU 或 CPU并暴露 OpenAI 兼容端点因此可以用最小改动复用课程大部分示例代码Ollama在本地运行 Llama、Phi、Mistral、Gemma 等开放模型的流行选择。课程第 19 课19-slm/README.md提供了这两种方案的实操示例。小结配置自检清单检查项验证方式.env已由.env.copy复制并填入真实凭证确认.env存在于仓库根目录且未被 Git 跟踪.gitignoreAzure 四要素齐全AZURE_OPENAI_ENDPOINT、AZURE_OPENAI_API_KEY、AZURE_OPENAI_DEPLOYMENT、AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT均非空部署名与模型一致部署名通常等于模型名如gpt-4o-mini、text-embedding-3-small缺失变量时的报错可读参考 shared/python/env_utils.py 与 tests/test_env_utils.py空值与未设置都会触发带变量名的ValueError作业与提供者匹配按文件名标记aoai/oai/hf/githubmodels选择已配置提供者的作业完成以上配置后你就可以按照各课程章节的说明开始运行对应的 Notebook 与脚本而不必担心密钥泄漏到版本库中。【免费下载链接】generative-ai-for-beginners21 Lessons, Get Started Building with Generative AI项目地址: https://gitcode.com/GitHub_Trending/ge/generative-ai-for-beginners创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表