社工日志生成器
概述
将零散的社工活动材料自动归集,生成一份标准社工日志:正文上方为基础信息表格(日期、地点、项目名称、服务对象、服务类型、参与社工),下方为分段撰写的约 300 字、从社会组织社工视角撰写的日志正文(其中『下一步计划』单独成段),照片统一排在正文下方并保留原始彩色。最终同时输出 Word 版(.docx)与图片版(.png),整份日志保持在一页 A4 内。
触发条件
- 用户提到“社工日志”“社会工作日志”“社区工作日志”“社工活动记录”等关键词。
- 用户上传会议纪要(doc/docx)、文字说明、现场照片,或将这些材料打包成 zip。
- 用户明确要求输出 Word 版与图片版,或要求黑白/灰度排版。
工作流程
1. 归集输入材料
调用 scripts/collect_inputs.py 统一处理用户提供的所有文件或目录:
python scripts/collect_inputs.py --inputs <文件1> <文件2> ... --outdir <工作目录>
支持:.docx(提取段落与表格)、.txt/.md、图片(jpg/png/jpeg/webp/bmp/gif)、.zip(解压后提取)。
> 旧版 .doc 二进制格式无法直接读取,提示用户先转 .docx 或直接粘贴文字。
运行后得到 <工作目录>/raw_text.txt(文字汇总)与 <工作目录>/images/(照片)。
2. 填写基础信息表格
阅读 raw_text.txt,尽量从中提取以下 6 项;材料中缺失的字段,向用户确认后用「待填」占位,写入 <工作目录>/meta.json:
{
"date": "2026年8月18日",
"place": "成都市武侯区邻礼纪公益服务中心活动室",
"project": "邻里议事会",
"target": "社区居民、独居老人、双职工家庭",
"service_type": "社区议事 / 普惠服务",
"workers": "李婷、王浩"
}
字段顺序固定:日期 → 地点 → 项目名称 → 服务对象 → 服务类型 → 参与社工。
3. 撰写社工日志正文
阅读 raw_text.txt,提炼为约 300 字 的中文正文,分段保存为 <工作目录>/body.txt(空行分段)。
正文要求:
- 以自然段落撰写,不列条目;用空行分隔段落。
- 视角为社会组织社工(如“本中心”“社工”第一/第三人称均可),客观、专业、简洁。
- 前段写活动简述、服务过程、成效或发现;最后一段为『下一步计划』,单独成段(以“下一步计划:”开头,如持续跟进、试点安排、复盘时间等)。
- 不编造材料未提供的信息;不足时向用户确认。
示例 body.txt 结构:
8月18日,本中心在活动室组织开展“邻里议事会”……
现场收集居民意见建议12条,其中停车与垃圾分类诉求最为集中,已建立台账并初步回应3项。
下一步计划:本周内完成剩余诉求的分办与回访,9月上旬召开第二次议事会通报进展,并形成月度复盘报告。
4. 生成黑白双版本输出
确保已安装依赖(建议在隔离虚拟环境安装):
pip install python-docx Pillow
调用渲染脚本:
python scripts/generate_log.py \
--text <工作目录>/body.txt \
--meta <工作目录>/meta.json \
--images <工作目录>/images \
--outdir <工作目录>
生成:
<工作目录>/社工日志.docx(Word 版,A4 纵向,正文/表格黑白打印样式,照片保留彩色)<工作目录>/社工日志.png(图片版,A4 纵向,150 DPI,黑字白底,照片保留彩色)
5. 交付
使用 present_files 同时展示两份输出,并说明:Word 版便于继续编辑/打印,图片版便于存档、转发或插入汇报材料。
排版约束
- 照片保留原始彩色;正文与基础信息表格为黑白打印样式(黑字白底),不额外着色。
- 整份日志(标题 + 表格 + 分段正文 + 照片)保持在一页 A4 内;图片版通过把照片网格铺满正文下方剩余空间来保证单页。
- 标题“社工日志”居中、加粗。
- 基础信息表格位于正文上方:左列字段、右列内容,带边框。
- 正文首行缩进 2 字符,1.5 倍行距,两端对齐;段落之间留空。
- 照片统一置于正文下方,按文件名顺序排列,2 列网格(一行两张),默认每页 4 张(2×2)。
- 照片过多时,图片版照片网格自动缩小以继续塞入当前页;Word 版保持为一份连续文档。
示例调用
用户发送:“今天开了议事会,纪要.docx 和两张现场照片帮我做成社工日志。”
执行:
python scripts/collect_inputs.py --inputs 纪要.docx 现场照1.jpg 现场照2.jpg --outdir ./work
# 撰写 meta.json(6 项基础信息)与 body.txt(约300字,含下一步计划)
python scripts/generate_log.py --text ./work/body.txt --meta ./work/meta.json --images ./work/images --outdir ./work
随后展示 ./work/社工日志.docx 与 ./work/社工日志.png。