设置开发环境


文档摘要

设置开发环境 我们为这个仓库和课程设置了一个开发容器,该容器包含一个通用的运行时,可以支持Python3、.NET、Node.js和Java开发。相关配置定义在位于此仓库根目录下的 文件中。 要激活开发容器,可以在Github Codespaces(用于云托管运行时)或Docker Desktop(用于本地设备托管运行时)中启动它。阅读此文档以了解开发容器如何在VS Code中工作。 [!TIP] 我们建议使用Github Codespaces进行快速启动,几乎无需任何努力。它为个人账户提供了慷慨的免费使用配额。设置超时以停止或删除非活动的代码空间,以最大化您的配额使用。 执行任务 每节课将提供一些可选的任务,这些任务可能使用一种或多种编程语言,包括:Python、.

设置开发环境

我们为这个仓库和课程设置了一个开发容器,该容器包含一个通用的运行时,可以支持Python3、.NET、Node.js和Java开发。相关配置定义在位于此仓库根目录下的devcontainer.json文件中。

要激活开发容器,可以在Github Codespaces(用于云托管运行时)或Docker Desktop(用于本地设备托管运行时)中启动它。阅读此文档以了解开发容器如何在VS Code中工作。

[!TIP]
我们建议使用Github Codespaces进行快速启动,几乎无需任何努力。它为个人账户提供了慷慨的免费使用配额。设置超时以停止或删除非活动的代码空间,以最大化您的配额使用。

1. 执行任务

每节课将提供一些可选的任务,这些任务可能使用一种或多种编程语言,包括:Python、.NET/C#、Java 和 JavaScript/TypeScript。本节提供关于如何执行这些任务的一般指导。

1.1 Python 任务

Python 任务要么作为应用程序(.py 文件),要么作为 Jupyter 笔记本(.ipynb 文件)提供。

  • 要运行笔记本,请在 Visual Studio Code 中打开它,然后点击右上角的 选择内核 并选择默认的 Python 3 选项。现在您可以点击 全部运行 来执行笔记本。
  • 要从命令行运行 Python 应用程序,请遵循特定于任务的说明,以确保您选择了正确的文件并提供了所需的参数。

2. 配置提供商

任务可能会通过像 OpenAI、Azure 或 Hugging Face 这样的服务提供商与一个或多个大型语言模型(LLM)部署一起使用。这些提供了一个可以通过正确的凭据(API 密钥或令牌)进行编程访问的 托管端点(API)。在这门课中,我们将讨论这些提供商:

  • OpenAI,包括核心 GPT 系列在内的多种模型。
  • Azure OpenAI,专注于企业就绪的 OpenAI 模型。
  • Hugging Face,用于开源模型和推理服务器。

您需要为自己创建的练习使用自己的账户。任务是可选的,因此您可以根据兴趣选择设置其中一个、全部或不设置任何提供商。一些注册指南:

注册 成本 API 密钥 试用平台 备注
OpenAI 定价 项目基础 无代码,网页 多个模型可用
Azure 定价 SDK 快速入门 工作室快速入门 需提前申请访问权限
Hugging Face 定价 访问令牌 Hugging Chat Hugging Chat 有有限的模型

按照下面的步骤来配置此仓库,以便使用不同的提供商。要求特定提供商的任务将在其文件名中包含以下标记之一:

  • aoai - 需要 Azure OpenAI 端点和密钥
  • oai - 需要 OpenAI 端点和密钥
  • hf - 需要 Hugging Face 令牌

您可以配置一个、多个或不配置任何提供商。相关的任务会因为缺少凭据而简单地报错。

2.1 创建 .env 文件

我们假设您已经阅读了上面的指导,并且已注册了相关的提供商,并获得了所需的认证凭据(API 密钥或令牌)。对于 Azure OpenAI,我们假设您也有一个有效的 Azure OpenAI 服务(端点)部署,其中至少有一个 GPT 模型部署用于聊天完成。

