Dify案例-接入飛書云文檔實現需求質量評估

dify接入飛書云文檔實現需求質量評估

  • 1. 背景與目標
  • 2. 系統架構與流程
    • 2.1 整體架構圖
    • 2.2 核心流程
    • 2.3 dify工作流概覽
  • 3. 實現細節
    • 3.1 文檔提取
    • 3.2 需求評估
    • 3.3 參數提取
    • 3.4 創建飛書云文檔
  • 4. 難點總結
    • 4.1 提示詞編寫
    • 4.2 關聯飛書云文檔
      • 4.2.1 安裝飛書云文檔插件并關聯到飛書自建應用
      • 4.2.2 飛書自建應用關聯到飛書云文檔
      • 4.2.3 在dify的飛書云文檔節點輸入文件夾token
  • 5. 改進方案
    • 5.1 工作流優化
      • 5.1.1 優化前后對比
      • 5.1.2 優化細節
    • 5.2 配置環境
    • 5.3 讀取飛書云文檔需求

1. 背景與目標

  • 背景
    需求文檔是軟件開發的核心輸入,但人工評估需求質量存在效率低、標準不一致等問題。
    飛書云文檔作為團隊協作工具,可結合自動化工具實現質量評估。
    Dify 作為低代碼/自動化平臺,需與飛書云文檔集成,提升需求管理效率。
  • 目標
    實現 Dify 讀取本地需求文檔內容。
    通過預定義規則,使用 AI 模型對需求文檔進行質量評分(如完整性、清晰度、可測試性等)。
    將評估結果生成結構化報告反饋至飛書文檔。

2. 系統架構與流程

2.1 整體架構圖

+-------------------+       +----------------+       +---------------+
|    本地文檔        |       | Dify 平臺       |       | 評估結果輸出    |
| - 需求文檔存儲      |<----->| - 數據接入模塊   |<----->| - 可視化報告    |
|                   |       | - 質量評估引擎   |       |               |
+-------------------+       +----------------+       +---------------+

2.2 核心流程

  • 文檔讀取:用戶上傳需求文檔至Dify。
  • 預處理:清洗文檔格式(如 Markdown/富文本轉換)、提取關鍵字段(需求描述、驗收標準等)。
  • 質量評估:
    • 規則引擎:基于預設規則。
    • AI 模型:使用 LLM 模型分析需求描述的清晰度、歧義性。
  • 結果反饋:將評估結果回寫至飛書文檔或推送至指定群組。

2.3 dify工作流概覽

在這里插入圖片描述

3. 實現細節

3.1 文檔提取

創建一個空白應用,添加開始節點,在開始節點中定義一個變量來存放上傳的需求文檔
在這里插入圖片描述

使用文檔提取器讀取該需求文檔內容,輸出為text。
在這里插入圖片描述

3.2 需求評估

添加LLM節點,編輯系統提示詞和用戶提示詞,制定需求質量評估規則進行需求評估,輸出為text。
這里需注意,system級別的提示詞和user級別的提示詞的區別。在上個節點中的輸出只能在user級別的提示詞中被處理,如果沒有user提示詞,而選擇用system級別的提示詞處理該變量,會產生報錯。
在這里插入圖片描述

此節點作為該應用的核心部分,承擔了需求質量評估的作用,我們在這個節點定義需求質量評估規則。提示詞工程的精細度決定了需求評估的準確性。

3.3 參數提取

后面的飛書云文檔插件,要求輸入變量作為文檔標題和文檔內容。而在需求評估節點,并沒有這些參數內容輸出,因此我們要從需求評估LLM節點的輸出text中,提取出這兩個參數。
添加參數提取節點,用于從需求評估節點的結果中提取關鍵參數作為文檔標題和文檔內容。
在這里插入圖片描述

3.4 創建飛書云文檔

