GPT 操作库(中间件):Azure Function

简介

本文档为开发者提供了构建连接 GPT 操作到特定应用程序的说明和指南。在继续之前,请确保您已熟悉以下信息:

此特定的 GPT 操作概述了如何构建 Azure Function,即微软的云函数构建器。本文档帮助用户设置一个 OAuth 保护的 Azure Function,以连接到 GPT 操作和示例应用程序。

价值 + 示例业务用例

价值:用户现在可以利用 ChatGPT 的自然语言能力直接连接到 Azure Function。这可以通过几种方式实现:

  • GPT 操作中的 100k 字符限制:用户可以使用中间件预处理 API 的文本响应。例如,您可以在中间件中使用 OpenAI 的 API 在将文本发送回 ChatGPT 之前对其进行摘要。
  • 通常对于操作,用户依赖于 SaaS API 返回文本。您可以将供应商 API 的响应转换为易于理解的文本,并且它可以处理不同的数据类型,如结构化和非结构化数据。
  • 它可以返回文件而不是仅仅返回文本。这对于提供用于数据分析的 CSV 文件很有用,或者可以带回 PDF 文件,ChatGPT 会将其视为上传。

示例用例

  • 用户需要查找 SharePoint 中的文件,但需要在 ChatGPT 和 SharePoint 之间设置中间件应用程序。
  • 用户已在 Azure Function 中连续构建了多个步骤,需要能够使用 ChatGPT 启动该过程。

应用程序信息

应用程序关键链接

在开始之前,请查看应用程序的这些链接:

  • 应用程序网站:https://learn.microsoft.com/en-us/azure/azure-functions/
  • 应用程序 API 文档:https://learn.microsoft.com/en-us/azure/azure-functions/functions-reference/

应用程序先决条件

在开始之前,请确保在您的应用程序环境中完成以下步骤:

  • Azure 门户,具有创建 Azure Function Apps 和 Azure Entra App Registrations 的访问权限。

应用程序设置

安装应用程序

您可以在文档左侧的此处 here 阅读有关 Azure Functions 的语言和部署选项的更多信息。

选项 1:使用 VSCode

请参阅微软的文档 here 以了解如何使用 VSCode 进行部署。如果您熟悉此方法,请随时使用它。

选项 2:直接在 Azure 门户中

请参阅文档 here 以了解如何使用 Azure 门户进行部署。我们将在此处逐步进行演练。

第 1 部分:创建函数

  1. 创建一个 Azure Function app。我使用了以下设置,但您可以使用任何您熟悉的设置。请注意,并非所有语言/操作系统都允许直接在控制台中编辑函数 - 我下面选择的组合可以。在我的演练中,我将所有内容保留为默认设置,并进行了以下选择。以下设置适用于 SharePoint Node.js 解决方案 herehere

  2. 基本信息

    1. 您要部署代码还是容器映像? 代码

    2. 运行时堆栈: Node.js

    3. 操作系统: Windows

  3. 网络

    1. 启用公共访问: 开启(连接到 GPT 需要此设置)
  4. 完成上述操作后,您将进入“部署”页面。部署完成后(只需几分钟),请点击 “转到资源” 返回到 Function App。

第一次尝试此操作时可能会收到错误,请再次点击创建,它很可能会成功。

第 2 部分:设置身份验证
  1. 在 Azure Function App 的左侧菜单中,在“设置”菜单下点击 “身份验证”

  2. 添加身份提供商

  3. 选择 Microsoft 作为身份提供商。

  4. Workforce 作为租户类型

  5. 创建新应用程序。 如果您使用的是现有应用程序,说明会非常相似,但创建一个新应用程序会更容易,因为它会自动公开回调 URL 和 API,并使用“简易身份验证”。您可以在此处 here 阅读更多相关信息。

  6. 将此页面上的所有其他设置保留为默认值,但您可以根据内部指南进行更改。

  7. 权限 选项卡上,点击 添加权限,然后添加 Files.Read.AllSites.ReadAll,然后点击 添加。这允许此应用程序读取文件,这对于使用 Microsoft Graph Search API 很重要。如果您不将其用于 SharePoint 解决方案 herehere,则可以跳过此步骤。

  8. 创建完成后,点击您刚刚创建的企业应用程序(即,离开 Function App 页面并进入您刚刚启动的企业应用程序)。我们现在将授予它一个额外的权限,即通过模拟登录到应用程序的用户来执行 Azure Function。有关更多详细信息,请参见 here

  9. 在主页面上,点击“查看 API 权限”

  10. 在“我的组织使用的 API”中搜索 Microsoft Azure App Service,然后找到 user_impersonation

  11. 添加它,然后您需要 Azure 门户的管理员来 授予管理员同意

5) 在该企业应用程序中,点击“管理”下的左侧菜单中的“公开 API”,然后使用“复制到剪贴板”按钮复制使用 Copy to Clipboard 按钮创建的 范围。范围应类似于 “api://\/user_impersonation”。稍后将其保存为 SCOPE

