Dify实现长文本中关键实体(NER)提取并入库

云枫大大_1275

云枫大大_1275

2026-10-24

399人浏览

原创

需准备500~5000字含多类实体的长文本,部署带知识库权限的dify环境;配置workflow启用ner提取,用结构化提示词调用llm输出标准json;经code node清洗为扁平化知识条目;最后通过knowledge base node直连写入或导出utf-8无bom的jsonl文件手动导入。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

dify实现长文本中关键实体(ner)提取并入库

准备待处理的长文本与Dify环境

你需要一段含有多个人名、地名、组织机构、时间、事件等关键信息的长文本(如新闻稿、会议纪要、法律合同),并确保已部署或接入可调用API的Dify实例,且拥有知识库写入权限。

文本长度建议在500~5000字之间;过短则NER识别无意义,过长需先分段——Dify原生NER模块对单次输入有约4096 token上限,超限会截断导致实体丢失。

配置Dify工作流启用NER提取能力

登录Dify控制台 → 进入【Workflow】→ 新建空白工作流 → 拖入「Text Input」节点作为入口。

添加「LLM Node」节点,选择支持结构化输出的大模型(如Qwen2.5-7B-Instruct或dify-llm-ner-v1),在提示词(Prompt)中明确要求以JSON格式返回识别结果:

“请从以下文本中严格提取所有【人名】【地名】【组织名】【时间表达式】【事件关键词】,每类最多返回10个,按如下格式输出:{"persons": ["张三"], "locations": ["北京市"], "organizations": ["国家发改委"], "times": ["2025年10月"], "events": ["政策修订"]}。不要任何解释、不要省略引号、不要换行。”

【必须关闭“自动补全”和“流式响应”开关】,否则JSON结构会被截断或插入非法字符,导致后续解析失败。

将NER结果清洗为标准知识条目格式

在LLM Node后接一个「Code Node」,使用Python脚本完成字段校验与格式转换:

① 用json.loads()解析LLM输出,捕获KeyError或JSONDecodeError异常;

② 遍历每个实体类型列表,对每个实体字符串执行.strip()去首尾空格,并过滤掉空字符串或纯符号项(如“——”、“///”);

Qwen ASR (C-based Offline)
Qwen ASR (C-based Offline)

离线中文及中英混合语音转文字识别,纯C实现,无需Python或FFmpeg依赖,适用于边缘设备。

下载

③ 将每个实体构造成独立知识条目:{"content": "张三", "metadata": {"entity_type": "person", "source_doc_id": "doc_20261021_001"}};

④ 合并全部条目为一个list,赋值给output变量传递至下一节点。

这一步不可跳过——Dify知识库导入接口只接受扁平化的条目列表,不接受嵌套JSON结构。

批量写入Dify知识库

方法一:通过「Knowledge Base Node」直连写入

在Code Node后添加「Knowledge Base Node」,下拉选择目标知识库,勾选“自动创建新文档”,点击保存即可触发入库。

方法二:导出JSONL文件后手动上传

在Code Node中加入file.write()逻辑,将output列表逐行写入临时文件,每行一个JSON对象;下载该文件 → 进入Dify【Knowledge Base】→ 【Import】→ 选择CSV/JSONL → 上传 → 确认列映射(content→content,metadata→metadata)→ 开始导入。

【注意:JSONL文件必须为UTF-8无BOM编码,否则中文metadata会显示为乱码】

相关文章

PHP速学视频免费教程(入门到精通)
PHP速学视频免费教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载

相关标签:

dify qwen

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

相关专题

更多
Dify 本地部署与企业配置
Dify 本地部署与企业配置

本专题系统讲解 Dify 从零开始的本地部署方法与企业环境配置实践,涵盖 Docker 安装、依赖准备、数据库初始化、反向代理、参数调优、安全加固与多用户开通,帮助开发者与企业团队快速搭建稳定可用的 Dify 平台。

2026.06.05

777

15

Dify Agent智能体开发实战教程
Dify Agent智能体开发实战教程

本专题聚焦 Dify Agent 智能体的设计与开发,涵盖 Agent 模式选择、工具集成、提示词设计、多步推理、上下文记忆与多 Agent 协作,帮助开发者构建可执行复杂业务任务的智能体应用。

2026.06.05

265

15

Dify RAG知识库构建实战教程
Dify RAG知识库构建实战教程

本专题围绕 Dify RAG 知识库的全流程实践展开,从文档导入、分段切片、向量化到混合检索、重排优化与召回评估,帮助你打造高准确率、低幻觉的企业知识问答应用。

2026.06.05

256

15

Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

2026.10.22

20

11

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

2026.10.22

0

10

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

2026.10.22

20

15

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

2026.10.22

0

10

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

2026.10.22

20

25

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

2026.10.22

0

15

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Dify零基础教程
Dify零基础教程

共0课时 | 154人学习

学习Agent,从Dify开始
学习Agent,从Dify开始

共0课时 | 152人学习

Dify 部署与运维指南
Dify 部署与运维指南

共0课时 | 0人学习