Dify 0.15.3 輸入變量無法被重新賦值問題-解決方法

目錄

一、問題描述

?二、解決方法

2.1 原因

2.2 修改源碼

2.3 重新打包 dify-api 鏡像

2.4 修改 docker-compose.yaml 文件

2.5 重啟啟動鏡像


一、問題描述

Dify 0.15.3 是一個比較穩定的版本,Dify 1.0 是一個大版本更新,目前還有很多 Bug。但是,Dify 0.15.3 在【開始】組件中存在一個Bug,即:同一個對話中,輸入變量無法被重新賦值。

如上所示,val 變量值在同一會話中多次從 inputs 字段傳入參數賦值時,val 一直是最初的值,不會變化。

?二、解決方法

2.1 原因

這是因為在 Dify 0.15.3 源碼中,處理邏輯是:如果會話存在,則不解析輸入參數,只有第一次會話時解析會話參數,原代碼如下所示。

conversation_id=conversation.id if conversation else None,
inputs=conversation.inputs
if conversation                 # 舊會話不解析輸入參數
else self._prepare_user_inputs( # 新會話解析輸入參數user_inputs=inputs, variables=app_config.variables, tenant_id=app_model.tenant_id
),
query=query,

?

2.2 修改源碼

分別修改api/core/app/apps/advanced_chat/app_generator.py、api/core/app/apps/agent_chat/app_generator.py、api/core/app/apps/chat/app_generator.py 的代碼,如下所示。

2.3 重新打包 dify-api 鏡像

修改代碼后,使用 api/Dockerfile 文件重新打包 api 鏡像,執行如下命令。

docker build -t dify-api:0.15.4 .

?

2.4 修改 docker-compose.yaml 文件

如果 Dify 還在運行中,執行如下命令停止,如下所示。

PS E:\code\code\dify-0.15.3\docker> docker compose down
[+] Running 11/11? Container docker-sandbox-1         Removed                                                                                                  0.8s? Container docker-weaviate-1        Removed                                                                                                  0.5s? Container docker-nginx-1           Removed                                                                                                 10.8s? Container docker-worker-1          Removed                                                                                                  5.2s? Container docker-ssrf_proxy-1      Removed                                                                                                 11.0s? Container docker-web-1             Removed                                                                                                 10.4s? Container docker-api-1             Removed                                                                                                  4.2s? Container docker-db-1              Removed                                                                                                  0.8s? Container docker-redis-1           Removed                                                                                                  0.7s? Network docker_ssrf_proxy_network  Removed                                                                                                  0.4s? Network docker_default             Removed                                                                                                  0.2s
PS E:\code\code\dify-0.15.3\docker>

修改 docker/docker-compose.yaml 中使用的 docker 鏡像,修改 api 和 worker 使用的鏡像為 dify-api:0.15.4,如下所示。

api:image: langgenius/dify-api:0.15.4 # 修改為 0.15.4restart: alwaysenvironment:......# worker service# The Celery worker for processing the queue.
worker:image: langgenius/dify-api:0.15.4   # 修改為 0.15.4restart: alwaysenvironment:......

?

2.5 重啟啟動鏡像

執行如下命令重啟 Dify。

PS E:\code\code\dify-0.15.3\docker> docker compose up -d
[+] Running 11/11? Network docker_ssrf_proxy_network  Created                                                                                                  0.0s? Network docker_default             Created                                                                                                  0.0s? Container docker-db-1              Started                                                                                                  1.1s? Container docker-ssrf_proxy-1      Started                                                                                                  2.0s? Container docker-sandbox-1         Started                                                                                                  1.7s? Container docker-web-1             Started                                                                                                  1.5s? Container docker-redis-1           Started                                                                                                  1.8s? Container docker-weaviate-1        Started                                                                                                  1.7s? Container docker-worker-1          Started                                                                                                  2.8s? Container docker-api-1             Started                                                                                                  2.8s? Container docker-nginx-1           Started                                                                                                  3.2s
PS E:\code\code\dify-0.15.3\docker>

執行完以上修改后,開始組件中的變量就可以重新賦值了。

