使用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服務代碼。
具體代碼信息,請參考下方示例。
apiVersion: apps/v1 kind: Deployment metadata: name: web-deployment spec: replicas: 2 selector: matchLabels: app: web template: metadata: labels: app: web spec: containers: - name: web image: registry.openanolis.cn/openanolis/nginx:1.14.1-8.6 ports: - containerPort: 80 volumeMounts: - name: web-content mountPath: /usr/share/nginx/html volumes: - name: web-content configMap: name: web-config --- apiVersion: v1 kind: Service metadata: name: web-service spec: selector: app: web ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer --- apiVersion: v1 kind: ConfigMap metadata: name: web-config data: index.html: | <!DOCTYPE html> <html lang="zh"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>最簡單的網站服務</title> </head> <body> <h1>歡迎來到我的網站!</h1> <script type="module"> import Chatbot from "https://cdn.jsdelivr.net/npm/flowise-embed/dist/web.js" Chatbot.init({ chatflowid: "86c03xxx-de3a-4xx3-9xx2-f5d56xxxx0a4", apiHost: "http://127.xx.xx.1:8080", }) </script> </body> </html>
成功部署截圖如下所示:
為已部署的服務開啟公網訪問。
為了您的應用數據安全,建議您在生產環境同時開啟訪問控制功能。
配置完成后,您會看到web-service服務的外部IP地址(External IP),將該外部IP地址輸入瀏覽器地址欄即可訪問Web服務。
重要如果您想讓其他設備訪問,請確保您的集群防火墻或安全組中設置允許流量通過80端口。具體操作,請參見添加安全組規則。
確保您的代碼和第三方代碼是安全的,避免可能的XSS或惡意代碼嵌入。給您提供了一個基本示例以供演示,您可以根據自己的需求進行擴展和修改。
結果展示。
持續改進
如果您想進一步了解如何集成定制化的LLM應用,請參見基于Dify構建網頁定制化AI問答助手。
使用Dify服務您可以實現將企業或個人的知識庫集成到大模型應用中,從而創建出深度定制化的AI問答解決方案,并且可將其集成到您的業務場景,助力您提升日常研發管理效能。
計費相關
使用本功能會收取ACK Pro集群管理費用和阿里云云產品資源費用。使用本功能涉及的阿里云云產品有:ECS云服務器、CLB負載均衡、EIP彈性公網IP、NAS文件存儲等,您需要按照各云產品計費規則為使用的資源付費,費用由各云產品收取。關于集群管理費和云產品資源費用的更多信息,請參見計費說明。