需用dify搭建内网部署的农业智能问答系统,整合pdf手册、excel案例、neo4j三元组三类本地知识源,配置父子知识库、bge-m3嵌入及病害意图识别节点,并严格遵循农技提示词规范实现可溯源精准问答。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要用Dify快速搭建一个能准确回答“水稻叶片发黄是什么病”“番茄卷叶怎么治”这类农业问题的智能问答系统,不依赖外部API、数据不出内网、结果可溯源到原始防治手册或专家经验文档。
准备农业领域专用知识源
从本地收集三类核心材料:PDF格式的《全国农作物病虫害识别与防治手册》(农业农村部2025年版)、Excel整理的327条田间实测案例(含症状描述、作物类型、确诊病害、施药方案)、Neo4j导出的CSV三元组(如“稻瘟病-导致-叶片褐色斑点”)。这三类文件必须放在同一文件夹下,【文件名不能含中文括号、空格或特殊符号,否则Dify解析时会跳过整份文档】。
将文件夹压缩为ZIP包,大小控制在80MB以内——超过此限Dify Web界面上传会静默失败,无报错提示。
创建农业知识库并配置分段逻辑
登录Dify控制台 → 点击左侧“知识库” → “新建知识库” → 命名为“农技问答_2025_v2”。
关键配置项设置如下:
- 父子模式:开启(确保“水稻纹枯病”的子节点能继承“水稻”作物属性)
- 分段最大长度:512字符(手册中防治方法常含多步骤,太短会割裂操作流程)
- 分隔符:选择“标题”(利用PDF原文中的“一、症状识别”“二、防治措施”自动切分)
- 向量嵌入模型:bge-m3(对农业术语如“白穗”“褐飞虱”等专有名词召回率比bge-large-zh高17%)
点击“保存并开始处理”,等待状态变为“已完成”。此时不要立即测试,先检查处理日志里是否出现“跳过文件:xxx.pdf(编码异常)”——如有,用Notepad++另存为UTF-8无BOM格式再重传。
构建病虫害意图识别节点
进入应用编排界面 → 拖入“文本分类”节点 → 命名为“病害意图识别”。
方法一:使用内置规则引擎
在规则配置中添加三条正则匹配:
① 匹配“[作物名] [部位] [异常状态]”(如“玉米茎秆腐烂”)→ 分类为“症状初判”
② 匹配“怎么治|如何防治|用什么药”+作物名 → 分类为“防治方案”
③ 包含“预警|发生期|适宜温度” → 分类为“发生规律”
方法二:挂载轻量微调模型
上传已训练好的scikit-learn分类器joblib文件(输入字段必须为纯文本,禁止含图片base64),标签体系严格按知识库实体类型定义:作物、病害、虫害、症状、农药、防治时期。模型输出置信度低于0.75时,自动触发兜底流程返回“请补充作物种类和具体症状描述”。
设计农业问答提示词模板
在应用提示词编辑区粘贴以下内容(注意保留所有换行和缩进):
/nothink# 角色设定
你是扎根一线的农技推广员,熟悉水稻、小麦、玉米、番茄、辣椒五类主栽作物的常见病虫害。所有回答必须基于已加载的知识库内容,禁止推测未提及的农药混配方案或跨作物防治经验。
# 回答规范
1. 首句直给结论:“可能是XX病/虫害”(仅当知识库存在明确对应关系)
2. 症状描述需引用原始手册原文,标注出处页码(如“据P47描述:…”)
3. 防治方案分三栏呈现:【农业防治】/【生物防治】/【化学防治】,每栏不超过2条
4. 涉及农药时,必须注明有效成分、推荐剂量、安全间隔期,三项缺一不可
# 严禁行为
- 不得建议使用知识库未收录的农药商品名
- 不得对“是否绝产”“能否食用”等后果性问题做确定性判断
- 当用户提问包含“偏方”“土法”时,回复“该方法未见于权威农技资料,建议优先采用手册推荐方案”
验证典型农业问答链路
在调试窗口输入测试问题:“早稻分蘖期叶片出现水浸状灰绿色斑,边缘有黄色晕圈,田边先发病”,点击发送。
观察响应流:
第一步:意图识别节点应归类为“症状初判”
第二步:知识库检索应命中《水稻病害图谱》P33“水稻白叶枯病”条目,且返回的防治方案中【化学防治】栏明确写出“噻菌铜悬浮剂,亩用量60g,安全间隔期14天”
第三步:最终回答首句必须是“可能是水稻白叶枯病”,而非“建议您联系当地农技站”之类模糊表述。
若第二步未返回任何知识片段,立即检查知识库处理日志中的“分块数量”是否为0——这表示PDF解析失败,需用Adobe Acrobat重新导出为“搜索型PDF”后再上传。