6) 点击“管理”下的左侧菜单中的“身份验证”

  1. 在“Web”部分下,您会注意到已自动添加了一个回调 URI。添加 Postman 重定向 URI(https://oauth.pstmn.io/v1/callback)用于测试。

7) 在左侧,转到 概述。复制 应用程序(客户端)ID目录(租户)ID,并 稍后保存为 CLIENT_ID TENANT_ID

第 3 部分:设置测试函数
  1. 通过返回主页然后返回到您的 Function App 来离开该页面。

  2. 点击 创建函数。在此示例中,我将在门户中进行开发,但您也可以使用 VSCode 或其他 IDE。

  3. 选择 HTTP 触发器

  4. 对于 授权级别,您可以选择任何您想要的密钥类型。

    1. 请注意,这可能第一次会出错,但函数很可能已经创建,请刷新页面进行检查。
  5. 点击您刚刚创建的函数(您可能需要点击刷新才能看到它)。点击 获取函数 URL 并将其保存在 Postman 中进行测试。稍后将其放入 GPT 中创建 OpenAPI 规范时也会用到。

  1. 返回到函数应用并点击 配置。显示 MICROSOFT_PROVIDER_AUTHENTICATION_SECRET 变量的值,复制它(点击高级编辑进行复制),并 稍后保存

此时,您应该已经创建了一个测试函数,并且您应该已经保存了 客户端 ID、租户 ID、密钥、范围和函数 URL。您现在可以准备在 Postman 中测试身份验证了。

第 4 部分:在 Postman 中测试身份验证
  1. 尝试使用这些 OAuth 设置命中您在 Postman 中创建的端点:

    1. 授权类型: Authorization Code

    2. 授权 URL:https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/authorize

    3. 令牌 URL:https://login.microsoftonline.com/TENANT_ID/oauth2/v2.0/token

    4. 客户端 ID: 上面的第 7 步中的 CLIENT_ID

    5. 客户端密钥: 上面的第 11 步中的 MICROSOFT_PROVIDER_AUTHENTICATION_SECRET

    6. 范围:上面的第 5 步中的 SCOPE

    7. 客户端凭据:在请求正文中发送客户端凭据。

  2. 您需要点击 获取新访问令牌,然后命中您在上面第 10 步中保存的端点。如果成功,您应该会收到此响应:”This HTTP triggered function executed successfully. Pass a name in the query string or in the request body for a personalized response.”

第 5 部分:在 Azure Function 上设置您的应用程序

这应该单独完成,并且特定于您的应用程序。请参阅 Sharepoint Cookbook 以获取相关示例。

第 6 部分:设置 ChatGPT
  1. 为您的端点生成 OpenAPI 规范。

  2. 将其粘贴到 GPT 的操作部分,然后选择 OAuth 作为身份验证类型。像在 Postman 中一样填写 OAuth 设置。

  3. 保存操作后,您将在 GPT 配置底部看到一个回调 URI。复制该 URL,然后返回到 Azure 门户中的 Function App

  4. 点击“设置”下的 身份验证,然后点击您的 Entra 应用程序。

  5. 到达那里后,点击“管理”部分下的 身份验证

  6. 在该页面的“Web”部分下添加一个新的重定向 URI,然后粘贴您从第 16 步获取的回调 URI,然后点击保存。

  7. 测试 GPT,它应该可以按预期工作。

ChatGPT 步骤

自定义 GPT 指令

此内容特定于应用程序。请参阅 Sharepoint Cookbook 以获取示例

OpenAPI 架构

创建自定义 GPT 后,将下面的文本复制到操作面板中。有疑问吗?请查看 入门示例,了解此步骤的详细工作方式。

下面是连接到此中间件的示例。您需要在此部分插入您的应用程序和函数信息。

openapi: 3.1.0
info:
  title: {insert title}
  description: {insert description}
  version: 1.0.0
servers:

  - url: https://{your_function_app_name}.azurewebsites.net/api
    description: {insert description}
paths:
  /{your_function_name}?code={enter your specific endpoint id here}:
    post:
      operationId: {insert operationId}
      summary: {insert summary}
      requestBody: 
{其余内容特定于您的应用程序}

身份验证说明

以下是有关使用此第三方应用程序设置身份验证的说明。有疑问吗?请查看 入门示例,了解此步骤的详细工作方式。

操作前步骤

在 ChatGPT 中设置身份验证之前,请在应用程序中执行以下步骤。

遵循上面设置身份验证的第 2 步和第 4 步

在 ChatGPT 中

在 ChatGPT 中,点击“身份验证”并选择 “OAuth”。输入以下信息。

  • 客户端 ID参见上面第 12 步
  • 客户端密钥同上
  • 授权 URL同上
  • 令牌 URL同上
  • 范围同上
  • 令牌同上

操作后步骤

在 ChatGPT 中设置身份验证后,请在应用程序中执行以下步骤以完成操作。

请参阅上文以测试此应用程序

您希望我们优先处理哪些集成?我们的集成中是否存在错误?在我们的 GitHub 上提交 PR 或 issue,我们会进行查看。