創建飛書云文檔,將結構化輸出寫入。此處需要設置文檔標題為參數提取節點中的文檔標題參數,文檔內容設置為參數提取節點中的文檔內容參數。另外還需要填寫文檔所在文件夾的Token。
在這里插入圖片描述

4. 難點總結

4.1 提示詞編寫

下面提供system和user兩塊提示詞的內容,存在優化空間。

system提示詞,定義角色和能力,以及目標

# 專家角色設定:QA需求質量評估專家## 身份定義:
你是一名資深軟件需求質量評估專家,精通IEEE 830、ISO/IEC 25030等標準,擅長從技術可行性、業務價值、風險管理多角度評估需求質量,并給出評分依據和改進建議。## 核心技能:
-需求分析方法(用例分析、用戶故事拆分)
-非功能需求(性能、安全、可維護性)識別
-矛盾點與模糊術語檢測
-風險評估與優先級劃分(MoSCoW法)
-需求可測試性(定義驗收標準)# 需求質量評估維度
請按以下維度分析需求文檔,針對每個問題提供改進建議:
評估維度權重評分標準(1-5分)得分
-評估維度:命名規范性
權重:10%
評估標準:
1分:含技術術語(如"開發/接口")
3分:描述功能但無價值
5分:"動詞+業務價值"(如"提升XX轉化率")
附加項:需求名稱是否從開發者角度來描述,是則在此維度得分基礎上減0.5分
-評估維度:用戶價值明確
權重:25%
1分:無用戶故事
3分:有用戶但無痛點
5分:清晰用戶故事+數據支撐(如"減少30%客訴")
-評估維度:驗收標準量化
權重:20%
1分:僅描述"功能可用"
3分:部分量化指標
5分:明確成功指標(如"響應時間≤2s/錯誤率<0.1%")
-評估維度:場景覆蓋度
權重:15%
1分:僅主流程
3分:主流程+部分異常
5分:覆蓋網絡/并發/兼容性等全場景
附加項:
是否存在歧義詞(例如‘支持多種格式’未明確具體格式)?是則在此維度得分基礎上減0.2分
高層需求是否已逐級拆解到子功能?否則在此維度得分基礎上減0.2分
是否存在未定義的業務場景或用戶角色?是則在此維度得分基礎上減0.1分
是否遺漏系統邊界外的依賴項(如第三方接口)?是則在此維度得分基礎上減0.1分
-評估維度:技術合理性
權重:10%
1分:捆綁具體技術方案(如"必須用Redis")
3分:有技術風險未評估
5分:方案中立+風險評估完備
附加項:
是否符合GDPR/CCPA等數據法規?否則在此維度得分基礎上減0.2分
是否包含無障礙訪問設計(WCAG標準)?否則在此維度得分基礎上減0.2分
-評估維度:優先級合理
權重:10%
1分:與OKR無關
3分:關聯次要目標
5分:直接支撐KR且ROI清晰
-評估維度:可測試性
權重:10%
1分:無測試方案
3分:需自研工具
5分:現有工具全覆蓋+數據可獲取# 權重計算
總得分 = Σ(各維度得分 × 權重)
優秀:≥4.5分(總分)
合格:3.0-4.4分
需重構:<3.0分# 生成結構化報告
創建飛書文檔并根據以下模版生成報告
# 需求質量評估報告_需求ID
需求名稱:
## 1. 質量評估
以表格形式展現,展示評估維度、權重、分數、評分依據四列,最后一行展示總質量分。
## 2. 關鍵問題  
- [優先級:高] 問題描述 + 違反的質量屬性  
- [優先級:中] ...  
## 3. 改進建議  
- 對模糊需求"XXX"的澄清方案:建議增加邊界條件定義(示例:用戶并發數≥1000時...)  
## 4. 風險評估  
- 技術風險:需引入未經驗證的AI框架,建議增加POC階段 

user提示詞,用戶需要做的應用做的事情

# 閱讀以下需求文檔內容{{#1743404017066.text#}}# 進行需求質量評估# 輸出結果

