DeepSeek+Dify之五工作流引用API案例

DeepSeek+Dify之四Agent引用知識庫案例

文章目錄

    • 背景
    • 整體流程
    • 測試數據
    • 用到的節點
      • 開始
      • HTTP請求
      • LLM
      • 參數提取器
      • 代碼執行
      • 結束
    • 實現步驟
      • 1、新建工作流
      • 2、開始節點
      • 3、Http請求節點
      • 4、LLM節點(大模型檢索)
      • 5、參數提取器節點(提取大模型檢索后數據)
      • 6、代碼執行節點(數據json化)
      • 7、結束節點
    • 測試
    • 發布
    • 導出

背景

可通過API,針對用戶輸入的請求數據,借助工作流以及 Deepseek 大模型的檢索與重排序功能,提升召回數據的質量。

整體流程

測試數據

在這里插入圖片描述

用到的節點

開始

功能:定義一個 workflow 流程啟動的初始參數
在這里插入圖片描述

HTTP請求

功能:允許通過 HTTP 協議發送服務器請求
在這里插入圖片描述

LLM

功能:通過上傳的excel格式的文檔,通過deepseek大模型的檢索和重排序,提升召回文檔數據的質量
在這里插入圖片描述

參數提取器

功能:利用 LLM 從自然語言內推理提取出結構化參數,用于后置的工具調用或 HTTP 請求。
在這里插入圖片描述

代碼執行

功能:執行一段 Python 或 NodeJS 代碼實現自定義邏輯
在這里插入圖片描述

結束

功能:定義一個 workflow 流程的結束和結果類型
在這里插入圖片描述

實現步驟

1、新建工作流

在這里插入圖片描述

在這里插入圖片描述

下面就是從開始節點開始添加節點了

2、開始節點

添加一個變量,用于接收用戶輸入的請求
在這里插入圖片描述

3、Http請求節點

API請求示例,看自己的API
在這里插入圖片描述
瀏覽器中按F12快捷鍵,找到下面的位置,找到請求數據的記錄,復制cURL,我這是內網的地址
在這里插入圖片描述

拷貝cURL到http請求節點參數中
在這里插入圖片描述
點擊保存,很多參數自動填充了
在這里插入圖片描述
修改address變量為開始節點的輸入參數,參數都是api的,根據自己的需求修改
在這里插入圖片描述

4、LLM節點(大模型檢索)

下面設置參數
(1)大模型如果已經設置系統默認模型,可以不用修改模型了
(2)上下文就是上一節點的Http請求結果
(3)system提示詞根據需求來,目前的需求是對用戶輸入的請求數據,通過deepseek大模型的檢索和重排序,提升Http召回數據的質量,核心是說清楚需求,以及輸出格式
在這里插入圖片描述

在這里插入圖片描述

完整的提示詞

