AI知识库丨全网最强 一站式人工智能知识库
加入飞书群公众号购买账号反馈建议
  • 首页
  • 欢迎使用civitai系列脚本
  • 自营业务
    • 账号购买
    • 商业项目
  • ChatGPT
    • 新手入门
      • 入门指南
      • 使用相关
      • ChatGPT变懒解决方法
    • GPTs
      • GPTs应用推荐
  • Stable Diffusion
    • 新手入门
  • Midjourney
    • 新手入门
  • Sora
    • Sora 学习手册 持续更新
  • 推荐阅读
    • Midjourney做表情包|设计麻瓜也能10分钟上架一套表情包
    • 微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT
由 GitBook 提供支持
在本页
  • 优势
  • 📘先决条件
  • 👋🏻 介绍
  • 💙 一键部署 Azure
  • 👨🏻‍💻 从本地机器运行
  • ☁️ 部署到 Azure - GitHub Actions
  • 🔑 环境变量

这有帮助吗?

  1. 推荐阅读

微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT

上一页Midjourney做表情包|设计麻瓜也能10分钟上架一套表情包

这有帮助吗?

优势

  1. 私密性:内置的隐私保障,完全与OpenAI运营的保持隔离。

  2. 可控性:网络流量可以完全隔离到您的网络中,并且还内置了其他企业级安全控制。

  3. 价值:通过您自己的内部数据源(即插即用)或使用插件与您的内部服务集成(例如,ServiceNow等),增加业务价值。 我们构建了一个解决方案加速器,以赋能您的工作人员使用Azure ChatGPT。

📘先决条件

  1. 要在Azure上部署和运行ChatGPT,您需要一个具有访问Azure OpenAI服务的Azure订阅。在请求访问权限。一旦获得访问权限,请按照此链接中的说明部署gpt-35-turbo或gpt-4模型。

  2. 设置GitHub或Azure AD进行身份验证:下面部分展示了如何配置身份验证提供者。> 💡注意:您可以使用提供者将身份解决方案配置为身份验证提供者。

👋🏻 介绍

  • Azure ChatGPT 是使用下述技术构建的。

  • Node.js 18:一个开源的、跨平台的 JavaScript 运行时环境。

  • Next.js 13:通过扩展最新的 React 特性,使您能够创建全栈 web 应用程序。

  • NextAuth.js:Next.js 13 的可配置身份验证框架。

  • LangChain JS:用于构建智能应用程序的 AI 编排层。

  • Tailwind CSS:是一个实用为先的 CSS 框架,提供一系列预定义的类,可以用来混合匹配每个元素的样式。

  • shadcn/ui:使用 Radix UI 和 Tailwind CSS 构建的可重复使用组件。

  • Azure Cosmos DB:完全托管的平台即服务(PaaS)NoSQL 数据库,用于存储聊天记录。

  • Azure App Service:完全托管的平台即服务(PaaS),用于托管 web 应用程序、REST API 和移动后端。![下载失败](./微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT.assert/architecture.png)

💙 一键部署 Azure

👨🏻‍💻 从本地机器运行

在本地克隆该存储库或者复制到您的Github账户。从“src”目录下运行以下所有步骤。

  1. 确保在您的Azure订阅中部署了一个Cosmos DB实例。

# Azure OpenAI configuration
AZURE_OPENAI_API_KEY=
AZURE_OPENAI_API_INSTANCE_NAME=
AZURE_OPENAI_API_DEPLOYMENT_NAME=
AZURE_OPENAI_API_VERSION=

# GitHub OAuth app configuration
AUTH_GITHUB_ID=
AUTH_GITHUB_SECRET=

# Azure AD OAuth app configuration
AZURE_AD_CLIENT_ID=
AZURE_AD_CLIENT_SECRET=
AZURE_AD_TENANT_ID=

# When deploying to production,
# set the NEXTAUTH_URL environment variable to the canonical URL of your site.
# More information: https://next-auth.js.org/configuration/options

NEXTAUTH_SECRET=
NEXTAUTH_URL=http://localhost:3000

AZURE_COSMOSDB_URI=
AZURE_COSMOSDB_KEY=
  1. 将当前活动目录更改为src

  2. 通过运行npm install安装npm包

  3. 通过运行npm run dev启动项目

  4. 现在你应该会被提示登录你选择的OAuth提供者。登录成功后,你可以开始创建新的对话。​ ![下载失败](./微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT.assert/chat-home.png)

![下载失败](./微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT.assert/chat-history.png)

☁️ 部署到 Azure - GitHub Actions

🧬 Fork 该存储库

