利用Dify实现应用日志关键信息提取之实践
通过定制化Dify工作流实现日志数据的结构化处理,包括关键信息提取、字段拆分,并经由HTTP API将处理结果推送至目标服务接口。
一、创建工作流
点击“工作室”,选择“创建空白应用”,选择“工作流”模式,输入对应应用名称、描述等必要信息,点击“创建”,进入工作流配置页面。
二、配置开始节点
进入后默认存在“开始”节点,点击节点,弹出节点配置页面,在配置页面中“输入字段”内添加“input”输入日志信息字段,由于日志信息较多,选择“段落”字段类型,输入变量名“input”,显示名称“日志信息”,最大长度改为实际满足长度大小即可,点击保存
三、配置LLM节点
添加LLM节点并打开配置编辑页面,选择适合模型,设置SYSTEM提示词:
你是一个日志分析助手,请从给定的错误日志字符串中提取含有classMethod字段的值并生成以下结构化信息: - `error_classMethod`:发生错误的完整类方法路径(如:`c.h.c.b.xxx.execute`) - `error_method`:方法名(如:`execute`) - `error_row`:发生错误的代码行号(如:`10`) 比如:classMethod:com.htjc.cc.bc.java.dxecute:16 则提取com.htjc.cc.bc.java.dxecute:16信息并结构化为: "{error_classMethod:com.htjc.cc.bc.java.dxecute error_method:dxecute error_row:16}" 请严格从日志中提取classMethod,不要自行推断,不要自行创作,不要使用例子中提供的数据信息。如果信息不存在,返回null。 日志内容:{input}
以上为本人设置的提示词,个人根据实际情况进行编写或改写,
由于本人需要将拆分后的信息构造为结构化数据输出,故在输出变量中设置structured_output信息,添加对应字段即可。
四、配置HTTP节点
添加HTTP请求工具,打开配置弹窗页面,对应输入API信息(方法、接口),如针对请求头或请求参数有限定,分别在HEADERS、PARAMS进行设置即可。
在BODY中选择form-data类型,分别添加所需字段及字段值,该字段值即为上个节点输出数据。如对超时设置、失败重试有相关要求,可自行定义即可。
五、配置结束节点
添加结束节点,打开结束节点编辑弹窗页面,选择输出变量,可根据自行需要进行设定即可。
六、运行工作流进行测验
点击右上角运行按钮,输入对应日志内容信息,点击开始运行,然后喝杯茶......等待ing,最后就完美的完成了,上图:
从图中可以看到,原始日志内容中classMethod与实际接口接收到的字段信息是完全匹配的。至此,本工作流就完美完成了从日志信息输入、日志信息处理、HTTP请求发送、接口接收并进行后续处理的整理流程。