你是一個強大的地址匹配助手。你的任務是接收一個非標地址(字符串類型),存儲在變量 {{#1743564833545.input#}}中,以及一個來自 API 返回的 JSON 對象(對象類型,包含一個名為 body的數組),存儲在變量 {{#context#}} 中,結構如下:
{"body": [{"mc": "大嶝","address": "福建省廈門市翔安區大嶝街道田墘社區田墘北里22號","queryIdentifying": "模糊匹配2"},// 可能存在多個類似對象]
}
### 任務詳細描述
1. 在 {{#context#}} 的 `body` 列表中的每個 JSON 對象里查找 `address` 或 `mc` 字段。這些字段可能包含與非標地址相關的信息。
2. **匹配邏輯**:判斷每個 JSON 對象中的 `address` 或 `mc` 字段與輸入的 {{#1743564833545.input#}} 的匹配程度。匹配程度的判斷可以基于地址的相似性、包含關系等。例如,如果非標地址是“朝陽區朝陽公園”,而某個 JSON 對象的 `address` 字段是“北京市朝陽區朝陽公園路”,則認為這是一個較高的匹配度。
3. **置信度計算**:計算匹配的置信度值,范圍為0到1。0表示完全不匹配,1表示完全匹配。置信度的計算可以基于地址字符串的相似度(例如,如果兩個字符串完全相同,則置信度為1;如果只有部分相同,則根據相同部分的比例計算置信度)。
4. 找出與輸入的非標地址最匹配的 JSON 對象。如果有多個 JSON 對象的匹配度相同且最高,則選擇第一個出現的對象。
5. **輸出格式**:- `nonaddress`: {{#1743564833545.input#}}- `address`: 匹配到的 JSON 對象中的 `address` 字段值(如果存在)- `mc`: 匹配到的 JSON 對象中的 `mc` 字段值(如果存在)- `confidence`: 匹配的置信度值,范圍為0到1,保留兩位小數。- `queryIdentifying`: "大模型匹配"### 示例
#### 輸入
```json
{"nonaddress": "北京市朝陽區朝陽公園","context": {"body": [{"address": "北京市海淀區中關村","mc": "中關村科技園區","queryIdentifying": "模糊匹配2"},{"address": "北京市朝陽區朝陽公園路","mc": "朝陽公園","queryIdentifying": "模糊匹配2"}]}
}
#### 輸出
```json
{"nonaddress": "北京市朝陽區朝陽公園","address": "北京市朝陽區朝陽公園路","mc": "朝陽公園","confidence": 0.90,"queryIdentifying": "大模型匹配"
}## 限制  
- 不處理非地址文本(如“請打電話聯系我”)  
- 地址要素不全時保留有效部分  
- 若文本無地址信息,返回`{"error": "未檢測到有效地址"}`  
- 不要捏造數據,只能從{{#context#}}中找出匹配的數據

5、參數提取器節點(提取大模型檢索后數據)

下面設置參數
(1)大模型如果已經設置系統默認模型,可以不用修改模型了
(2)上下文就是上一節點的大模型檢索結果
(3)提取參數根據需求添加
(4)system提示詞內容主要就是提取大模型的數據,因為它是string格式的,需要從string中提取需要的結構化數據

在這里插入圖片描述

完整的提示詞

提取{{#1744090176627.text#}}中```json\n{\n     \"nonaddress\": \"廈門市公安局\",\n     \"address\": \"福建省廈門市思明區中華街道霞溪社區新華路45-1號\",\n     \"mc\": \"廈門市公安局\",\n     \"confidence\": 1.0,\n     \"queryIdentifying\": \"大模型匹配\"\n}\n```格式內容,該 JSON 應包含以下字段信息
'''json
{- `nonaddress`: JSON 數據中‘nonaddress’字段的值- `address`: JSON 數據中‘address’字段的值- `mc`:  JSON 數據中‘mc’字段的值- `confidence`: JSON 數據中‘confidence’字段的值,是浮點類型- `queryIdentifying`: JSON 數據中‘queryIdentifying’字段的值
}

6、代碼執行節點(數據json化)

主要是為了將上一步的幾個字段統一輸出
參數設置:
(1)輸入變量
上一級的幾個參數
(2)python3
根據需求修改腳本

def main(nonaddress: str, address: str, mc: str, confidence: str, queryIdentifying: str) -> dict:try:aa={}aa["nonaddress"] = nonaddressaa["address"] = addressaa["mc"] = mcaa["confidence"] = confidenceaa["queryIdentifying"] = queryIdentifyingreturn {"result": aa}except (KeyError, IndexError, json.JSONDecodeError):return {"result": None}

在這里插入圖片描述

7、結束節點

輸出變量就是上一級的輸出結果
在這里插入圖片描述

測試

直接運行,輸入數據測試
在這里插入圖片描述

結果
在這里插入圖片描述

查看每個節點的過程數據
在這里插入圖片描述

發布

在這里插入圖片描述
發布測試
在這里插入圖片描述
在這里插入圖片描述

結果

導出

可以將整個工作流的配置導出

在這里插入圖片描述

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

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

相關文章

《從分遺產說起:JS 原型與繼承詳解》

“天天開心就好” 先來講講概念: 原型(Prototype) 什么是原型? 原型是 JavaScript 中實現對象間共享屬性和方法的機制。每個 JavaScript 對象(除了 null)都有一個內部鏈接指向另一個對象,這…

立馬耀:通過阿里云 Serverless Spark 和 Milvus 構建高效向量檢索系統,驅動個性化推薦業務

作者:廈門立馬耀網絡科技有限公司大數據開發工程師 陳宏毅 背景介紹 行業 蟬選是蟬媽媽出品的達人選品服務平臺。蟬選秉持“陪伴達人賺到錢”的品牌使命,致力于洞悉達人變現需求和痛點,提供達人選高傭、穩變現、速響應的選品服務。 業務特…

Android顯示學習筆記本

根據博客 Android-View 繪制原理(01)-JAVA層分析_android view draw原理分析-CSDN博客 提出了我的疑問 Canvas RenderNode updateDisplayListDirty 這些東西的關系 您的理解在基本方向上是對的,但讓我詳細解釋一下 Android 中 updateDisplayListDirty、指令集合、…

JavaWeb學習打卡-Day4-會話技術、JWT、Filter、Interceptor

會話技術 會話:用戶打開瀏覽器,訪問web服務器的資源,會話建立,直到有一方斷開連接,會話結束。在一次會話中可以包含多次請求和響應。會話跟蹤:一種維護瀏覽器狀態的方法,服務器需要識別多次請求…

讓數據優雅落地:用 serde::Deserialize 玩轉結構體實體

前言 想象一下,服務器突然飛來一堆 JSON 數據,就像一群無頭蒼蠅沖進辦公室,嗡嗡作響,橫沖直撞。此刻,你的任務,就是把這群“迷路數據”安置進正確的格子里,分門別類,秩序井然,不混不亂,不漏一只。 好在 Rust 早就為我們備好瑞士軍刀:serde::Deserialize。它不僅刀…

Virtio 技術解析 | 框架、設備實現與實踐指南

本文為 “Virtio” 相關文章合輯。 略作重排,如有內容異常,請看原文。 Virtio 簡介(一)—— 框架分析 posted 2021-04-21 10:14 Edver 1. 概述 在傳統設備模擬中,虛擬機內部設備驅動完全不知自身處于虛擬化環境&a…

云計算賦能質檢LIMS的價值 質檢LIMS系統在云計算企業的創新應用

在云計算技術高速發展的背景下,實驗室信息化管理正經歷深刻變革。質檢LIMS(實驗室信息管理系統)作為實驗室數字化轉型的核心工具,通過與云計算深度融合,為企業提供了高彈性、高安全性的解決方案。本文將探討質檢LIMS在…

【win11 安裝WSL2 詳解一遍過!!】

共有五個步驟,按部就班的做,保準成功! 1. 打開開發者模式 設置->系統->開發者模式 2. 打開linux的win子系統 找到控制面板-程序和功能-啟用或關閉Windows功能,選中“適用于Linux的Windows子系統”,“虛擬機…

Godot開發2D冒險游戲——第三節:游戲地圖繪制

一、初步構建游戲地圖 在游戲場景當中添加一個新的子節點:TileMapLayer 這一層稱為瓦片地圖層 根據提示,下一步顯然是添加資源 為TileMapLayer節點添加一個TileSet 將地板添加進來,然后選擇自動分割圖集 自定義時要確保大小合適 讓Godot自…

Django創建的應用目錄詳細解釋以及如何操作數據庫自動創建表

創建好Django項目后 如果要創建 python manage.py startapp 模塊名模塊 使用 我創建一個system模塊后是 注意:urls是我自己建的文件 1.migrations目錄 存放數據庫的遷移文件,當models.py中模型定義發生變化時,通過遷移操作能同步數據庫結構變化 __init__ 使該目錄…

將輸入幀上下文打包到下一個幀的預測模型中用于視頻生成

Paper Title: Packing Input Frame Context in Next-Frame Prediction Models for Video Generation 論文發布于2025年4月17日 Abstract部分 在這篇論文中,FramePack是一種新提出的網絡結構,旨在解決視頻生成中的兩個主要問題:遺忘和漂移。 具體來說,遺忘指的是在生成視…

STM32 串口USART

目錄 常見的通信方式 串行通信和并行通信 全雙工,半雙工和單工通信 同步通信和異步通信 通信速率 常見的通信協議 串口基礎知識 電平特性 串口傳輸協議 STM32F103的USART資源 端口引腳 數據寄存器單元 發送接收控制單元 實現串口發送 printf…

Taro on Harmony :助力業務高效開發純血鴻蒙應用

背景 純血鴻蒙逐漸成為全球第三大操作系統,業界也掀起了適配鴻蒙原生的浪潮,用戶遷移趨勢明顯,京東作為國民應用,為鴻蒙用戶提供完整的購物體驗至關重要。   去年 9 月,京東 AP…

gem5-gpu教程05 內存建模

memory-modeling|Details on how memory is modeled in gem5-gpu gem5-gpu’s Memory Simulation gem5-gpu在很大程度上避開了GPGPU-Sim的單獨功能模擬,而是使用了gem5的執行中執行模型。因此,當執行存儲/加載時,內存會被更新/讀取。沒有單獨的功能路徑。(順便說一句,這…

【python】lambda用法(結合例子理解)

目錄 lambda 是什么? 為什么叫 lambda? 語法 舉例 1. 最簡單的 lambda:單個數字處理 2. 用 lambda 排序一組字符串(按照長度排序) 3. 在列表里找出絕對值最小的數字 4. 給 map() 用 lambda 5. 組合使用:篩選出偶數 lambda 和 def 的對比 lambda 適合用在什么地…

【ROS2】機器人操作系統安裝到Ubuntu22.04簡介(手動)

主要參考: https://book.guyuehome.com/ROS2/1.系統架構/1.3_ROS2安裝方法/ 官方文檔:https://docs.ros.org/en/humble/Installation.html 虛擬機與ubuntu系統安裝 略,見參考文檔 ubutun換國內源,略 1. 設置本地語言 確保您有…

C 調用 C++:extern “C” 接口詳解與實踐 C/C++混合編譯

C 調用 C:extern “C” 接口詳解與實踐 核心問題在于 C 編譯器會對函數名進行“修飾”(Name Mangling)以支持函數重載等特性,而 C 編譯器則不會。此外,C 語言本身沒有類、對象等概念。為了解決這個問題,我…

汽車制造行業如何在數字化轉型中抓住機遇?

近年來,隨著新一輪科技革命和產業變革的深入推進,汽車制造行業正迎來一場前所未有的數字化轉型浪潮。無論是傳統車企還是新勢力品牌,都在積極探索如何通過數字化技術提升競爭力、開拓新市場。那么,在這場變革中,汽車制…

k8s學習記錄(五):Pod親和性詳解

一、前言 上一篇文章初步探討了 Kubernetes 的節點親和性,了解到它在 Pod 調度上比傳統方式更靈活高效。今天我們繼續討論親和性同時Kubernetes 的調度機制。 二、Pod親和性 上一篇文章中我們介紹了節點親和性,今天我們講解一下Pod親和性。首先我們先看…

HarmonyOS:Navigation實現導航之頁面設置和路由操作

導讀 設置標題欄模式設置菜單欄設置工具欄路由操作頁面跳轉頁面返回頁面替換頁面刪除移動頁面參數獲取路由攔截 子頁面頁面顯示類型頁面生命周期頁面監聽和查詢 頁面轉場關閉轉場自定義轉場共享元素轉場 跨包動態路由系統路由表自定義路由表 示例代碼 Navigation組件適用于模塊…