4.2 關聯飛書云文檔

在創建飛書云文檔節點中,我們需要調用飛書云文檔插件下的工具。
這一步的前提條件是dify需要在插件市場安裝飛書云文檔插件。

4.2.1 安裝飛書云文檔插件并關聯到飛書自建應用

標簽下拉選擇社交類型,搜索feishu,安裝飛書云文檔插件。
在這里插入圖片描述

安裝完成之后,需要對飛書云文檔進行授權,輸入app ID和app Secret。這兩項值應該從飛書開發者后臺獲取。
進入飛書開放平臺的開發者后臺(可以切換成飛書個人用戶賬號登錄),創建企業自建應用。
在這里插入圖片描述
進入憑證與基礎信息頁面,復制app ID和app Secret,輸入到dify的飛書云文檔插件中去進行授權,授權成功,dify通過飛書云文檔插件能關聯到該飛書自建應用。

4.2.2 飛書自建應用關聯到飛書云文檔

我們通過為飛書自建應用創建機器人能力,再操作該機器人加入群組,給目標飛書云文檔文件夾添加該群組操作權限來使飛書自建應用能操作飛書云文檔下的文件夾(因為我們目標是要在該文件夾下創建編輯云文檔)。
下面是具體實施步驟。
進入應用詳情頁面,添加應用能力為機器人。
在這里插入圖片描述
進入權限管理,添加云文檔的應用身份權限的所有權限,使該應用具備操作云文檔的權限。
在這里插入圖片描述
進入版本管理與發布,創建版本并發布。
在這里插入圖片描述
飛書創建群組,并在群組設置中添加該應用機器人。
在這里插入圖片描述
添加完成之后,進入云盤的目標文件夾,為該文件夾添加協作者為該群組,并且給可管理權限即可。

4.2.3 在dify的飛書云文檔節點輸入文件夾token

通過以上操作,我們已經讓dify的飛書云文檔節點具備了操作飛書云文檔文件夾的能力,但我們還需要告訴該節點,我需要將文件創建到哪個飛書云文檔文件夾下。
配置完成后,需要回到dify的飛書云文檔節點輸入文件夾token。如何獲取文件夾token?最簡單的方法,可以在網頁端打開該飛書文件夾,通過url鏈接獲取到文件夾token,將該token輸入到節點中。
在這里插入圖片描述
其他獲取方式請見飛書開發者手冊。
將以上token輸入到dify的飛書云文檔節點即可。

5. 改進方案

工作流圖

5.1 工作流優化

經測試,上文工作流為串行運行,存在耗時長的弊端。經測試,分析1個需求文檔的各節點耗時如下:

5.1.1 優化前后對比

在這里插入圖片描述
在這里插入圖片描述
因此優化工作流節點,將參數提取器與需求評估LLM節點并行運行。經測試,分析1個需求文檔的各節點耗時如下:
在這里插入圖片描述

5.1.2 優化細節

  • 參數提取器獲取飛書云文檔的內容,從中提取需求ID,作為文檔標題的重要元素。
  • 需求評估獲取飛書云文檔的內容,輸出text(String)作為文檔內容。
    在這里插入圖片描述

5.2 配置環境

在創建和讀取飛書云文檔時,需要輸入token,此內容可以保存在環境變量中。
在這里插入圖片描述

5.3 讀取飛書云文檔需求

將本地文件上傳和提取文檔內容節點更換為獲取飛書云文檔節點,輸入為文檔的url,文檔返回格式為text。
文檔的url為開始節點的變量傳入。該變量需定義為文本類型。
在這里插入圖片描述

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

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

相關文章

機器視覺工程師的專業精度決定職業高度,而專注密度決定成長速度。低質量的合群,不如高質量獨處

