一键云部署:资源编排 ROS 轻松部署 LLM 流程编排服务 Flowise

news/2025/3/13 19:58:19/文章来源:https://www.cnblogs.com/alicloudros/p/18235922

Flowise是一个开源的低代码工具,供开发者构建定制化的 LLM 流程编排和 AI 代理。

资源编排服务(Resource Orchestration Service, ROS)是阿里云提供基于基础设施即代码(Infrastructure as Code, IaC) 理念的自动化部署服务,我们可以通过定义一个 JSON/YAML/Terraform 模板,轻松部署一套云上的 Flowise 环境。

部署步骤

  1. 登录ROS 控制台-Flowise 部署页面
  2. 配置模板参数:选择 ECS 实例的可用区、实例类型等
  3. 点击【下一步】,然后【创建】。部署完成后,点击资源栈的输出,即可看到 Flowise 服务的地址。点击链接即可体验 Flowise 的功能。

⚠️说明:

  • 本示例使用 GitHub 站点进行克隆,可能会因网络问题导致克隆失败。如遇此问题,请重新部署,或手动登录到 ECS 实例中执行安装命令(见模板中 RunCommand)。
  • Flowise 安装在 /opt/Flowise 下,日志文件为 flowise.log

部署原理

我们可以看到通过 ROS 可以非常快捷地部署阿里云上的各种云资源(比如 VPC、VSwitch、ECS 实例等)和应用程序(比如 Flowise)。如果想了解是如何做到的,那么可以阅读此章节。

编写 ROS 模板。在如下模板中定义了:

  • Resources:定义了 VPC、VSwitch、ECS 实例、安全组、安全组规则以及安装 Flowise 的命令。
  • Parameters:定义了常用的参数,比如可用区、ECS实例类型类型。
  • Outputs:定义了自定义输出,比如 Flowise 服务的地址。