參考鏈接:

Ensure the 'inputs' field in /chat-messages takes effect every time by Wu-Jiayang · Pull Request #7955 · langgenius/dify · GitHub

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/898789.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/898789.shtml
英文地址,請注明出處:http://en.pswp.cn/news/898789.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

SQL Server查詢計劃操作符(7.3)——查詢計劃相關操作符(11)

7.3. 查詢計劃相關操作符 98)Table Scan:該操作符從查詢計劃參數列確定的表中獲取所有數據行。如果其參數列中出現WHERE:()謂詞,則只返回滿足該謂詞的數據行。該操作符為邏輯操作符和物理操作符。該操作符具體如圖7.3-98節點1所示。 圖 7.3-…

數據庫練習2

目錄 1.向heros表中新增一列信息,添加一些約束,并嘗試查詢一些信息 2.課堂代碼練習 插入語句 INSERT INTO 刪除語句DELETE和TRUNCATE 更新語句UPDATE和replace 查詢語句SELECT 條件查詢 select語句中的特殊情況 ???查詢排序 order by 分組查詢…

Java架構師成長之路

概述 本教程主要從6個方面,全面講解Java技術棧的知識。 1.性能調優 深入理解MySQL底層原理、索引邏輯,數據結構與算法。使用Explain進行優化分析MVCC原理剖析日志機制解析 2.框架源碼 掌握Spring底層原理帶你手寫一個Spring解析IOC、AOP源碼、以及事…

資金管理策略思路

詳細描述了完整交易策略的實現細節,主要包括輸入參數、變量定義、趨勢判斷、入場與出場條件、止損與止盈設置等多個方面。 輸入參數(Input): EntryFrL (.6):多頭入場的前一日波動范圍的倍數。 EntryFrS (.3)&#xff1…

k8s--集群內的pod調用集群外的服務

關于如何讓同一個局域網內的Kubernetes服務的Pod訪問同一局域網中的電腦上的服務。 可能的解決方案包括使用ClusterIP、NodePort、Headless Service、HostNetwork、ExternalIPs,或者直接使用Pod網絡。每種方法都有不同的適用場景,需要逐一分析。 例如&…

數據模型,數據建模,組件,核心價值,使用,意義

數據模型 一組由符號,文本組成的集合, 用以準確表達信息景觀, 達到有效交流,溝通的目的 數據建模 是發現,分析和確定數據需求的過程,是一種稱為數據模型的精確形式表示和傳遞這些需求 數據模型的組件 實體, 關系, 屬性和域 數據模型的核心價值 交流性 精確性 數據模型的…

【QA】外觀模式在Qt中有哪些應用?

1. QWidget及其布局管理系統 外觀模式體現 QWidget 是Qt中所有用戶界面對象的基類,而布局管理系統(如 QVBoxLayout、QHBoxLayout、QGridLayout 等)就像是一個外觀類。客戶端代碼(開發者編寫的界面代碼)通常不需要直接…

解鎖云原生后端開發新姿勢:騰訊云大模型API實戰攻略

目錄 云原生后端與大模型融合的開篇之章? 探秘云原生后端開發? 云原生后端是什么? 云原生后端架構核心要素? 微服務架構? 容器化技術? 服務發現與配置管理? Kubernetes 編排? 走進騰訊云大模型知識引擎? 引擎獨特功能與優勢? DeepSeek - R1、V3 兩款模型 …

AWS NoSQL解決方案全景圖

(技術架構對比表) 服務名稱數據模型協議兼容性核心架構特性適用場景DynamoDB鍵值/文檔原生API分布式SSD、自動分片高并發事務處理DocumentDB文檔型MongoDB 4.0存儲計算分離、6副本日志體系JSON數據聚合分析MemoryDB鍵值流數據Redis 6.2多AZ持久化、微秒…

【拒絕算法PUA】LeetCode 2116. 判斷一個括號字符串是否有效