在機器視覺行業&#xff0c;真正的技術突破往往誕生于深度思考與有效碰撞的辯證統一。建議采用「70%高質量獨處30%精準社交」的鉆石結構&#xff0c;構建可驗證的技術能力護城河。記住&#xff1a;你的專業精度決定職業高度&#xff0c;而專注密度決定成長速度。 作為機器視覺工…

字符串移位包含問題

字符串移位包含問題 #include <iostream> #include <algorithm> using namespace std; int main(){string a,b;cin>>a>>b;//誰長遍歷誰if(a.size()<b.size()) swap(a,b);//1-對整個字符串進行移位for(int i0; i<a.size(); i){//每次循環都將第一…

SQL 查詢執行順序

SQL 查詢的邏輯處理順序&#xff08;即 SQL 引擎解析和執行查詢的順序&#xff09;與書寫順序不同。以下是 SQL 查詢的完整執行順序&#xff1a; 1. 邏輯執行順序 FROM 和 JOIN - 確定數據來源表并執行連接操作 WHERE - 對行進行篩選 GROUP BY - 將數據分組 HAVING - 對分組…

核心知識——Spark核心數據結構:RDD

引入 通過前面的學習&#xff0c;我們對于Spark已經有一個基本的認識&#xff0c;并且搭建了一個本地的練習環境&#xff0c;因為本專欄的主要對象是數倉和數分&#xff0c;所以就不花大篇幅去寫環境搭建等內容&#xff0c;當然&#xff0c;如果感興趣的小伙伴可以留言&#x…

Spring Boot 嵌入式容器性能對決:Tomcat vs Undertow!

文章目錄 引言理論基礎嵌入式容器TomcatUndertow 實戰性能測試配置 Tomcat 和 Undertow創建測試控制器使用Jmeter壓測 總結 引言 在現代應用開發中&#xff0c;選擇合適的嵌入式容器對于提升應用的性能和響應性至關重要。Spring Boot 提供了多種嵌入式容器選項&#xff0c;其中…

計算機系統---GPU

硬件架構 核心處理器&#xff1a; 流處理器&#xff08;SP&#xff09;&#xff1a;是GPU進行計算的核心單元&#xff0c;數量眾多。例如&#xff0c;NVIDIA的高端GPU可能擁有數千個流處理器。它們可以并行執行大量的計算任務&#xff0c;如在圖形渲染中對每個頂點或像素進行獨…

【GPT寫代碼】動作視頻切截圖研究器

目錄 背景源代碼 end 背景 用python寫一個windows環境運行的動作視頻切截圖研究器&#xff0c;用路徑瀏覽的方式指定待處理的視頻文件&#xff0c;然后點擊分析按鈕&#xff0c;再預覽區域顯示視頻預覽畫面&#xff0c;然后拖動時間軸&#xff0c;可以在預覽區域刷新顯示相應的…

在 .NET 8 中使用自定義令牌身份驗證掌握 SignalR Hub 安全性

最近在練習做一個 Web 開發項目&#xff0c;需要使用 WebSockets 傳輸數據&#xff0c;實現實時通信。這是一個 React.js 項目&#xff0c;后端是 .NET。 雖然 MSDN 提供了出色的頂級文檔&#xff0c;但它通常缺少高級用例所需的低級細節。 一種這樣的場景是使用自定義令牌對…

[2018][note]用于超快偏振開關和動態光束分裂的all-optical有源THz超表——

前言 類型 太赫茲 + 超表面 太赫茲 + 超表面 太赫茲+超表面 期刊 O p e n A c c e s s Open Access Open

家里網絡訪問Github有時候打不開,解決辦法

1、修改Hosts文件修改法 通過DNS查詢工具&#xff08;如&#xff09;獲取最新GitHub域名解析IP修改系統hosts文件&#xff08;路徑&#xff1a;C:\Windows\System32\drivers\etc\hosts&#xff09;&#xff0c;添加&#xff1a;20.205.243.166 github.com 20.27.177.113 github…

MyBatis操作數據庫(1)

