赞
踩
Dify 是一款开源的大语言模型(LLM)应用开发平台。它融合了后端即服务(Backend as Service)和 LLMOps 的理念,使开发者可以快速搭建生产级的生成式 AI 应用。即使你是非技术人员,也能参与到 AI 应用的定义和数据运营过程中。
资源编排服务(Resource Orchestration Service, ROS)是阿里云提供基于基础设施即代码(Infrastructure as Code, IaC) 理念的自动化部署服务,我们可以通过定义一个 JSON/YAML/Terraform
模板,轻松部署一套云上的 Dify 环境。
我们可以看到通过 ROS 可以非常快捷地部署阿里云上的各种云资源(比如 VPC、VSwitch、ECS 实例等)和应用程序(比如 Dify)。如果想了解是如何做到的,那么可以阅读此章节。
Resources
:定义了 VPC、VSwitch、ECS 实例、安全组、安全组规则以及安装 Dify 的命令执行。Parameters
:定义了常用的参数,比如可用区、ECS实例类型类型。Outputs
:定义了自定义输出,比如 Dify 服务的地址。ROSTemplateFormatVersion: '2015-09-01' Description: en: Build the large language model (LLM) application development platform Dify on the ECS instance (CentOS 7). zh-cn: 在ECS实例(CentOS 7)上搭建大语言模型(LLM) 应用开发平台Dify。 Parameters: ZoneId: Type: String Label: en: Availability Zone zh-cn: 可用区ID AssociationProperty: ALIYUN::ECS::Instance:ZoneId InstanceType: Type: String Label: en: Instance Type zh-cn: 实例类型 AssociationProperty: ALIYUN::ECS::Instance::InstanceType AssociationPropertyMetadata: ZoneId: ${ZoneId} DefaultValueStrategy: recent SystemDiskCategory: Type: String Label: en: System Disk Type zh-cn: 系统盘类型 AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory AssociationPropertyMetadata: LocaleKey: DiskCategory ZoneId: ${ZoneId} InstanceType: ${InstanceType} AutoSelectFirst: true AutoChangeType: false Default: cloud_essd InstancePassword: Type: String Label: en: Instance Password zh-cn: 实例密码 Description: en: Server login password, Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in). zh-cn: 服务器登录密码,长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。 ConstraintDescription: en: Length 8-30, must contain three(Capital letters, lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbol in). zh-cn: 长度8-30,必须包含三项(大写字母、小写字母、数字、 ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ 中的特殊符号)。 AssociationPropertyMetadata: Visible: Condition: Fn::Equals: - ${SelectInstance} - false Default: AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$' MinLength: 8 MaxLength: 30 NoEcho: true Resources: Vpc: Type: ALIYUN::ECS::VPC Properties: CidrBlock: 192.168.0.0/16 VSwitch: Type: ALIYUN::ECS::VSwitch Properties: ZoneId: Ref: ZoneId VpcId: Ref: Vpc CidrBlock: 192.168.0.0/24 SecurityGroup: Type: ALIYUN::ECS::SecurityGroup Properties: VpcId: Ref: Vpc SecurityGroupIngress_80: Type: ALIYUN::ECS::SecurityGroupIngress Properties: SecurityGroupId: Ref: SecurityGroup SourceCidrIp: 0.0.0.0/0 IpProtocol: tcp NicType: intranet PortRange: 80/80 InstanceGroup: Type: ALIYUN::ECS::InstanceGroup Properties: VpcId: Ref: Vpc VSwitchId: Ref: VSwitch SecurityGroupId: Ref: SecurityGroup ImageId: centos_7_9 InstanceName: dify InstanceType: Ref: InstanceType SystemDiskCategory: Ref: SystemDiskCategory Password: Ref: InstancePassword IoOptimized: optimized MaxAmount: 1 DS_Instances: Type: DATASOURCE::ECS::Instances Properties: InstanceIds: Fn::GetAtt: - InstanceGroup - InstanceIds InstallDify: Type: ALIYUN::ECS::RunCommand Properties: InstanceIds: Fn::GetAtt: - InstanceGroup - InstanceIds Type: RunShellScript Sync: true Timeout: 1800 CommandContent: | #!/bin/bash echo "#########################" echo "# Install Docker" echo "#########################" wget -O /etc/yum.repos.d/docker-ce.repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo yum -y install docker-ce systemctl start docker systemctl enable docker echo "#########################" echo "# Install Dify" echo "#########################" yum -y install git git clone --depth 1 https://github.com/langgenius/dify.git /opt/dify cd /opt/dify/docker docker compose up -d docker compose ps Outputs: DifyUrl: Description: Dify default address. Value: Fn::Sub: - http://${IP} - IP: Fn::Jq: - First - if .[0].PublicIpAddress != [] then .[0].PublicIpAddress[0] else .[0].EipAddress.IpAddress end - Fn::GetAtt: - DS_Instances - Instances Metadata: ALIYUN::ROS::Interface: TemplateTags: - acs:example:AI:在ECS实例(CentOS 7)上搭建大语言模型(LLM) 应用开发平台Dify
基于 IaC 的理念,通过定义一个模板,使用 ROS 进行自动化部署,可以非常高效快捷地部署任意云资源和应用(比如 Dify 服务)。相比于手动部署或者通过 API、SDK 的部署方式,有着高效、稳定等诸多优势,也是服务上云的最佳实践。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。