目錄 系列文章目錄 專題總結: C刷題技巧總結: 題目 2116. 判斷一個括號字符串是否有效 難度 描述 解題方法1 系列文章目錄 專題總結: 【拒絕算法PUA】0x00-位運算【拒絕算法PUA】0x01- 區間比較技巧【拒絕算法PUA】0x02- 區間合并技…

常見中間件漏洞攻略-Tomcat篇

一、 CVE-2017-12615-Tomcat put方法任意文件寫入漏洞 第一步:開啟靶場 第二步:在首頁抓取數據包,并發送到重放器 第三步:先上傳嘗試一個1.txt進行測試 第四步:上傳后門程序 第五步:使用哥斯拉連接 二、后…

《精益創業》第十三章《尾聲:杜絕浪費》總結

核心思想: “杜絕浪費”是精益創業的終極目標與核心理念,其本質是通過系統性識別并消除一切不創造用戶價值的活動,將有限資源聚焦于真正驅動增長的“價值流”。浪費不僅指物質損耗,更包括時間、人力與機會成本的隱性流失。 一、精…

【nodejs】爬蟲路漫漫,關于nodejs的基操

一.下載安裝nodejs 官網地址:Node.js — 在任何地方運行 JavaScript 二.下載安裝vscode代碼編輯器 官網地址:Download Visual Studio Code - Mac, Linux, Windows 三.修改本地腳本策略 1,windowsi 打開電腦設置 2,輸入powersh…

圖論 | 島嶼數量(深搜,廣搜)

島嶼數量 acm模式&#xff1a;99.島嶼數量 核心代碼模式&#xff1a; 200. 島嶼數量 思路 遍歷grid&#xff0c;如果它是1&#xff0c;則通過bfs/dfs將這個小島的grid變為0 dfs def dfs(grid,i,j):if i<0 or j<0 or i>len(grid) or j>len(grid[0]):returnif g…

CSS 文檔流:元素排列的底層邏輯與布局控制

CSS 文檔流:元素排列的底層邏輯與布局控制 一、文檔流的核心概念 文檔流(Normal Flow)作為瀏覽器默認的布局模式,從根本上決定了元素在頁面上的自然排列順序。**它的核心規則遵循從上到下依次堆疊的原則,其中塊級元素會獨占一行,行內元素則水平排列。**這種布局模式與書…

el-table表格toggleRowSelection方法選中無效

開發中會有對表格中進行默認選中的功能&#xff0c;element-plus官方有一個選中示例&#xff0c;如下 const toggleSelection (rows?: User[]) > {if (rows) {rows.forEach((row) > {multipleTableRef.value!.toggleRowSelection(row, undefined)})} else {multipleTa…

Java EE(16)——網絡原理——TCP協議解析二

4.滑動窗口(效率機制) 上篇博客講到的確認應答/超時重傳/連接管理都是安全機制&#xff0c;但也會降低傳輸效率。滑動窗口就是在保證可靠傳輸的基礎上&#xff0c;盡可能地提高傳輸效率。 根據確認應答機制&#xff0c;客戶端每發送一個請求都需要收到服務器的確認應答報文后才…

從入門到精通【MySQL】 CRUD

文章目錄 &#x1f4d5;1. Create 新增??1.1 單行數據全列插入??1.2 單行數據指定列插入??1.3 多行數據指定列插入 &#x1f4d5;2. Retrieve 檢索??2.1 全列查詢??2.2 指定列查詢??2.3 查詢字段為表達式??2.4 為查詢結果指定別名??2.5 結果去重查詢 &#x1f…

C++學習之云盤上傳文件列表下載

1.上傳打開文件操作 1. 注冊 客戶端 成功 {"code":"002"} 該用戶已存在 {"code":"003"} 失敗 {"code":"004"} 服務器 2. 登錄 客戶端 服務器 // url http: //127.0.0.1:80/reg // post 數據格式 …

OpenCV圖像拼接(5)用于計算一組圖像的特征點和描述符的函數computeImageFeatures()

操作系統&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 cv::detail::computeImageFeatures 是 OpenCV 中用于計算一組圖像的特征點和描述符的函數&#xff0c;通常在圖像拼接或類似的任務中使用。這個函…