ROSTemplateFormatVersion: '2015-09-01'
Description:en: Build the LLM orchestration flow & AI agents service Flowise on the ECS instance (Ubuntu 22.04).zh-cn: 在ECS实例(Ubuntu 22.04)上搭建LLM流程编排和AI代理服务Flowise。
Parameters:ZoneId:Type: StringLabel:en: Availability Zonezh-cn: 可用区IDAssociationProperty: ALIYUN::ECS::Instance:ZoneIdInstanceType:Type: StringLabel:en: Instance Typezh-cn: 实例类型AssociationProperty: ALIYUN::ECS::Instance::InstanceTypeAssociationPropertyMetadata:ZoneId: ${ZoneId}DefaultValueStrategy: recentSystemDiskCategory:Type: StringLabel:en: System Disk Typezh-cn: 系统盘类型AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategoryAssociationPropertyMetadata:LocaleKey: DiskCategoryZoneId: ${ZoneId}InstanceType: ${InstanceType}AutoSelectFirst: trueAutoChangeType: falseDefault: cloud_essdInstancePassword:Type: StringLabel:en: Instance Passwordzh-cn: 实例密码Description:en: Server login password, Length 8-30, must contain three(Capital letters,lowercase letters, numbers, ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/ Special symbolin).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}- falseDefault:AllowedPattern: '[0-9A-Za-z\_\-\&:;''<>,=%`~!@#\(\)\$\^\*\+\|\{\}\[\]\.\?\/]+$'MinLength: 8MaxLength: 30NoEcho: true
Resources:Vpc:Type: ALIYUN::ECS::VPCProperties:CidrBlock: 192.168.0.0/16VSwitch:Type: ALIYUN::ECS::VSwitchProperties:ZoneId:Ref: ZoneIdVpcId:Ref: VpcCidrBlock: 192.168.0.0/24SecurityGroup:Type: ALIYUN::ECS::SecurityGroupProperties:VpcId:Ref: VpcSecurityGroupIngress_3000:Type: ALIYUN::ECS::SecurityGroupIngressProperties:SecurityGroupId:Ref: SecurityGroupSourceCidrIp: 0.0.0.0/0IpProtocol: tcpNicType: intranetPortRange: 3000/3000InstanceGroup:Type: ALIYUN::ECS::InstanceGroupProperties:VpcId:Ref: VpcVSwitchId:Ref: VSwitchSecurityGroupId:Ref: SecurityGroupImageId: ubuntu_22_04InstanceName: FlowiseInstanceType:Ref: InstanceTypeSystemDiskCategory:Ref: SystemDiskCategoryPassword:Ref: InstancePasswordIoOptimized: optimizedMaxAmount: 1DS_Instances:Type: DATASOURCE::ECS::InstancesProperties:InstanceIds:Fn::GetAtt:- InstanceGroup- InstanceIdsInstallFlowise:Type: ALIYUN::ECS::RunCommandProperties:InstanceIds:Fn::GetAtt:- InstanceGroup- InstanceIdsType: RunShellScriptSync: trueTimeout: 1800CommandContent: |#!/bin/bashecho "#########################"echo "# Install NodeJS"echo "#########################"curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bashexport NVM_DIR="$HOME/.nvm"[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"nvm install 22npm config set registry https://registry.npmmirror.comnpm i -g pnpmecho "#########################"echo "# Install Flowise"echo "#########################"git clone --depth 1 https://gitclone.com/github.com/FlowiseAI/Flowise.git /opt/Flowise && cd /opt/Flowiseret_code=$?if [ $ret_code -ne 0 ]; thenecho "Git clone https://gitclone.com/github.com/FlowiseAI/Flowise.git failed. Exiting."exit $ret_codefipnpm installpnpm buildnohup pnpm start > flowise.log 2>&1 &
Outputs:FlowiseUrl:Description: Flowise default address.Value:Fn::Sub:- http://${IP}:3000- IP:Fn::Jq:- First- if .[0].PublicIpAddress != [] then .[0].PublicIpAddress[0] else .[0].EipAddress.IpAddressend- Fn::GetAtt:- DS_Instances- Instances
Metadata:ALIYUN::ROS::Interface:TemplateTags:- acs:example:AI:在ECS实例(Ubuntu 22.04)上搭建LLM流程编排和AI代理服务Flowise

在 ROS 控制台中使用此模板创建资源栈。ROS 会自动解析出模板中资源的依赖关系,按照资源依赖顺序创建云资源。如果资源间没有依赖,则会并发创建,从而提升部署效率。ROS 会把这次创建的所有资源存放到一个“资源栈”中,后续可以方便地管理这组资源集合。比如:

  • 将新模板应用到这个“资源栈”中,从而更新里面的资源。
  • 删除这个“资源栈”,从而把所有的资源删掉。

总结

基于 IaC 的理念,通过定义一个模板,使用 ROS 进行自动化部署,可以非常高效快捷地部署任意云资源和应用(比如 Flowise 服务)。相比于手动部署或者通过 API、SDK 的部署方式,有着高效、稳定等诸多优势,也是服务上云的最佳实践。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/721077.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CUDA程序优化-1.基础介绍

介绍CUDA的基本概念和架构,帮助读者建立对CUDA的初步认识,包括硬件架构/CUDA基础等内容简介 本合集主要介绍我在开发分布式异构训练框架时的CUDA编程实践和性能优化的相关内容。主要包含以下几个部分:介绍CUDA的基本概念和架构,帮助读者建立对CUDA的初步认识,包括硬件架构/…

第二次博客作业

前言 这次的作业是第一次博客作业的迭代和新的一个大作业的两次迭代三次大作业的组合。 1.第四次大作业 这次大作业输入信息分为5种:题目信息、试卷信息、答卷信息、学生信息、删除题目信息。信息可能会打乱且顺序混合输入。需要正则表达式判断是否满足格式,只有正确的格式才…

