支持私有化部署
AI知识库

53AI知识库

学习大模型的前沿技术与行业应用场景


Dify 平台知识库实战|基于excel 格式的问答调优

发布日期:2025-03-16 05:45:00 浏览次数: 4204 作者:木乐乐的异想世界
推荐语

利用Dify平台优化Excel格式知识库,探索最佳问答调优方案。

核心内容:
1. Dify平台框架及知识库配置信息
2. 不同embedding模型和rerank模型的效果对比
3. Excel多sheet问答调优的测试结果与经验分享

杨芳贤
53A创始人/腾讯云(TVP)最具价值专家

本文会带您使用 Dify 平台,使用 excel 数据格式导入知识库配置,尝试不同的文本切块方案。 

通过对比几种 embedding 模型、 rerank 模型和大模型,获取到最适合 excel 格式的数据库配置方案。 


一、Dify 平台信息

智能体平台框架:Dify 链接:https://dify.ai/ 

知识库配置信息逐一介绍如下: 

1-分段配置

分块最大长度 500 tokens,重叠长度 50 tokens; 

Image

2-embedding 模型

本次测试选择:通过 ollama 安装的nomic-embed-text。我的 Dify 里配置了三个 embedding 服务: 

1)embedding api: Cohere 和 minimax 的 embo-01 

2)本地 embedding 模型:通过 ollama 安装的nomic-embed-text 

不同内容类型,需要选择不同的 embedding 模型,文本内容、表格内容、代码片段,都有不同的embedding 模型可以选择。embedding选择建议: 

(1)通用应用:比如 OpenAI 的 text-embedding-3-large、Cohere embed v3等; 

(2)专业领域:BGE、GTE 等开源模型可以针对垂直领域进行微调提升; 

(3)混合索引策略:关键词索引+向量索引的双重索引往往比单一索引效果更好 

(4)维度更高不一定更好:1356 维 vs 512 维在许多应用中差异不限制但是成本差 3 倍 

 

3-检索设置

我配置的是混合检索的模式,兼容了全文检索和向量检索的方案优势。但是,相对于单一检索,混合检索的模式可以兼具性能和效果。 

其中,混合检索的权重,我调整的是语义权重占比 70%,关键词权重占比 30%; 

Image

Rerank 模型选择的是 Cohere 的 rerank-v3.5 模型。 

Image

Top k,配置的是 5。根据行业专家的建议,Top K 的最佳设置参数是3-5 个片段;片段多了,容易引入噪音,导致答案效果不佳; 

Score 阈值,是指检索出来的知识块范围,我设置的是 0.5。低于 0.5 则无法被召回展示; 

 

接下来,看测试结果。 

二、测试逻辑

1-模型对比设置

同时对比三大模型的能力,包含两个 deepsee 的模型 api:deepseek v3、deepseek-r1 

和一个本地化部署的deepseek 蒸馏 qwen 14b 模型; 

Image

 

三、测试结果-excel 多 sheet

1-测试 excel 情况说明

一个 excel 表格,两个 sheet,非结构化的表格结构。 

表格是两个小家电的抖音视频拍摄脚本,一个是佐料机、另一个是高压植物奶机; 

《sheet1-佐料机抖音好物种草》 

Image

 

《sheet2 -高压植物奶机》 

Image

 

 

2-分块效果

先说测试经验:excel 格式的文本块,测试一下一行最大的文本长度需要多少 tokens。设置的分块最大长度至少要大于一行的文本长度。 

 

我们先来看一下分块的效果。excel 的切分逻辑是一行一个文本块。 

Image

 

而且,我们留意到,我们人类理解表格用的表头和内容,在执行 excel 数据分块的时候,500tokens 的文本块,切分的结果是一行记录一个文本块。 

同时,每一个文本块都会带第一行的信息。“佐料机抖音好物种草”。 

 

例如我们看到的第一个文本块是这样的: 

佐料机抖音好物种草":"切入点";"None":"可以绞肉、剥蒜,还能绞干、湿料,终于找到大小碗兼备的绞肉机了。以往绞肉机也方便,但是用过才知道";"None":"演员";"None":"出手+真人配音(男女均可)";"None":"视频尺寸";"None":"横屏" 

第二个文本块: 

佐料机抖音好物种草":"参考视频";"None":"https://www.douyin.com/video/7369108898990574900";"None":"参考音乐";"None":"https://www.douyin.com/video/7369108898990574900";"None":"脚本作者";"None":"小谢" 