🗝️ 在您的GitHub存储库中配置

  1. AZURE_CREDENTIALSGitHub工作流程需要一个名为AZURE_CREDENTIALS的机密来对Azure进行身份验证。该机密包含在包含容器应用程序和容器注册表的资源组上具有Contributor角色的服务主体的凭据。

  2. 在包含Azure应用服务的资源组上创建具有Contributor角色的服务主体。

az ad sp create-for-rbac
   --name <NAME OF THE CREDENTIAL> --role contributor --scopes /subscriptions/<SUBSCRIPTION ID>/resourceGroups/<RESOURCE GROUP> --sdk-auth --output json
  1. 复制命令的JSON输出。

  2. 在GitHub存储库中,导航到“设置”>“机密”>“操作”,然后选择“新存储库机密”。

  3. 将“AZURE_CREDENTIALS”输入为名称,并将JSON输出的内容粘贴为值。

🔄 运行GitHub Actions

一旦配置了密钥,GitHub Actions将在每次代码推送到存储库时触发。或者,您可以通过在GitHub的Actions选项卡中点击"Run Workflow"按钮来手动运行工作流。 ![下载失败](./微软发布Azure ChatGPT:适用企业内使用的私有和安全 ChatGPT.assert/runworkflow.png)

🪪 添加身份提供者

完成部署后,您需要添加一个身份提供者来对您的应用进行身份验证。 ​ ⚠️ 注意:下面只需要一个身份提供者。

GitHub身份验证提供者

我们将创建两个GitHub应用程序:一个用于本地测试,另一个用于生产环境。 ​

🟡 开发应用程序设置

  1. 填写以下细节

Application name: Azure ChatGPT DEV Environment
Homepage URL: http://localhost:3000
Authorization callback URL: http://localhost:3000/api/auth/callback/github

🟢 生产应用程序设置

  1. 填写以下详细信息

Application name: Azure ChatGPT Production
Homepage URL: https://YOUR-WEBSITE-NAME.azurewebsites.net
Authorization callback URL: https://YOUR-WEBSITE-NAME.azurewebsites.net/api/auth/callback/github

⚠️ 完成应用程序设置后,请确保本地和Azure应用服务上的环境变量已经更新。

# Azure AD OAuth app configuration

AZURE_AD_CLIENT_ID=
AZURE_AD_CLIENT_SECRET=
AZURE_AD_TENANT_ID=

🔑 环境变量

以下是所需的环境变量,需要添加到Azure Portal或.env.local文件中。

App Setting
Value
Note

AZURE_OPENAI_API_KEY

Azure OpenAI资源的API密钥

AZURE_OPENAI_API_INSTANCE_NAME

Azure OpenAI资源的名称。

AZURE_OPENAI_API_DEPLOYMENT_NAME

The name of your model deployment

AZURE_OPENAI_API_VERSION

2023-03-15-preview

API version when using gpt chat

AUTH_GITHUB_ID

Client ID of your GitHub OAuth application

AUTH_GITHUB_SECRET

Client Secret of your GitHub OAuth application

NEXTAUTH_SECRET

Used to encrypt the NextAuth.js JWT, and to hash email verification tokens. This set by default as part of the deployment template

NEXTAUTH_URL

Current webs hosting domain name with HTTP or HTTPS. This set by default as part of the deployment template

AZURE_COSMOSDB_URI

URL of the Azure CosmosDB

AZURE_COSMOSDB_KEY

API Key for Azure Cosmos DB

AZURE_AD_CLIENT_ID

The client id specific to the application

AZURE_AD_CLIENT_SECRET

The client secret specific to the application

AZURE_AD_TENANT_ID

The organisation Tenant ID

点击“部署到 Azure”按钮,并根据部分在 Azure 门户中配置您的设置。 有关将身份验证添加到您的应用程序的重要信息,请参阅下面的部分。 ​

创建一个名为.env.local的新文件,用于存储环境变量,并添加以下变量。 请注意: 不要使用双引号,并且不要删除任何变量。 确保NEXTAUTH_URL= 这一行没有注释。

将该存储库fork到您自己的组织中,以便您可以针对自己的Azure订阅执行GitHub Actions。 ​

选择“添加机密”。2.AZURE_APP_SERVICE_NAME 在相同的存储库密钥下,添加一个新的变量AZURE_APP_SERVICE_NAME,以部署到Azure Web应用程序。该密钥的值是您的Azure Web应用程序的名称,例如从域中的my-web-app-name。

前往GitHub OAuth应用程序设置页面

创建一个新的OAuth应用程序

转到GitHub OAuth 应用程序设置

创建一个新的OAuth 应用程序

Azure OpenAI
此处
添加身份提供者
NextAuth
部署
环境变量
http://localhost:3000
点此开始Fork
https://my-web-app-name.azurewebsites.net/
https://github.com/settings/developers
https://github.com/settings/applications/new
https://github.com/settings/developers
https://github.com/settings/applications/new