使用Flowise服务,您可以轻松编排个性化的对话流程。通过直观的图形界面和灵活的工作流设计,无论您是开发者还是非技术人员,都能轻松创建复杂的交互式聊天应用,并将其集成到业务场景中,从而提升日常研发和管理效率。此外,在ACK集群上部署服务,还支持根据业务需求的变化,实时且平滑地进行扩展,助力业务持续发展。
方案概览
配置一个通用聊天助手,只需3步:
安装flowise组件:通过容器服务创建一个ACK集群,并安装flowise组件。
构建通用聊天助手工作流:通过访问Flowise服务,创建通用聊天助手。
编排个性化聊天流程:最后可以通过设置问答模型和提示词模板,并使用链式模型将其连接。
1. 安装flowise组件
Flowise是一个开源且易于使用的框架,旨在帮助开发者快速而灵活地构建大型语言模型(LLM)应用程序。它通过低代码或无代码的操作方式,简化了 LangChain的使用。Flowise提供了一个直观的用户界面,允许用户通过拖拽可视化组件来构建工作流,从而轻松配置大语言模型的应用。这使得开发者能够更快地从测试阶段过渡到生产阶段。
1.1 环境准备
已通过kubectl工具连接Kubernetes集群。具体操作,请参见获取集群KubeConfig并通过kubectl工具连接集群。
1.2 组件部署
安装部署flowise组件。
登录容器服务管理控制台,在左侧导航栏选择集群。
单击目标集群,进入集群详情页面,如下图所示,按照序号依次单击,为目标集群配置flowise组件。
您无需为组件配置应用名和命名空间,单击⑤下一步后会出现一个请确认弹框,单击是,即可使用默认的应用名(flowise)和命名空间(flowise-system)。
选择Chart 版本为最新版本,单击确定即可完成flowise组件安装。
在参数配置页签,配置自定义的username和password。
校验flowise组件是否正常运行。
执行以下命令,查看
flowise-system
命名空间下的Pod是否为Running状态。kubectl get pod -n flowise-system
预期输出如下,表明flowise组件已经安装成功。
NAME READY STATUS RESTARTS AGE flowise-596fb8bf88-7zdlr 1/1 Running 0 3h flowise-postgresql-0 1/1 Running 0 3h
2. 创建工作流编排模板
2.1 访问Flowise服务
为flowise组件开启公网访问功能。
如果您使用的是生产环境,为了您的应用数据安全,建议您开启访问控制功能。
配置完成后,您会看到flowise组件的外部IP地址(External IP),将该外部IP地址输入浏览器地址栏即可访问Flowise服务。
访问Flowise服务。
访问外部IP地址(External IP),请根据页面提示输入自定义的Username和Password,来使用服务。
如果在安装flowise组件时,未自定义username和password的取值,则使用默认值
Username=flowiseuser
,Password=flowisepassword
访问服务。
2.2 创建Chatflows
Flowise的强大功能之一是您可以将流程转变为工具。例如有一个主要流程来协调何时使用哪些必要的工具,并且每个工具都旨在执行一项特定的任务。
首先每个子流程工具将独立执行,并具有单独的内存以提供更清晰的输出。其次每个子流程的详细输出汇总到最终代理,通常会产生更高质量的输出。
您可以通过以下方式创建Chatflow。
输入username和password登录Flowise服务平台。
创建新的Chatflow。
在Flowise服务平台页面,依次单击Chatflows > Add New创建新的Chatflow。
3. 编排个性化聊天流程
3.1 配置问答模型Chat Models
在Flowise服务中,可通过创建Node以及构建Node之间的联系来编排LLM应用。与积木类似,您可以利用Flowise服务中所有可用的Node,构建一个自定义的大语言模型编排流程、聊天机器人或智能代理等LLM应用。目前Flowise服务支持基于LangChain和LlamaIndex等框架概念,可以从中抽象出Agents、Chains、Chat Models等多种类型的Node。
单击进入Chat Models面板,拖拽创建ChatOpenAI Custom节点。然后依次单击Connect Credential下拉选框 > Create New,输入通义千问的API Key创建新的Connect Credential。
先将Model Name设置为qwen-turbo。然后在Additional Parameters页面将BasePath设置为
https://dashscope.aliyuncs.com/compatible-mode/v1
。
3.2 设置提示词模板Prompt Template
进入Prompts面板,拖拽创建Prompt Template节点,配置Template信息如下。
Question: {question}
Answer: Let's think step by step.
3.3 设置链式模型LLM Chain
进入Chains面板,拖拽创建LLM Chain节点。
将创建完成的模板的节点连接,即可完成通用型聊天助手的编排。
3.3 验证效果
完成Chatflow的编排后单击页面右上角保存按钮,然后可以通过页面右上角的Message按钮进行调试,效果如下。
总结
应用到生产环境
如果您想将开发的AI问答助手引入到您企业或个人的生产环境,可以通过以下2种方式操作。
示例(将AI应用嵌入到网站)
下面将为您详细介绍如何将开发的LLM应用嵌入到您企业或个人网站,您可以按照以下示例进行操作。
本示例作为演示,为了您的应用数据安全,建议您在生产环境同时开启访问控制功能。
已为flowise组件开启公网访问功能,将该外部IP地址输入浏览器地址栏即可访问Flowise服务。更多操作,请参见访问Flowise服务。
在ACK集群中快速构建简单的Web应用来调试您的通用聊天助手。
下面是一个在ACK集群中部署Web应用的示例,它会在您的ACK集群上运行,您可以嵌入在Flowise服务中开发的LLM应用。
获取Flowise服务代码。
如下图所示,选择一种方式将聊天应用的对应的代码嵌入到您的网站中。
在ACK集群中,创建一个Deployment来运行您的Web应用,并创建Service来暴露应用。
以下是一个简单的YAML示例,展示如何部署一个包含静态HTML的Nginx服务器。
登录容器服务管理控制台,在配置项页面,选择命名空间为default,然后单击使用YAML创建资源,将下方YAML内容复制到模板中,并将③处的内容替换成您上一步骤获取的Flowise服务代码。
具体代码信息,请参考下方示例。
成功部署截图如下所示:
为已部署的服务开启公网访问。
为了您的应用数据安全,建议您在生产环境同时开启访问控制功能。
配置完成后,您会看到web-service服务的外部IP地址(External IP),将该外部IP地址输入浏览器地址栏即可访问Web服务。
重要如果您想让其他设备访问,请确保您的集群防火墙或安全组中设置允许流量通过80端口。具体操作,请参见添加安全组规则。
确保您的代码和第三方代码是安全的,避免可能的XSS或恶意代码嵌入。给您提供了一个基本示例以供演示,您可以根据自己的需求进行扩展和修改。
结果展示。
持续改进
如果您想进一步了解如何集成定制化的LLM应用,请参见基于Dify构建网页定制化AI问答助手。
使用Dify服务您可以实现将企业或个人的知识库集成到大模型应用中,从而创建出深度定制化的AI问答解决方案,并且可将其集成到您的业务场景,助力您提升日常研发管理效能。
计费相关
使用本功能会收取ACK Pro集群管理费用和阿里云云产品资源费用。使用本功能涉及的阿里云云产品有:ECS云服务器、CLB负载均衡、EIP弹性公网IP、NAS文件存储等,您需要按照各云产品计费规则为使用的资源付费,费用由各云产品收取。关于集群管理费和云产品资源费用的更多信息,请参见计费说明。