1. MyBatis 簡介 MyBatis 是一款持久層框架&#xff0c;簡化了 JDBC 的復雜操作&#xff0c;通過配置和映射文件將 Java 對象與數據庫表關聯。核心優勢&#xff1a; 自動管理資源&#xff1a;無需手動關閉連接、釋放資源。 動態 SQL&#xff1a;支持參數綁定、條件查詢等。 …

ModuleNotFoundError: No module named ‘matplotlib_inline‘

ModuleNotFoundError: No module named matplotlib_inline 1. ModuleNotFoundError: No module named matplotlib_inline2. matplotlib-inlineReferences 如果你在普通的 Python 腳本或命令行中運行代碼&#xff0c;那么不需要 matplotlib_inline&#xff0c;因為普通的 Python…

SSL證書自動化管理(ACME協議)工作流程介紹

SSL證書自動化管理&#xff08;ACME協議&#xff09;是一種用于自動化管理SSL/TLS證書的協議&#xff0c;以下是其詳細介紹&#xff1a; 一、ACME協議概述 ACME協議由互聯網安全研究小組&#xff08;ISRG&#xff09;設計開發&#xff0c;旨在實現SSL證書獲取流程的自動化。通…

基于FPGA的特定序列檢測器verilog實現,包含testbench和開發板硬件測試

目錄 1.課題概述 2.系統測試效果 3.核心程序與模型 4.系統原理簡介 5.完整工程文件 1.課題概述 本課題采用基于偽碼匹配相關峰檢測的方式實現基于FPGA的特定序列檢測器verilog實現,包含testbench和開發板硬件測試。 2.系統測試效果 仿真測試 當檢測到序列的時候&#xf…

#管理Node.js的多個版本

在 Windows 11 上管理 Node.js 的多個版本&#xff0c;最方便的方法是使用 nvm-windows&#xff08;Node Version Manager for Windows&#xff09;。它允許你輕松安裝、切換和管理多個 Node.js 版本。 &#x1f4cc; 方法 1&#xff1a;使用 nvm-windows&#xff08;推薦 ?&a…

【已解決】Webstorm 每次使用 git pull/push 都要輸入令牌/密碼登錄

解決辦法&#xff1a;勾上【使用憑據幫助程序】&#xff08;英文&#xff1a;Use credential helper&#xff09;

大模型架構記錄13【hr agent】

一 Function calling 函數調用 from dotenv import load_dotenv, find_dotenvload_dotenv(find_dotenv())from openai import OpenAI import jsonclient OpenAI()# Example dummy function hard coded to return the same weather # In production, this could be your back…

Spring Boot向Vue發送消息通過WebSocket實現通信

注意&#xff1a;如果后端有contextPath&#xff0c;如/app&#xff0c;那么前端訪問的url就是ip:port/app/ws 后端實現步驟 添加Spring Boot WebSocket依賴配置WebSocket端點和消息代理創建控制器&#xff0c;使用SimpMessagingTemplate發送消息 前端實現步驟 安裝sockjs-…

【嵌入式學習5】PyQt5模塊介紹、創建第一個窗口

目錄 1、PyQt介紹 ①特點 ②主要組件 2、創建第一個窗口 exce_() 1、PyQt介紹 PyQt 是一個用于創建圖形用戶界面&#xff08;GUI&#xff09;應用程序的 Python 庫&#xff0c;它是 Qt 框架的 Python 綁定。 ①特點 跨平臺&#xff1a;支持多種操作系統&#xff0c;包括…

封裝自己的api簽名sdk

api平臺接口調用&#xff0c;需要通過簽名去核對是不是有效的用戶&#xff0c;&#xff0c;一般會給兩個key&#xff0c;acceeKey 和 secretKey,第一個相當于用戶名&#xff0c;第二個相當于密鑰&#xff0c;&#xff0c;&#xff0c;前端通過一定的算法&#xff0c;&#xff0…