第三个文本块: 

佐料机抖音好物种草":"主要卖点";"None":"大小碗好处";"None":"视频风格";"None":"好物种草+产品展示";"None":"视频时长" 

第四个文本块: 

佐料机抖音好物种草":"准备清单";"None":"猪肉三份,蒜头,带皮蒜头,花生,辣椒,葱";"None":"字体参考";"None":"参考参考视频整体做同款字体,红字做字体";"None":"拍摄场地";"None":"3楼直播间+整洁+墙面投影(跟另一个脚本软装和投影形状错开)" 

 

对应在 excel 内的位置和信息分别是: 

文本块一至文本块四: 

Image

 

当我们切换不同的分块最大长度,会有什么影响呢? 

先说答案,分块超过 表格单行的 token数量,则无论如何增加分块 tokens 数,dify 都是按照\n\n 换行符来切分文本块,不会对分块结果有任何影响。简单理解,就是保持一行一个文本块。 

这里是 500 tokens 的切分结果: 

Image

再看一下 2000tokens 的切分结果: 

Image

但是,把 tokens 调小了有什么影响呢? 

还是直接说结论,调小了,一行数据就会被切成多个块。我设置的分块最大长度 50tokens,结果一行被切成了 6 个块。 

Image

 

 

那么,不同问题类型的问答的效果是什么样的呢? 

这里,我设计了几种问答类型: 

1、简单单一问题的问答; 

2、复杂且需要推理的问题问答; 

简单单一问题问答

问题:佐料机的卖点是什么? 

Image

思维推理模型的对比:控制变量 参数规模 14b vs 满血版 api。 

14b 本地模型的回答: 

耗时 12.28 秒,能够正确回答佐料机卖点。 

Image

满血版 api模型的回答: 

耗时 35.6 秒,回答的内容和 14b 小模型差不多。对佐料机卖点精髓理解的更加透彻。 

Image

 

相比之下,deepseek-chat(v3 版本) 的回答则相对比较正式,包含 1-3 个要点的总结。时间也是介于两个推理模型之内,用时 17.78 秒。 

Image

复杂推理问题问答

问题:总结佐料机拍摄脚本的运镜特点 

这里需要先说明一下,我在设置知识库的 TOPk 的时候,只选择了 3 块,也就是知识库在做检索的之后,只会找回 3 个超过阈值的知识块,那么,哪 3 个知识块被检索到了呢? 

Image
Image
Image

分别是第5、6、10 块知识块被检索到了。这里只命中了一个有实际内容的文本块 10,关于近平角度的一个分镜信息。 

Image

看一下 3 个模型怎么编的答案: 

巧妇难为无米之炊,因为原材料有限,所以,我们并不能看到有效总结。 

Image

怎么优化呢?把 TOP k 调整成 10,看一下效果。理论上,佐料机的知识块7 到 28 都是跟运镜有关的内容。应该召回命中 10 个的。 

可是,这次的命中的知识块增加到了4 块,包含:19、20、23、24;有效信息块增加到了 4 个。 

Image
Image

回答的信息,丰富多了。 

Image

这么看来,也就很清晰了,excel 格式的知识库,会遇到分块索引的时候,内容和表头信息不一致的问题。一般情况下,可以将 excel 内容调整成json格式,再塞到知识库里做正常的索引和命中参考。 

 

四、知识库文件优化

1-excel 表格转化成 json 结构

为了能够实现更好的文本理解效果,我把 excel 表格切换成了如下的 json 结构,存储在一个 txt 文件内。 