第二次blog总结

一、前言:第四次pta作业: 1.知识点:考察类的继承,抽象类的使用。 2.题量:3道简单题,1道迭代难题。 3.难度:这次最后一道题在上次的基础上添加了题目的种类( eg: 选择题、填空题 )等,难度增加的还行,不算太难也不算太容易。第五次pta作业: 1.知识点:考察类实现Comp…

检修日记点滴

5.30 周四 今天是第一天到检修班组学习,今天的主要任务比较简单.主要是熟悉班组情况,了解热工工作职责和任务。上午跟前辈咨询了检修工作的大体情况,相关工作纪律,然后队长分配了跟班师傅,刚好遇到的师傅在检修室工作,好巧不巧还是熟人,足球队一起踢球的,顿时亲切感十足.上午跟…

【VMware vSphere】安装配置Update Manager Download Service(UMDS)作为 vLCM 的下载存储库。

VMware vSphere Update Manager Download Service (UMDS) 是 vSphere Lifecycle Manager(vLCM) 的可选模块。我在之前文章中提到这个功能,当 vSphere 环境能够连接 Internet 时,我们可以使用 vLCM 的在线 Internet 下载源获取修补程序,当 vSphere 环境不能连接 Internet 时…

西方那么发达的营养学和医学,为啥长寿最多的人群在日本

哈喽,大家好,我是木头左!一、引言 当谈论长寿时,可能会首先想到的是日本。据统计,日本的人均寿命在全球名列前茅,远远超出许多西方国家。那么,为什么在营养学和医学技术发达的西方国家中,日本的寿命最长呢? 二、日本的长寿文化 日本的长寿与其独特的饮食文化和生活方式…

题目集4~6的总结性Blog

4~6次大作业总结 前言 在题目的开始设计好类和结构真的很重要,之前一直上来就开始写,后来就变得吃力,这样不能很好的一次性完成代码,发现应该先设计,在着手编写代码之前,可以先绘制类图,明确每个类的属性和方法,以及它们之间的关系。这有助于构建清晰的代码结构和逻辑,…

Unity Memory Profiler 内存分析

参考:Unity Memory Profiler从入门到精通-CSDN博客 Unity Memory Profiler 是一个用于分析和调试 Unity 游戏或应用程序内存使用情况的工具。它帮助开发者了解应用程序的内存分配和使用情况,从而识别和解决潜在的内存问题,如内存泄漏、过度的内存分配和不必要的内存消耗。 U…

密码工程-大素数

任务详情 在openEuler(推荐)或Ubuntu或Windows(不推荐)中完成下面任务 利用大整数库(GMP或者OpenSSL),参考《密码工程》p113伪代码实现 GenerateLargePrime 函数(10‘) 在测试代码中产生一个在范围l = 2^255至u = 2^256-1内的素数。(5‘) 用OpenSSL验证你产生的素数是不是…

西数SMR硬盘二级译码表结构(190模块)

西数(WD)的二级译码表对应的模块文件为190模块。一,190模块的作用: 用于记录LBA对应的物理位置(磁头,柱面,扇区),即实现对逻 辑地址与物理地址的转换。由于WD已经有31模块负责此项转换工作,因此190模块被称之为二级译码表,简称T2。 二,文件头部结构(地址:0): 0-3:文…

字体样式和文本样式

2.2字体样式 /* font-family:字体 font-weight:字体粗细 font-size:字体大小 color:字体颜色 */ <style> body{ font-family: 楷体; color: red; } .p1{ font-weight: bold; } h…

flutter设置全屏,状态栏变成黑色

@override void initState() {super.initState();SystemChrome.setEnabledSystemUIMode(SystemUiMode.manual, overlays: []); }首先需要在页面初始化时设置如上代码,隐藏状态栏。 此时状态栏不会显示,但是系统会用黑色区域占用。 所以还需要添加如下配置在如下路径android\a…