Dify可自动解析用户上传的TXT日记,提取日期、主题、情绪并归档:先配置diary_file文件字段仅支持.txt,再经文档提取器保留换行;用正则或大模型提取日期与主题;通过大模型判别情绪后,依条件路由至【成就】【反思】【日常】知识库,标题为“{date}-{topic}”,需提前开启知识库API写入权限。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要让Dify自动读取用户上传的纯文本日记(如每日手写扫描转TXT、语音转录稿等非结构化内容),从中提取日期、主题、情绪倾向等关键字段,并按规则归档到对应知识库或文件夹路径,避免人工逐条整理。
准备日记上传入口与基础解析配置
进入Dify工作流编辑页,点击“开始节点”→打开变量配置面板→点击“+添加字段”→选择“文件”类型→字段名设为diary_file→仅勾选支持格式:.txt→保存配置。这一步必须做,否则后续无法接收日记文件;若误选.pdf或.docx,系统将直接拒绝上传,流程中断。
拖入“文档提取器”节点,连接至开始节点→在配置中将输入绑定为diary_file→启用“保留原始换行符”选项。不启用会导致段落粘连,影响后续按行切分日期识别。
从TXT中精准提取日期与主题
方法一:用正则匹配固定格式日期
拖入“代码”节点,输入变量为文档提取器输出的text→粘贴以下Python代码:
```python
import re
text = text.strip()
# 匹配中文日期:2025年10月21日、十月二十一日、10/21等
date_patterns = [
r'\d{4}年\d{1,2}月\d{1,2}日',
r'[一二三四五六七八九十零]+月[一二三四五六七八九十零]+日',
r'\d{1,2}/\d{1,2}'
]
found_date = None
for pat in date_patterns:
match = re.search(pat, text)
if match:
found_date = match.group(0)
break
output = {"extracted_date": found_date or "unknown", "raw_text": text}
```
方法二:调用大模型做语义理解(适合口语化日记)
拖入“大模型”节点→输入绑定为文档提取器输出→提示词写:“你是一名日记整理助手。请从以下文本中严格提取:1. 最可能的日记日期(格式:YYYY-MM-DD),若无明确日期则写‘未注明’;2. 一句话概括核心主题(不超过15字)。只输出JSON,字段为date和topic,不要任何解释。”→关闭“流式响应”,否则JSON结构会被截断导致解析失败。
按情绪倾向自动归档到知识库分区
第一步:用大模型判断情绪类别
拖入第二个“大模型”节点→输入绑定为上一步output(含date和topic)→提示词写:“分析以下日记内容的情绪倾向:积极、中性、消极。只返回一个词,不要标点。”→设置输出变量名为mood_label。
第二步:配置条件分支路由
拖入“条件”节点→输入为mood_label→添加三条分支:
• 若 mood_label == “积极” → 路由至“归档到【成就】知识库”节点
• 若 mood_label == “消极” → 路由至“归档到【反思】知识库”节点
• 其他情况 → 路由至“归档到【日常】知识库”节点
第三步:执行知识库写入
在每条分支末端拖入“知识库写入”节点→选择对应知识库→文档标题设为“{{date}}-{{topic}}”→内容填入原始text→启用“自动向量化”。【注意:必须提前在对应知识库中开启“允许API写入”开关,否则该节点始终报错】