{ 

"标题": "佐料机拍音好物种草", 

"基本信息": { 

"切入点": "可以绞肉、剁蒜、还能绞干丁、泡料,终于找到大小颜兼备的绞肉机了,以往绞肉机也方便,但是用过才知道", 

"参考视频": { 

"链接": "https://www.douyin.com/video/7369108898990574900", 

"主要卖点": "大小颜好处" 

}, 

"演员": { 

"出手+真人配音": "男女均可", 

"视频风格": "好物种草+产品展示" 

}, 

"视频尺寸": "随本作者", 

"横屏": "小屏", 

"准备清单": { 

"字体参考": "参考参考视频整体做问献字体、红字做字体", 

"拍摄场地": "3楼直播间+整洁+墙面设影(跟另一个颜本较装和投影形状错开)" 

} 

}, 

"分镜内容": [ 

{ 

"序号": 1, 

"景别与角度": "近 半+微俯", 

"时长": "", 

"画面简述": "玻璃碗绞肉过程画面", 

"拍摄方式": "下移", 

"台词/旁白音/文案": "可以绞肉" 

}, 

{ 

"序号": 2, 

"景别与角度": "近 平", 

"时长": "", 

"画面简述": "玻璃碗剁蒜过程画面", 

"拍摄方式": "右移", 

"台词/旁白音/文案": "剁蒜" 

},... ... 

Image

 

2-json格式问答效果测试

用同一个问题测试分块召回效果。知识块召回 1、3、5、6 块。因为json 格式内的块包含2-3 个分镜,所以,本次召回的 4 个知识块涵盖了4-5,9-13 个分镜内容。 

Image
Image

当然,回答的内容质量,自然就比前面几次好太多了。 

Image

 

五、更换 embedding 模型

这次对比: 

(1)通过 ollama 安装的nomic-embed-text 

(2)Cohere的embed-multilingual-v3.0 

(3) minimax 的 embo-01 

切换位置在这里。 

Image

 

继续看同一个问题,同一个大模型,3 种不同 embedding 模型的效果。 

问题:总结佐料机拍摄脚本的运镜特点

1-deepseek-r1 蒸馏模型14b版本

nomic-embed-text 

该佐料机拍摄脚本主要采用的是“定”的拍摄方式,即相机固定在一个位置进行画面的记录。从多个景别与角度(如近、平、俯)来展示产品的不同功能和优势,通过细腻的画面描述产品细节以及使用效果。这种运镜手法能够详细地展现佐料机的操作过程及其特性,使观众可以更直观地了解到该产品的实际应用场景和优点。 

minimax 的 embo-01 

佐料机拍摄脚本中的运镜特点是使用固定镜头(定)来展示产品细节和功能。例如,在不同场景中通过近景和平视的角度展现了绞打花生、蒜头等食材的过程,以及传统绞肉机与新型号之间的对比,并且在展示绞肉机主机及配件时,也采用了同样的固定拍摄方式。此外,还有一些特定的镜头动作如上移(从低角度向上移动)来展现产品的收纳和使用场景。 

Cohere的embed-multilingual-v3.0 

在拍摄佐料机的过程中,主要采用了近景和平视或俯视的角度进行画面记录。这种手法可以细致地展示产品的操作过程以及各种细节,使观众能够更好地了解产品功能和优势。 

具体到每个镜头中: 

  • 在蓝碗绞打花生及红碗绞打蒜头的场景中,采用“近 平”、“近 俯”的运镜方式来捕捉食物被处理时的状态。
  • 展示整机以及使用传统绞肉机制作辣椒的过程中,“平视或俯瞰”的角度帮助观众理解大小颜兼备的佐料机相对于其他产品的独特优势。
  • 在展示食材如何分别放入小碗进行加工时,同样以“近 俯”视角呈现了多样的碗具及方便使用的特性。

这些运镜特点能够有效地突出该绞肉机的功能特色与使用便捷性。 

 

2-deepseek-V3 模型

chat+nomic-embed-text 佐料机拍摄脚本的运镜特点可以总结为以下几点: 固定镜头为主:大多数镜头采用固定拍摄方式,确保画面稳定,突出产品细节和操作过程。 近景与俯视角度:通过近景和俯视角度展示佐料机的操作细节,如绞打食材、摆放碗具等,增强视觉吸引力。 多角度切换:采用平视、俯视、微俯视等多种角度,全面展示产品的多功能性和使用场景。 特写镜头:使用特写镜头聚焦食材的绞打过程和佐料机的细节设计,突出产品的实用性和美观性。 连贯性:镜头之间通过连贯的动作和场景转换,展示佐料机的使用流程和优势,如从绞打食材到展示整机。 这些运镜特点有助于全面展示佐料机的功能和优势,提升观众的购买欲望。 

 

minimax 的 embo-01 佐料机拍摄脚本的运镜特点主要包括以下几点: 定镜拍摄:大部分场景采用定镜拍摄,保持画面稳定,突出产品细节和功能展示。 近景与俯视角度:多个镜头采用近景和俯视角度,便于展示佐料机的操作过程和细节,如绞打花生、蒜头等。 平视角度:部分镜头采用平视角度,展示佐料机的整体外观和叠放效果,增强视觉冲击力。 上移镜头:在展示收纳和击掌击展示时,采用上移镜头,增加动态感和互动性。 画面后期推进:通过后期处理,增强画面的推进感,使产品展示更加生动。 这些运镜特点共同作用,使得佐料机的功能和优势得到充分展示,同时提升了视频的观赏性和吸引力。 

Cohere的embed-multilingual-v3.0 佐料机拍摄脚本的运镜特点主要包括以下几点: 景别与角度:主要采用近景和平视、俯视的角度。例如,近景平视用于展示整机,近景俯视用于展示食材的摆放和绞打过程。 拍摄方式:大部分场景采用固定镜头(定拍),确保画面稳定,突出产品的细节和功能。 画面简述:通过特写镜头展示佐料机的操作过程,如绞打花生、蒜头等食材,以及展示整机和佐料碗的摆放。 台词/旁白音/文案:配合画面,强调产品的多功能性和卫生优势,如“专碗专用,不怕串味”和“大小颜兼备的绞肉机优势就出来了”。 拍摄场地:主要在特俯和近景的场地进行拍摄,确保画面清晰且细节突出。 总结来说,佐料机拍摄脚本的运镜特点是通过近景和平视、俯视的角度,结合固定镜头,突出产品的多功能性和卫生优势,同时通过特写镜头展示操作过程和细节。 

3-deepseek-r1 模型

reasoner+nomic-embed-text 根据拍摄脚本的内容,该佐料机视频的运镜特点可总结为以下三点: 固定镜头为主 所有分镜均采用「定」拍摄方式,通过稳定静止的画面集中展现产品操作细节(如绞打食材过程、碗具叠放演示等),强化观众对功能点的视觉记忆。 近景与特写主导 大量使用「近景+俯拍」(如红碗绞蒜过程)、「近景+平视」(如叠放碗具展示整机)以及「特俯」视角(如蓝碗绞花生镜头),近距离突出食材处理效果与产品结构设计,直观传递「专碗专用」「防串味」等卖点。 对比式构图 通过俯拍传统绞肉机内残留辣椒末(近俯镜头)与多佐料碗环绕主机(旋绕构图)的对比画面,静态镜头中隐含动态逻辑,直观放大「大小碗分区」的卫生优势。 

 

minimax 的 embo-01 佐料机拍摄脚本的运镜特点可总结为以下三点: 以“定镜”为主:多数画面采用固定镜头(如特写、近景),稳定呈现产品绞打食材、叠放碗杯等细节操作,突出机器的高效与便捷性。 近景与俯视结合:通过“近 平”与“近 俯”角度(如绞打花生、蒜头的特写画面)直观展示食材处理效果,强化视觉冲击力;俯拍则用于呈现多碗收纳、整机结构等场景,体现产品设计的合理性。 少量动态运镜:仅在关键画面(如序号22的“上移”镜头)通过镜头缓慢上移,配合收纳与击掌动作,动态传递产品轻便易用的卖点,增强观众代入感。 整体运镜风格简洁实用,聚焦产品功能与设计优势,避免过度花哨,贴合“好物种草”类视频的真实性需求。 

 

Cohere的embed-multilingual-v3.0 佐料机拍摄脚本的运镜特点可总结为以下三点: 景别以“近景”为主: 几乎所有画面(如绞打食材、摆放碗具、对比传统绞肉机等)均采用近景拍摄,突出产品细节和操作过程,增强代入感与实用性展示。 角度以“俯视”为核心: 多数镜头采用俯视或微俯角度(如绞打过程、摆放食材、碗具叠放等),直观呈现食材处理效果及产品结构设计(如多碗分装),同时配合少量平视镜头(如整机展示、对比传统绞肉机)平衡画面层次。 固定机位强调稳定性: 全程采用“定拍”方式,无运镜移动或变焦,通过静态画面聚焦功能演示(如绞肉、防串味设计),突出产品操作的便捷性和高效性,避免视觉干扰。 整体运镜风格简洁实用,通过近景与俯视的搭配,直观传递产品“大小碗兼备”“专碗专用”“卫生便捷”等核心卖点。 

六、结论

从结果上看,直接影响模型问答效果的最大因素在于文本切换大小。 

其次,embedding 模型的选择也会影响到文本的召回; 

 



53AI,企业落地大模型首选服务商

产品:场景落地咨询+大模型应用平台+行业解决方案

承诺:免费场景POC验证,效果验证后签署服务协议。零风险落地应用大模型,已交付160+中大型企业

联系我们

售前咨询
186 6662 7370
预约演示
185 8882 0121

微信扫码

添加专属顾问

回到顶部

加载中...

扫码咨询