首页 > 其他分享 >使用Azure容器应用/实例部署Azure OpenAI Proxy

使用Azure容器应用/实例部署Azure OpenAI Proxy

时间:2023-08-21 15:01:59浏览次数:29  
标签:容器 选项卡 配置 实例 OpenAI Proxy 应用 Azure

现在存在许多开源的OpenAI解决方案,为了尽量避免修改源代码,直接接入Azure OpenAI。可以考虑使用Azure OpenAI代理方案,它可以实现以OpenAI的API方式去管理Azure的OpenAI实例。

几乎全部的这种方案,都会提示使用容器来部署。类似下面的命令执行。

由于我本身没有容器相关的知识背景,这篇学习笔记也是为了加强记忆。

docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY="sk-xxxx" \
   -e CODE="your-password" \
   yidadaa/chatgpt-next-web

Azure容器应用/实例

考虑到零基础学习,我采用了Azure自带的服务去进行部署。

容器实例(Azure Container Instances)是Azure云平台上的一项服务,用于快速部署和运行容器化应用程序。它提供了一种简单、快速且无服务器的方式来运行单个容器实例,无需管理底层的虚拟机基础结构。

通过使用容器实例,你可以快速部署和运行容器化的应用程序,无需关注底层的基础设施管理,从而提高开发和部署的效率。容器实例还可以与其他Azure服务进行集成,如Azure存储、Azure虚拟网络等,以构建更复杂的应用场景。

容器应用(Azure Container Apps)是Azure云平台上的一项服务,用于部署、管理和运行复杂的容器化应用程序。它提供了完整的容器编排和管理功能,使开发人员和运维团队能够更好地管理多个容器实例,并实现高可用性、弹性伸缩和负载均衡等特性。

容器应用建立在Kubernetes容器编排引擎之上,为用户提供了一种托管式的Kubernetes服务。Kubernetes是一个开源的容器编排平台,它可以自动化地管理和调度容器化应用程序,并提供高可用性、弹性伸缩、自动负载均衡等功能。容器应用提供了一些额外的功能,如自动伸缩、负载均衡、监控和日志等。自动伸缩功能可以根据应用的负载情况自动调整容器实例的数量,以满足不同的流量需求。负载均衡功能可以将流量均匀分发给多个容器实例,提高应用程序的可用性和性能。监控和日志功能可以帮助你监控应用程序的运行状态,并收集和分析容器的日志数据。

粗略来看,两者都是提供容器服务的一种服务,但是实际应用的角度来说,对于初学者而言,容器应用更合适一些。

这是因为容器应用可以图形化的去配置证书、自定义域、cors等信息。基本都可以依靠点点点的方式来处理。

配置过程

下面是一个简单的配置过程,以这一段docker的配置举例,翻译成在容器应用中的操作。

docker pull yidadaa/chatgpt-next-web
docker run -d -p 3000:3000 \
   -e OPENAI_API_KEY="sk-xxxx" \
   -e CODE="your-password" \
   yidadaa/chatgpt-next-web