下一步是配置您的本地环境变量如下:

  1. 查看根目录中的 .env.copy 文件,该文件应包含类似以下内容:

    # OpenAI Provider OPENAI_API_KEY='<add your OpenAI API key here>' ## Azure OpenAI AZURE_OPENAI_API_VERSION='2024-02-01' # Default is set! AZURE_OPENAI_API_KEY='<add your AOAI key here>' AZURE_OPENAI_ENDPOINT='<add your AOIA service endpoint here>' AZURE_OPENAI_DEPLOYMENT='<add your chat completion model name here>' AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='<add your embeddings model name here>' ## Hugging Face HUGGING_FACE_API_KEY='<add your HuggingFace API or token here>'
  2. 使用以下命令将该文件复制到 .env。此文件是 gitignore-d 的,以保护秘密。

    cp .env.copy .env
  3. 根据下一节描述填写值(替换右侧的占位符)。

  4. (可选)如果您使用 Github Codespaces,您可以选择将环境变量保存为与此仓库关联的 Codespaces 秘密。在这种情况下,您不需要设置本地 .env 文件。但是请注意,此选项仅适用于使用 Github Codespaces 的情况。如果您使用 Docker Desktop,则仍需要设置 .env 文件。

2.2 填充 .env 文件

让我们快速看一下变量名称以理解它们代表的内容:

变量 描述
HUGGING_FACE_API_KEY 这是在您的个人资料中设置的用户访问令牌
OPENAI_API_KEY 这是使用非 Azure OpenAI 端点的服务的授权密钥
AZURE_OPENAI_API_KEY 这是使用该服务的授权密钥
AZURE_OPENAI_ENDPOINT 这是 Azure OpenAI 资源部署的端点
AZURE_OPENAI_DEPLOYMENT 这是用于文本生成的模型部署端点
AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT 这是用于文本嵌入的模型部署端点

注意:最后两个 Azure OpenAI 变量反映了默认用于聊天完成(文本生成)和向量搜索(嵌入)的模型。设置它们的说明将在相关任务中定义。

2.3 从门户配置 Azure

Azure OpenAI 端点和密钥值可以在 Azure 门户中找到,所以让我们从这里开始。

  1. 转到 Azure 门户
  2. 在侧边栏(左侧菜单)中点击 密钥和端点 选项。
  3. 点击 显示密钥 - 您应该会看到以下内容:密钥 1、密钥 2 和端点。
  4. 使用密钥 1 的值作为 AZURE_OPENAI_API_KEY。
  5. 使用端点的值作为 AZURE_OPENAI_ENDPOINT。

接下来,我们需要特定模型的端点。

  1. 在侧边栏(左侧菜单)中点击 模型部署 选项,以查看 Azure OpenAI 资源中的部署。
  2. 在目标页面中,点击 管理部署

这将带您到 Azure OpenAI 工作室网站,在那里我们将找到其他值,如下面所述。

2.4 从工作室配置 Azure

  1. 如上述描述,从资源导航到 Azure OpenAI 工作室
  2. 点击侧边栏(左侧)的 部署 标签,以查看当前部署的模型。
  3. 如果您需要的模型未部署,请使用 创建新部署 来部署它。
  4. 您需要一个 文本生成 模型 - 我们推荐:gpt-35-turbo
  5. 您需要一个 文本嵌入 模型 - 我们推荐 text-embedding-ada-002

现在更新环境变量以反映使用的 部署名称。这通常与模型名称相同,除非您明确更改了它。例如,您可能会有:

AZURE_OPENAI_DEPLOYMENT='gpt-35-turbo' AZURE_OPENAI_EMBEDDINGS_DEPLOYMENT='text-embedding-ada-002'

完成时别忘了保存 .env 文件。现在您可以退出文件并返回到运行笔记本的说明。

2.5 从个人资料配置 OpenAI

您的 OpenAI API 密钥可以在您的 OpenAI 账户中找到。如果没有,请注册一个帐户并创建一个 API 密钥。一旦有了密钥,就可以将其用于填充 .env 文件中的 OPENAI_API_KEY 变量。

2.6 从个人资料配置 Hugging Face

您的 Hugging Face 令牌可以在您的个人资料下的 访问令牌 中找到。不要公开发布或分享这些令牌。相反,为该项目创建一个新的令牌,并将其复制到 .env 文件中的 HUGGING_FACE_API_KEY 变量下。注意:这实际上不是 API 密钥,但用于身份验证,所以我们保持这种命名约定以保持一致性。

声明:
本文件灏天文库团队进行了翻译。尽管我们力求准确,但请注意,翻译可能包含错误或不准确之处。原文档以其原始语言为准。我们不对因使用此翻译而产生的任何误解或误译负责。


发布者: 作者: 转发
评论区 (0)
U