【DeepSeek】【Dify】:用 Dify 對話流+標題關鍵詞注入,讓 RAG 準確率飛躍

1 構建對話流處理數據

初始準備

文章大綱摘要

數據標注和清洗

代碼執行

特別注解

2 對話流測試

準備工作

大綱生成

清洗片段

整合分段

3 構建知識庫

構建

召回測試

4 實戰應用測試

關鍵詞提取

智能總結

測試


1 構建對話流處理數據

初始準備

構建對話變量

用來存儲處理的大綱

start

文檔提取器

提取上傳文件的文字內容

代碼執行

提取文檔前100000

防止溢出模型

文章大綱摘要

將文章中的標題和摘要提取出來為一個大綱樹,作為后續添加標題處理的重要憑證

提示詞

你是一名專業的文檔分析師,擅長從技術文檔/論文中提取結構化大綱。你的任務是:
- 識別標題層級(H1-H6)
- 統計章節分布與內容概要
- 輸出帶縮進層級的摘要樹任務執行步驟:
1. 通讀文檔,標記所有標題(格式如#、##等);
2. 按縮進層級構建大綱樹(H為一級,H2為二級,以此類推)
3. 為每個章節生成1-2句內容摘要;
4. 輸出Markdown格式的層級列表,包含標題和摘要。
例如
輸出格式:
markdown
- [標題層級] 標題文本摘要: 本節核心內容(100字以內)示例輸入:
# 引言
## 研究背景
### 行業現狀
## 研究方法示例輸出:
- [H1]引言摘要:闡述研究背景與方法論-[H2] 研究背景摘要:分析行業現狀與問題-[H3]行業現狀摘要:描述當前市場數據-[H2] 研究方法摘要:說明實驗設計與技術路線注:基于原文來設計,不允許補充內容,不允許擴寫內容/

變量賦值

將處理的大綱存儲到對話變量里面,采用覆蓋的方式,每一次對話都會有新的大綱存儲

賦值之后輸出一下大綱查看

數據標注和清洗

主要是對文章的分段控制和標題關鍵詞提取

分段采用大綱中的最小級別的標題

標題采用父子標題均全部保存和段落關鍵詞提取

其余為清洗數據,段落合并等處理

其中反復提及標題父子關系,由字段段落標題開始,直至H1根標題,防止出現只有本段落標題的情況

提示詞

你是一個專業數據清洗及標注工程師;
請先閱讀并理解本文檔的全部大綱,
<文本大綱>為:{{#conversation.file_catalog#}}
再按照以下規則處理文本,
<文本內容>為: {{#context#}}一、數據清洗:
1. 提取結構化正文
2. 過濾噪聲內容,移除頁眉/頁腳、廣告、版權聲明、亂碼、空白行、無效數據行、重復段落、段落序號數字(1,2,3...)
3. 自動合并碎片化段落(<80字符且無標點)
4. 識別并標記專業術語
5. 如果文本內容為沒有任何含義的符號,這段內容直接清除不需要輸出
6. html標簽的表格作為一個整體段落,保留原始html標簽不要有任何省略行為二、數據標注:
1. 動態分段機制
- 基礎規則:以大綱中最小標題層級作為強制分段依據
- 同級標題處理:連續出現相同層級標題時,每個標題內容單獨成段
- 混合層級處理:當出現更高級標題時,從該高級標題開始重新計算層級
- 對話類強制分段規則:每3輪對話必須拆分段落
- 保留邏輯標記符:如"首先/其次/最后"等序列詞需要在通一段落2. 標簽tags構成
標題:采用文檔結構樹繼承機制,嚴格遵循父子層級關系:
- 自底向上逐級提取:從段落直接歸屬的最小標題(如H3)開始
- 向上追溯路徑:H3→H2→H1(每個節點僅保留直接父節點)
- **禁止橫向繼承**:不得包含同級標題(如H2-1下的段落不得繼承H2-2標題)
- 終止條件:直至根標題(H1)為止(
- **特別注意**:一定要保留所有直系父子層級標題,每一層級的標題作為單獨的tag保存,如果本身是H2級別的段落,也要向上追溯路徑:H2→H1,獲取H1根標題保存)
- **動態解析要求**:系統需自動解析輸入文檔的標題層級結構,不依賴預設標題名稱關鍵詞: 關鍵詞1/關鍵詞2/關鍵詞3/關鍵詞4/關鍵詞5/關鍵詞6/關鍵詞7/關鍵詞8/關鍵詞9/關鍵詞10/專業術語等(從文段獲取10個左右的關鍵詞與元數據,同時要加上識別到的專業術語,如果文段過短,可獲取3個左右的核心關鍵詞)3. 特殊處理
沖突解決機制
- 當相鄰段落標簽重復率>60%,觸發智能合并
- 語義斷裂檢測:使用<gap>標記邏輯跳躍點4. 示例:
輸入段落:
"除非谷歌和 OpenAI 改變態度,選擇和開源社區合作,否則將被后者替代",據彭博 和 SemiAnalysis 報道,4 月初,谷歌工程師 Luke Sernau 發文稱,在人工智能大語言模 型(Large Language Models,LLM,以下簡稱"大模型")賽道,谷歌和 ChatGPT 的推 出方 OpenAI 都沒有護城河,開源社區正在贏得競賽。
這一論調讓公眾對"年初 Meta 開源大模型 LLaMA 后,大模型大量出現"現象的關注推 向了高潮,資本市場也在關注大公司閉源超大模型和開源大模型誰能贏得競爭,在"模 型""算力""數據"三大關鍵要素中,大模型未來競爭格局如何,模型小了是否就不再 需要大量算力,數據在其中又扮演了什么角色?……本報告試圖剖析這波開源大模型風 潮的共同點,回顧開源標桿 Linux 的發展史,回答以上問題,展望大模型的未來。期望輸出下面這樣格式的內容:
```json
{
"segment_01":{
"text": “谷歌工程師Luke Sernau認為,谷歌和OpenAI在AI大模型領域缺乏護城河,開源社區(如Meta的LLaMA)正逐漸占據優勢。這一觀點引發了對閉源與開源模型競爭格局的討論,涉及模型、算力、數據三大要素的未來影響。報告通過分析開源大模型風潮的共同點,并類比Linux的發展歷史,探討了開源模式是否將主導AI領域,以及小模型、算力需求和數據角色的演變趨勢。”,
“tags”: [“開源大模型 ”,"AI競爭","MetaLLaMA,"閉源VS開源"]
},
}
```注意:
1. text是原文部分,不允許修改和擴展,直接使用格式清洗之后的原文內容
2. 標簽tags里面要列出所有的標題,識別內容后,標題參考<文本大綱>,生成時,不需要帶上層級序號
3. 如果是有條文類的文檔,比如規則、法律類等文檔,tags里面需要標明是第幾章,第幾條
4. tags除了上述外,還要再從文段獲取10個左右關鍵詞
5. tags內容放在一行,關鍵詞用英文雙引號""包圍,用應為逗號分割即可
6. 要特別注意“標簽tags構成”中標題的規則,一定保留所有直系父子層級標題

模板轉化

輸出段落

代碼執行

將數據標注和清洗中的段落片段合并成dify父子分段的文本,以&&&&為父分塊,###為子分塊標記

import re
from typing import Dict, Listdef main(content: str,
) -> Dict[str, str]:try:# 增強正則表達式(保持原有邏輯)segment_pattern = re.compile(r'"segment_\d+"\s*:\s*{\s*"text"\s*:\s*"((?:[^"\\]|\\.|\\\n)*)"\s*,\s*"tags"\s*:\s*\[([^\]]*)\]\s*}',re.DOTALL)total_segments = 0results = []# 處理內容中的JSON塊json_blocks = re.findall(r'```json(.*?)```', content, re.DOTALL)if json_blocks:json_content = "".join(json_blocks)# 提取所有段落for match in segment_pattern.finditer(json_content):total_segments += 1# 處理文本內容(保留原始換行)text = match.group(1).replace('\\"', '"').replace('\\n', '\n').strip()# 保持標簽原始順序tags = re.findall(r'"((?:[^"\\]|\\.)*)"', match.group(2))# 收集結果results.append({'text': text,'tags': tags})# 構建輸出字符串output = ""for segment in results:output += f"{segment['text']}###\n"output += f"{'###'.join(segment['tags'])}\n"output += "&&&&\n"# 返回處理結果(包含格式化字符串)return {"result": f"成功解析 {total_segments} 個段落","output": output.strip()  # 去除末尾多余換行}except Exception as e:return {"result": f"處理失敗: {str(e)}"}

輸出到控制臺

較短的單文件到此為止即可,不必看特別注解

特別注解

可以將數據標注和清洗升級為迭代處理

這就要求我們在讀入文本之后,對讀入的文本分塊(md格式的可以按照一級標題)

在迭代結束之后,需要將多個迭代內容驚醒整合,與此同時文件保存,dify的文件內容會保存到sandbox沙箱中去,取其中下載文件即可

后續可升級為多文件處理

2 對話流測試

準備工作

上傳文件

文件源碼

# SuperCdem環境安裝教程下面教程針對vs2019和cuda的安裝進行講解,若不進行開發,只需使用的情況下,進行第一步安裝CUDA即可。## 1. CUDA 安裝和配置1. 首先先判斷電腦中當前的GPU驅動所支持的最高CUDA版本,方法如下:打開 NVIDIA 控制面板(桌面右鍵) -> 選擇左下角的系統信息 -> 組件<img src="SuperCDEM環境安裝教程.assets/image-20230830095519527.png" alt="image-20230830095519527" style="zoom: 50%;" /><img src="SuperCDEM環境安裝教程.assets/image-20230830095316652.png" alt="image-20230830095316652" style="zoom: 90%;" />圖中所示,當前GPU驅動所支持的最高驅動版本為CUDA 11.2.162,本程序要求安裝CUDA 11.0.3。GPU驅動所支持的最高CUDA版本應高于CUDA 11.0.3,若不滿足要求,請在NVIDIA官網更新GPU驅動程序。2. 下載CUDA toolkit 下載地址:https://developer.nvidia.com/cuda-toolkit-archive;目前程序兼容cuda toolkit 11.0.3 以上的版本。<img src="SuperCDEM環境安裝教程.assets/image-20230830101405505.png" alt="image-20230830101405505" style="zoom: 30%;" />3. 安裝CUDA toolkit安裝cuda時,第一次會讓設置臨時解壓目錄,第二次會讓設置安裝目錄;臨時解壓路徑,保持默認路徑安裝。安裝結束后,臨時解壓文件夾會自動刪除;安裝目錄,請保持默認安裝目錄,**不要修改**;其他部分請保持默認安裝配置。4. 驗證是否安裝成功運行cmd,輸入nvcc --version 即可查看CUDA版本號。顯示如下提示,即表示安裝成功。<img src="SuperCDEM環境安裝教程.assets/image-20230830105059624.png" alt="image-20230830105059624" style="zoom: 45%;" />5. CUDA環境變量配置配置電腦的環境變量,右擊此電腦→屬性→高級系統設置→環境變量;在系統變量里添加如下內容:```jsCUDA_PATH = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.2CUDA_SDK_PATH = C:\ProgramData\NVIDIA Corporation\CUDA Samples\v12.2CUDA_LIB_PATH = %CUDA_PATH%\lib\x64CUDA_BIN_PATH = %CUDA_PATH%\binCUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\bin\win64CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\common\lib\x64```通過點擊圖片中 “新建” 和 “編輯”即可添加和修改系統變量。需要注意 `CUDA_PATH` 和 `CUDA_SDK_PATH`,這兩個系統變量填寫的是絕對路徑,路徑的最后 `v12.2` 是所安裝的 cuda toolkit 的版本號,因此根據用戶電腦所安裝的版本對應填寫,要求最低版本號為v11.0。<img src="SuperCDEM環境安裝教程.assets/image-20240410153052130.png" alt="image-20240410153052130" style="zoom:50%;" />## 2. Visual Studio 安裝Visual Studio推薦安裝VS2015,安裝教程可參考手冊《基于Genvi平臺的數值模擬軟件開發--開發環境搭建.pdf》,若需要安裝更高版本的VS,需配置VS2015的運行環境,下面以VS2019為例,進行Visual Studio安裝。### 1.1 Visual Studio 2019 下載安裝下載鏈接:[Visual Studio 2019 版本 16.11 發行說明 | Microsoft Learn](https://learn.microsoft.com/zh-cn/visualstudio/releases/2019/release-notes)安裝選項:勾選圖中所示選項<img src="SuperCDEM環境安裝教程.assets/image-20230830090610285.png" alt="image-20230830090610285" style="zoom: 40%;" /><img src="SuperCDEM環境安裝教程.assets/image-20230830090901608.png" alt="image-20230830090901608" style="zoom:43%;" />Windows SDK (10.0.14393.0) 安裝- 下載地址:https://developer.microsoft.com/zh-cn/windows/downloads/sdk-archive/<img src="SuperCDEM環境安裝教程.assets/image-20230830110454608.png" alt="image-20230830110454608" style="zoom: 40%;" />后續選擇默認安裝即可。## 3. Visual Studio 配置打開解決方案時,需要重定向項目,配置按下圖所示:<img src="SuperCDEM環境安裝教程.assets/image-20230830114633851.png" alt="image-20230830114633851" style="zoom: 67%;" />選擇解決方案中的bCdem -> 屬性,按下圖進行修改<img src="SuperCDEM環境安裝教程.assets/image-20230830110239806.png" alt="image-20230830110239806" style="zoom: 40%;" />

大綱生成

- [H1] SuperCdem環境安裝教程摘要:本文檔詳細介紹了SuperCdem環境的安裝步驟,包括CUDA和Visual Studio的安裝與配置。- [H2] 1. CUDA 安裝和配置摘要:本節講解如何判斷GPU驅動支持的CUDA版本、下載并安裝CUDA Toolkit,并完成環境變量配置。- [H3] 判斷GPU驅動支持的CUDA版本摘要:通過NVIDIA控制面板查看當前GPU驅動支持的最高CUDA版本,確保滿足程序最低要求。- [H3] 下載CUDA Toolkit摘要:從NVIDIA官網下載兼容的CUDA Toolkit版本(最低要求為11.0.3)。- [H3] 安裝CUDA Toolkit摘要:按照默認路徑完成CUDA Toolkit的安裝,避免修改臨時解壓目錄或安裝目錄。- [H3] 驗證安裝是否成功摘要:通過運行`nvcc --version`命令驗證CUDA是否安裝成功。- [H3] CUDA環境變量配置摘要:在系統環境變量中添加必要的CUDA路徑,確保路徑版本號與實際安裝版本一致。- [H2] 2. Visual Studio 安裝摘要:推薦安裝VS2015或VS2019,并提供詳細的安裝選項說明及Windows SDK的安裝指導。- [H3] 1.1 Visual Studio 2019 下載安裝摘要:從Microsoft官網下載Visual Studio 2019,并勾選必要組件進行安裝。- [H3] Windows SDK (10.0.14393.0) 安裝摘要:從微軟開發者網站下載并安裝指定版本的Windows SDK。- [H2] 3. Visual Studio 配置摘要:介紹如何重定向項目并配置解決方案中的bCdem屬性,確保開發環境正常運行。

清洗片段

可以看到前三個分別為H3 H2 H1級別的標題

后面為本段落的關鍵詞

<think> 好的,我現在需要處理用戶提供的SuperCdem環境安裝教程文本,按照給定的規則進行數據清洗和標注。首先,我需要仔細理解用戶的要求和大綱結構,確保每一步都正確執行。 首先進行數據清洗: 1. **提取結構化正文**:用戶提供的文本已經有一定的結構,包含標題、步驟和圖片引用。我需要確認這些內容是否完整,并去除無關部分。 2. **過濾噪聲內容**:檢查是否有頁眉、頁腳、廣告或版權聲明。看起來原文主要是安裝步驟,可能沒有這些內容。需要移除重復段落和空白行。例如,原文中的圖片路徑如`<img src="...">`可能需要保留,但用戶提到html表格要保留原始標簽,所以圖片標簽可能需要保留,但不確定是否屬于表格。這里可能需要進一步判斷,但根據規則,非表格的html標簽可能不需要保留,但用戶沒有特別說明,所以可能保留。 3. **合并碎片化段落**:查看是否有短而無標點的段落。例如原文中的步驟描述是否被錯誤分割。例如,步驟5中的環境變量配置部分可能有多個條目,但應合并為一個段落。 4. **識別專業術語**:如CUDA Toolkit、Visual Studio、Windows SDK、nvcc等術語需要標記。 5. **清除無意義符號**:原文中沒有明顯的亂碼或無效符號,所以這一步可能不需要處理。 6. **處理html表格**:原文中沒有表格,只有圖片引用,所以這一步可能不適用。 接下來進行數據標注: 1. **動態分段**:根據大綱的層級結構,H1是根標題,下面是H2和H3。需要根據標題層級來分段。例如,每個H2標題下的內容作為一個段落,其下的H3標題內容作為子段落。但用戶要求以最小標題層級作為分段依據,所以每個H3下的內容單獨成段,但如果連續出現同級標題,則單獨成段。例如,在CUDA安裝部分,每個H3步驟應作為單獨段落,但根據用戶提供的示例輸出,可能需要將整個H2下的內容合并為一個段落,但需要根據實際內容判斷。 2. **標簽tags構成**:需要提取每個段落的直系標題路徑。例如,CUDA安裝和配置(H2)下的判斷GPU版本(H3)段落的標簽應包括H3標題、H2標題和H1標題。但根據用戶要求,每個段落的標簽應包括所有直系父標題。例如,H3的段落標簽應為H3標題、H2標題、H1標題,每個作為單獨的tag。同時,提取關鍵詞,如CUDA Toolkit、NVIDIA控制面板、環境變量等專業術語。 3. **特殊處理**:檢查是否有相鄰段落標簽重復,可能需要合并,但原文結構較清晰,可能不需要。語義斷裂檢測可能需要添加<gap>,但原文連貫性較好,可能不適用。 現在,處理具體內容: - **H1標題**:SuperCdem環境安裝教程 - **H2標題1**:1. CUDA 安裝和配置,包含多個H3子標題。 - **每個H3步驟**應作為單獨段落,標簽包括H3、H2、H1。 - **H2標題2**:2. Visual Studio 安裝,包含H3子標題。 - **H2標題3**:3. Visual Studio 配置,無子標題,內容作為段落。 處理時需要注意: - 圖片引用可能需要保留為html標簽,但用戶示例輸出中沒有圖片,可能需要在清洗時移除,但根據規則,非表格的html標簽可能需要保留。但用戶示例中輸出沒有圖片,可能需刪除圖片標簽,只保留文本內容。 - 步驟中的編號(如1. 判斷GPU驅動...)是否需要移除?根據規則,需要移除段落序號數字,所以步驟前的數字需要刪除,但內容保持順序。 - 環境變量配置中的代碼塊需要保留,作為整體段落,可能用反引號包裹。 最終,每個段落需要生成對應的text和tags,tags包括標題路徑和關鍵詞。例如,CUDA環境變量配置段落的tags應為["CUDA環境變量配置", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "環境變量", "系統變量", "CUDA_PATH"]等。 需要確保每個段落的標簽正確繼承父標題,并提取足夠的關鍵詞和專業術語。同時,保持原文內容不變,僅進行清洗和標注。 </think>```json { "segment_01":{ "text": "下面教程針對vs2019和cuda的安裝進行講解,若不進行開發,只需使用的情況下,進行第一步安裝CUDA即可。", "tags": ["SuperCdem環境安裝教程", "CUDA安裝", "開發環境配置", "Visual Studio", "GPU驅動"] }, "segment_02":{ "text": "通過NVIDIA控制面板查看當前GPU驅動支持的最高CUDA版本,確保滿足程序最低要求。打開NVIDIA控制面板(桌面右鍵)->選擇左下角的系統信息->組件", "tags": ["判斷GPU驅動支持的CUDA版本", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "NVIDIA控制面板", "系統信息", "組件", "GPU驅動", "版本檢測"] }, "segment_03":{ "text": "從NVIDIA官網下載兼容的CUDA Toolkit版本(最低要求為11.0.3)。下載地址:https://developer.nvidia.com/cuda-toolkit-archive", "tags": ["下載CUDA Toolkit", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "NVIDIA官網", "CUDA Toolkit", "版本兼容性", "下載鏈接"] }, "segment_04":{ "text": "按照默認路徑完成CUDA Toolkit的安裝,避免修改臨時解壓目錄或安裝目錄。安裝cuda時,第一次會讓設置臨時解壓目錄,第二次會讓設置安裝目錄;臨時解壓路徑保持默認路徑安裝,安裝結束后臨時解壓文件夾會自動刪除;安裝目錄請保持默認安裝目錄不要修改;其他部分請保持默認安裝配置。", "tags": ["安裝CUDA Toolkit", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "默認路徑", "臨時解壓目錄", "安裝目錄", "系統配置"] }, "segment_05":{ "text": "通過運行`nvcc --version`命令驗證CUDA是否安裝成功。運行cmd,輸入nvcc --version即可查看CUDA版本號。顯示如下提示即表示安裝成功。", "tags": ["驗證安裝是否成功", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "nvcc命令", "版本驗證", "命令行工具"] }, "segment_06":{ "text": "在系統環境變量中添加必要的CUDA路徑,確保路徑版本號與實際安裝版本一致。配置電腦的環境變量,右擊此電腦→屬性→高級系統設置→環境變量;在系統變量里添加如下內容:CUDA_PATH = C:\\Program Files\\NVIDIA GPU Computing Toolkit\\CUDA\\v12.2 CUDA_SDK_PATH = C:\\ProgramData\\NVIDIA Corporation\\CUDA Samples\\v12.2 CUDA_LIB_PATH = %CUDA_PATH%\\lib\\x64 CUDA_BIN_PATH = %CUDA_PATH%\\bin CUDA_SDK_BIN_PATH = %CUDA_SDK_PATH%\\bin\\win64 CUDA_SDK_LIB_PATH = %CUDA_SDK_PATH%\\common\\lib\\x64", "tags": ["CUDA環境變量配置", "CUDA 安裝和配置", "SuperCdem環境安裝教程", "環境變量", "系統變量", "CUDA_PATH", "SDK路徑", "版本匹配"] }, "segment_07":{ "text": "從Microsoft官網下載Visual Studio 2019,并勾選必要組件進行安裝。安裝選項需勾選C++桌面開發、Windows 10 SDK等核心組件。", "tags": ["Visual Studio 2019 下載安裝", "Visual Studio 安裝", "SuperCdem環境安裝教程", "Microsoft官網", "C++開發", "Windows SDK", "組件選擇"] }, "segment_08":{ "text": "從微軟開發者網站下載并安裝指定版本的Windows SDK(10.0.14393.0)。下載地址:https://developer.microsoft.com/zh-cn/windows/downloads/dk-archive/,后續選擇默認安裝即可。", "tags": ["Windows SDK安裝", "Visual Studio 安裝", "SuperCdem環境安裝教程", "微軟開發者網站", "SDK版本", "默認安裝"] }, "segment_09":{ "text": "打開解決方案時需要重定向項目,配置解決方案中的bCdem屬性。選擇解決方案中的bCdem->屬性,修改平臺工具集為Visual Studio 2019(v142),Windows SDK版本為10.0.14393.0。", "tags": ["Visual Studio 配置", "SuperCdem環境安裝教程", "解決方案重定向", "平臺工具集", "Windows SDK版本", "項目屬性配置"] } ```

整合分段

整理成可以用&&&&為父塊分段符號,###為字段分塊符號的文本用作后續處理

3 構建知識庫

構建

采用高質量父子分段,父塊分隔符為&&&&,子塊分隔符為###

可以看到預覽塊中,標題和關鍵詞作為一個單獨的小句子存在,因為父子分段的存在,會因此通過子關鍵詞而命中整個父段落,來提高RAG命中率

召回測試

輸入關鍵字,完美命中

輸入根標題則全部命中,讓這些分開的段落根據標簽有了新的組織形式

4 實戰應用測試

關鍵詞提取

提示詞

你是一個資深信息檢索工程師
一、任務目標
從用戶問題{{#sys.query#}}中精準提取6~8個知識庫搜索關鍵詞,要求如下:
1. 覆蓋核心檢索意圖
2. 消除歧義與模糊表達二、處理流程
1. 語義焦點識別:- 使用注意力機制定位核心實體(產品/服務/錯誤代碼)- 示例:> "ChatGPT 發布后不久,Meta 就開源了類 GPT 大語言模型 LLaMA,此后, AlpacaVicunaKoala 等多個大模型誕生,它們以遠低于 ChatGPT 的模型規模和成本,實現了令人矚目的性能,引發業內人士擔憂谷歌和 OpenAI 都沒有護城河,大模型門檻正被開源踏破,不合作就會被取代。資本市場也在關注大模型未來競爭格局如何,模型小了是否不再需要大量算力,數據在其中又扮演了什么角色?本報告試圖分析這波開源大語言模型風潮的共同點,回顧開源標桿 Linux 的發展史,回答這些問題。" -> [開源大模型,模型小化,ChatGPT]2. 術語標準化:- 映射同義詞到知識庫官方術語> “手提電腦” -> “筆記本電腦”- 轉化口語化表達:> "存不上文件" -> "文件保存失敗"3. 上下文增強:- 識別隱含條件:> "最新版軟件閃退" -> ["v.2.3.1","程序崩潰"]- 關聯領域知識:> "合同審批卡在財務部" -> ["審批流程","財務節點超時"]4. 消除歧義:- 對多一次添加限定詞:> "蘋果服務器中斷" ->["Apple服務狀態","系統故障"]- 排除非相關實體:> "Java開發遇到內存泄露" -> 排除 ["咖啡豆產地"]三、注意:
1. 如果語義特別簡單,直接返回原文
2. 最終輸出只包含提取的關鍵詞,輸出采用嚴格格式:純文本關鍵詞+英文逗號分割

代碼執行

將關鍵字提出


def main(arg1: str) -> dict:if not arg1:return {'result':[]}arg1=arg1.strip().strip('"')items = [item.strip() for item in arg1.split(',')]return {"result": items[:30]}

將多個關鍵詞通過迭代的方式查詢知識庫

智能總結

提示詞

你是一名專業的知識庫分析師,擅長從結構化知識庫中精準提取信息,并將專業內容轉化為用戶易懂的表達方式,
你需要按照以下規則,回復用戶的問題
{{#sys.query#}};知識庫返回的內容:{{#context#}}一、應答協議
IF 知識庫返回內容為空 OR 置信度<0.3;-> 執行空值應答流程
ELSE:-> 執行知識整合輸出二、 應答生成規則
1. 空值應答(嚴格觸發條件):- 禁止自行編造信息- 直接輸出“根據先有資料,我暫時無法提供準確的解答,建議通過(幫助中心)提交詳細問題”
2. 有效應答:- 采用 [結論先行] 結構- 關鍵數據標注來源編號 (例: [KB_2025_01])- 復雜內容分店說明(不超過3級)
3. 自然語言轉化:- 技術術語 -> 用戶可理解表述- 法律條款 -> 標注時效性(截止2025年)- 操作步驟 -> 添加風險提示(如“需要管理員權限”)三、核心職責
1. 嚴格基于知識庫已有內容進行回答
2. 對復雜概念進行降維解釋(保持原意)
3. 確保信息準確性和可操作性
4. 拒絕回答知識庫范圍外的問題

測試

效果如下

查看日志判斷是否正確

關鍵詞提取正確

迭代查詢知識庫,通過關鍵詞命中段落

通過多個片段智能輸出

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

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

相關文章

RabbitMQ 開機啟動配置教程

RabbitMQ 開機啟動配置教程 在本教程中&#xff0c;我們將詳細介紹如何配置 RabbitMQ 以實現開機自動啟動。此配置適用于手動安裝的 RabbitMQ 版本。 環境準備 操作系統&#xff1a;CentOS 7RabbitMQ 版本&#xff1a;3.8.4Erlang 版本&#xff1a;21.3 步驟 1. 安裝 Erla…

第N1周:one-hot編碼案例

&#x1f368; 本文為&#x1f517;365天深度學習訓練營中的學習記錄博客 &#x1f356; 原作者&#xff1a;K同學啊 一、one-hot編碼概念 自然語言處理&#xff08;NLP&#xff09;中的文本數字化&#xff1a;文字對于計算機來說就僅僅只是一個個符號&#xff0c;計算…

Linux 云服務器部署 Flask 項目(含后臺運行與 systemd 開機自啟)

一、準備工作 在開始正式部署之前,請確認以下前提條件已經準備好: 你有一臺運行 Linux 系統(CentOS 或 Ubuntu)的服務器; 服務器有公網 IP,本例中使用:111.229.204.102; 你擁有該服務器的管理員權限(可以使用 sudo); 打算使用 Flask 構建一個簡單的 Web 接口; 服務…

散貨拼柜業務:多貨主財務結算如何高效管理?

散貨拼柜業務滿足了小批量發貨客戶的需求&#xff0c;由于無法滿足海運整柜的條件&#xff0c;其模式通常涉及多個貨主共同分攤同一集裝箱的運輸項目。這種業務模型雖然在成本上具備優勢&#xff0c;但其復雜的財務結算過程往往給公司帶來了挑戰。 散貨拼柜業務的特點在于其小…

數據結構(7)—— 二叉樹(1)

目錄 前言 一、 樹概念及結構 1.1樹的概念 1.2樹的相關概念 1.3數的表示 1.二叉樹表示 2.孩子兄弟表示法 3.動態數組存儲 1.4樹的實際應用 二、二叉樹概念及結構 2.1概念 2.2特殊的二叉樹 1.滿二叉樹 2. 完全二叉樹 2.3二叉樹的性質 2.4二叉樹的存儲結構 1.順序存儲 2.鏈式存儲…

SpringBoot+Vue+微信小程序校園自助打印系統

概述?? 校園自助打印系統是現代化校園建設中不可或缺的一部分&#xff0c;基于SpringBootVue微信小程序開發的??免費Java源碼??項目&#xff0c;包含完整的用戶預約、打印店管理等功能模塊。 ??主要內容?? ?? 系統功能模塊?? ??登錄驗證模塊??&#xff1a;…

使用 useSearchParams 的一個沒有觸發控制臺報錯的錯誤用法

const searchParams useSearchParams(); // navigate(/?${searchParams.toString()});//帶過去的參數會把函數方法也帶過去 正確寫法應該是用[]解構 使用了數組解構&#xff08;destructuring&#xff09;來提取 useSearchParams 返回的數組中的第一個值 const [searchPara…

Blender的一些設置

1. 將Blender長度單位改為毫米(mm), 并設置guides Grid的縮放系數&#xff0c;避免網格不見了。 2. 布爾操作的(Apply)應用按鈕在哪里&#xff1f;好吧&#xff0c;在這里&#xff1a; 可以按下 CTRL A 快捷鍵。 3. 模型的 移動、旋轉、縮放快捷鍵: G&#xff0c;R&#xff0…

Inno Setup 腳本中常用術語釋義

1、目錄常量 {app} 應用程序所在的目錄。 {win} 系統的 Windows 目錄&#xff0c; “C:/WINDOWS”。 {sys} 系統的 Windows 系統&#xff08;System&#xff09;目錄&#xff0c;“C:/WINDOWS/SYSTEM”。 {src} 這個文件夾指向安裝程序所在的位置。 {pf} 程序…

【java面試】MySQL篇

MySQL篇 一、總體結構二、優化&#xff08;一&#xff09;定位慢查詢1.1 開源工具1.2Mysql自帶的慢日志查詢1.3 總結 &#xff08;二&#xff09;定位后優化2.1 優化2.2 總結 &#xff08;三&#xff09;索引3.1 索引3.2 索引底層數據結構——B樹3.3 總結 &#xff08;四&#…

drawio 開源免費的流程圖繪制

開源地址 docker-compose 一鍵啟動 #This compose file adds draw.io to your stack version: 3.5 services:drawio:image: jgraph/drawiocontainer_name: drawiorestart: unless-stoppedports:- 8081:8080- 8443:8443environment:PUBLIC_DNS: domainORGANISATION_UNIT: unitOR…

江科大睡眠,停止,待機模式hal庫實現

修改主頻我們直接在cubeMx上面修改就行了&#xff0c;很方便 睡眠&#xff0c;停止&#xff0c;待機模式是通過對電源的控制來進行的&#xff0c;相關代碼在PWR文件里面 SEV&#xff08;Send Event&#xff09; void HAL_PWR_EnterSLEEPMode(uint32_t Regulator, uint8_t SL…

【黃金評論】美元走強壓制金價:基于NLP政策因子與ARIMA-GARCH的聯動效應解析

一、基本面&#xff1a;多因子模型解析黃金承壓邏輯 1. 政策沖擊因子驅動美元強勢 通過NLP模型對關稅政策文本進行情感分析&#xff0c;構建政策不確定性指數&#xff08;PUI&#xff09;達89.3&#xff0c;觸發美元避險需求溢價。DSGE模型模擬顯示&#xff0c;鋼鐵關稅上調至…

藍橋云課ROS一鍵配置teb教程更新-250604

一鍵配置 echo "250604已經更新不動了"git clone https://gitcode.com/ZhangRelay1/donut.gitsudo apt-key add ~/donut/ros.keysudo apt updateecho "Upgrade Mission Completed."echo "Teb Mission Begins."sudo apt install ros-kinetic-sta…

OD 算法題 B卷【服務啟動】

文章目錄 服務啟動 服務啟動 有若干連續編號的服務&#xff08;編號從0開始&#xff09;&#xff0c;服務間有依賴關系&#xff0c;啟動一個指定的服務&#xff0c;請判斷該服務是否可以成功啟動&#xff0c;并輸出依賴的前置服務編號&#xff1b;依賴關系是可以傳遞的&#x…

StarRocks與Apache Iceberg:構建高效湖倉一體的實時分析平臺

## 引言&#xff1a;數據湖的挑戰與演進 在數據驅動的時代&#xff0c;企業數據湖需要同時滿足海量存儲、高性能查詢、多引擎協作和實時更新等復雜需求。傳統基于 Hive 的數據湖方案面臨元數據管理低效、缺乏 ACID 事務支持、查詢性能瓶頸等問題。在此背景下&#xff0c;**Sta…

Kafka 單機部署啟動教程(適用于 Spark + Hadoop 環境)

&#x1f9ed; Kafka 單機部署啟動教程&#xff08;適用于 Spark Hadoop 環境&#xff09; &#x1f4e6; 一、Kafka 版本選擇 推薦使用 Kafka 2.13-2.8.1&#xff08;Scala 2.13&#xff0c;穩定適配 Spark 3.1.2 和 Hadoop 3.1.1&#xff09; 下載地址&#xff08;Apache 官…

C語言數組初始化方法大全(附帶實例)

在 C語言中&#xff0c;數組用于存儲相同類型的多個元素。數組的初始化是一個重要的概念&#xff0c;它允許我們在聲明數組的同時為其賦初值。 這篇文章&#xff0c;我將為大家詳細介紹 C語言中初始化數組的多種方法&#xff0c;以及一些需要注意的細節。 數組初始化的基本語…

RAMSUN分享全新超值型MM32F0050系列MCU

憑借全國產化的供應鏈優勢和可靠的國產高端工藝制程&#xff0c;靈動微再次推出全新超值型MM32F0050系列微控制器單元&#xff08;MCU&#xff09;&#xff0c;將超值型MCU推向新的高度。 MM32F0050系列MCU配備了72MHz的Arm Cortex-M0內核&#xff0c;提供64KB的Flash存儲和8K…

CMS32M65xx/67xx系列CoreMark跑分測試

CMS32M65xx/67xx系列CoreMark跑分測試 1、參考資料準備 1.1、STM32官方跑分鏈接 1.2、官網鏈接 官方移植文檔&#xff0c;如下所示&#xff0c;點擊紅框處-移植文檔: A new whitepaper and video explain how to port CoreMark-Pro to bare-metal 1.3、測試軟件git下載鏈接 …