容器应用(Azure Container App)配置过程:

  1. 登录到Azure门户(https://portal.azure.com)。./)
  2. 在左侧导航栏中,选择“容器应用”。
  3. 点击“+ 创建”按钮,开始创建容器应用。
  4. 在“基本”选项卡中,填写以下信息:
  • 订阅:选择你的订阅。
  • 资源组:选择或创建一个资源组。
  • 应用名称:输入应用的名称。
  • 区域:选择容器应用所在的区域。
  1. 在“映像和标记”选项卡中,填写以下信息:
  • 映像位置:选择“公共”。
  • 映像:输入yidadaa/chatgpt-next-web
  1. 在“环境变量”选项卡中,点击“+ 添加环境变量”按钮,添加一个环境变量。
  • 名称:输入OPENAI_API_KEY
  • 值:输入sk-xxxx
  • 依次输入所有的环境变量
  1. 在“端口”选项卡中,可以添加端口映射。
  2. 在“高级”选项卡中,可以配置容器应用的高级设置,如CPU、内存等。
  3. 点击“下一步: 网络”按钮。
  4. 在“网络”选项卡中,可以配置容器应用的网络设置。
  5. 点击“下一步: 完成”按钮。
  6. 在“查看 + 创建”选项卡中,确认配置信息,并点击“创建”按钮来创建容器应用。

从配置过程来看,容器应用需要配置的过程和直接使用docker相似。但是因为整个应用是自动启动的,所以不需要运行docker run,应用本身也是启动的。

特别注意

特别需要注意,国内用户很可能无法直接使用 容器应用的默认应用程序url,类似https://gptnextxxxxxxxxx。astasia.azurecontainerapps.io 这种地址。国内对此类地址有DNS污染,包括不限于错误的地址引导,错误的证书等。为了解决这个问题,必须要使用自定义域功能,指定到一个自己的域名上。

本身配置比较简单,熟悉流程后操作并不复杂。

  1. 配置自定义域:
  • 在Azure门户中,导航到你的Web App容器实例资源组。
  • 找到你的Web App容器实例资源,点击进入。
  • 在左侧导航栏中,选择"自定义域"。
  • 点击"添加自定义域"按钮。
  • 在弹出窗口中,输入你的自定义域名,并选择"使用SSL"选项。
  • 如果你有SSL证书,可以选择上传证书;否则,可以选择Azure提供的免费SSL证书。
  • 点击"添加"按钮完成自定义域的配置。
  1. 配置DNS解析:
  • 在域名注册商的控制台中,添加DNS解析记录,将域名解析到Azure Web App容器实例的公共IP地址。
  • 此处需要注意,需要添加cname和txt两条记录
  1. 验证配置:
  • 使用浏览器访问你的自定义域名,应该能够正常访问到Azure Web App容器实例。
  • 常规而言,证书生效在10分钟内。

至此,你应该获得了一个类似于https://xxx.xxx.xx的容器应用,根据实际需求进行使用即可。

费用对比

Azure的容器应用(Azure Container App)和容器实例(Azure Container Instances)的计费方式有以下不同点:

  1. 单位:Azure容器应用的计费单位是应用服务计划(App Service Plan),而容器实例的计费单位是每秒钟的实例使用时间。
  2. 预配资源:Azure容器应用需要预先创建应用服务计划,其中包含一定数量的虚拟机实例和资源分配,而容器实例无需预先创建资源,按需分配。
  3. 持续运行:Azure容器应用是持续运行的应用服务,按照应用服务计划的定价进行计费。而容器实例是按照实例的使用时间计费,只在需要时启动和运行。
  4. 容器应用拥有更小的实例(0.25核、0.5G),而容器实例是(1核、1G),因此小规模而言,用容器应用也会更加方便。

作者简介

九叔,《微软SystemCenter2012R2私有云部署实战》图书作者,往届微软MVP,关注云和PowerShell。

免责

本文仅代表个人观点,不代表任何组织、机构或公司的立场。所提供的信息仅供参考和一般性信息之用途。尽管本文力图提供准确、全面的信息,但不能保证其准确性、完整性、及时性或适用性。

读者在采取本文提供的任何行动或依赖所包含的信息时,应自行承担风险。作者和OpenAI不对任何直接或间接引起的损失或损害承担责任。

本文中提到的任何产品、服务、公司或组织的商标、标识、图像等知识产权归其各自所有者所有。

读者应自行进行进一步的研究和咨询,以便做出明智的决策。对于任何与本文相关的具体问题,请咨询相关领域的专业人士或权威机构。

最后,本文的目的是提供一般性信息,并不构成任何形式的专业建议。读者在使用本文提供的信息时应行使谨慎和判断力。

感谢阅读本文,并理解其中的免责声明。


标签:容器,选项卡,配置,实例,OpenAI,Proxy,应用,Azure
From: https://blog.51cto.com/jiushu/7175302

相关文章

  • 使用-Terraform-创建一个新的Azure-资源组-虚拟网络-子网
    本文主要讲解如何使用Terraform-在AzureCloud中创建一个新的资源组然后在这个资源组中,创建一个虚拟网络-192.168.10.0/24,以及8个/27位子网环境说明:一般都是资源与资源组在一个Location位置中,写法也相对简单一些因此本文,使用了,资源组,与虚拟网络资源不在同一个Location位置的......
  • 通过 OpenAI 引入superalignment
    推荐:使用NSDT场景编辑器助你快速搭建可二次编辑的3D应用场景首席执行官SamAltman曾多次谈到AI的安全性,例如在美国参议院委员会上,他说:“我认为如果这项技术出错,它可能会出错......我们想对此直言不讳。我们希望与政府合作,防止这种情况发生。话虽如此,OpenAI的团队已经将事情掌握......
  • Meta即将推出开源代码生成平台Code Llama,挑战OpenAI和google
    您的关注是对我最大的支持......
  • [Microsoft Azure] 在 Azure App Service 上创建和使用虚拟目录
    本文将详细介绍如何在MicrosoftAzure的AzureAppService上创建和使用虚拟目录。我们将通过实际操作步骤来帮助您理解虚拟目录的创建和使用方法,为您的应用程序提供灵活的资源管理方式。一、什么是虚拟目录?虚拟目录是一种将物理文件夹路径映射到Web应用程序的URL空间......
  • 【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
    问题描述在AppServiceforlinux上创建一个PHP应用,通过phpinfo()查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size大小为0.那么,在AppService的环境中,如何开启JIT呢? 问题解答PHP8在PHP的内核中添加了JIT编译器,可以极大地提高性能。首先,仅在启用opcache的情况下,JI......
  • 【Azure App Service】为部署在App Service上的PHP应用开启JIT编译器
    问题描述在AppServiceforlinux上创建一个PHP应用,通过phpinfo()查看PHP的扩展设置,发现JIT没有被开启, jit_buffer_size大小为0.那么,在AppService的环境中,如何开启JIT呢? 问题解答PHP8在PHP的内核中添加了JIT编译器,可以极大地提高性能。首先,仅在启用opcache的情况下,JIT才有效......
  • dpvs syn-proxy实现分析
    1 syn flood就是同步发送SYN数据包,这样的操作对于发送方(攻击者)来说是非常容易实现的,而对于接收方(目标)来说会需要消耗更多的资源去接收和处理数据包。除此之外,在发送完SYN数据包之后,我们不需要等待接收端返回的SYN/ACK数据包,我们只需要继续向对方发送SYN数据包并让服务器自己去处......
  • [Microsoft Azure] 快速上手创建Azure App Service服务
    本文将带您快速了解如何使用MicrosoftAzure创建AzureAppService服务,让您在短时间内掌握这一流行的云计算平台。 MicrosoftAzure是一个功能强大的云计算平台,提供了广泛的云服务,包括虚拟机、数据库、存储等。在本篇博客中,我们将重点介绍AzureAppService服务的创建过程。A......
  • 通过微软Azure调用GPT的接口API-兼容平替OpenAI官方的注意事项
    众所周知,我们是访问不通OpenAI官方服务的,但是我们可以自己通过代理或者使用第三方代理访问接口现在新出台的规定禁止使用境外的AI大模型接口对境内客户使用,所以我们需要使用国内的大模型接口国内的效果真的很差,现在如果想使用GPT大模型,可以使用微软Azure的OpenAI服务。 负责......
  • 关于使用Terraform为Azure创建一个资源组的简单案例
    使用Terraform创建AzureCloud平台的资源需要,得还有如下主要的环境及条件a、安装有Terraformb、解决身份认证及相关的权限++++++++++++++++++++++++++++++++++++++++++++++本文的目标,创建一个rg-开着的随机名称的资源组先得准备有4个文件,【providers.tf】、【main.tf】、【v......