霜降一过天气说冷就冷了下来。衣柜深处的厚毛衣、抽屉里的羊绒围巾、收纳袋里的羽绒被还有去年收在储藏室里的暖风机与踢脚线取暖器都到了该翻找出来的时候。换季是一件充满烟火气却又琐碎至极的家务活。周末的午后我常常一边在屋子里翻箱倒柜一边在便利贴或手机便签里潦草地写上几行字“主卧顶柜左边有去年洗好的羊毛毯记得晒一晒客房电热毯插头好像松了要换猫咪的加厚保暖猫窝在储物间第二层纸箱顺便买两斤雪梨和一盒老姜……”随手记录的便签往往像一阵风东一句西一句既没有分类也没有轻重缓急。等真正想要开始大扫除或者下单采购时面对这团乱麻般的文字往往无从下手。今天我们便用本地轻量大模型作为贴心的生活管家将这些随手涂抹的换季碎片一键梳理成井然有序、划分空间的家庭入冬物资清单。一、生活便签的混乱特征与模型理解日常手写便签与工业级的结构化数据有着天壤之别空间跳跃性大前一秒在想衣柜里的厚外套下一秒突然想起厨房需要煮陈皮姜汤紧接着又惦记起阳台上的多肉植物需要搬进室内防冻。状态极其隐晦比如“翻出暖风机测试一下吹风”代表已有物资但需要检修“去买两斤雪梨”代表待采购“主卧羊毛毯晒一晒”代表已有物资但待清洁整理。口语化省略严重省略主语、缺乏标点、甚至夹杂着简写与错别字。传统的规则表达式Regex在面对这种充满生活语境的文字时几乎束手无策。然而具备语义理解能力的大语言模型却非常擅长在字里行间捕捉生活的真实脉络。二、设计高容错的结构化提取 Prompt为了让模型稳定输出规整的待办事项同时不丢失原文里温暖的生活细节我们需要在系统提示词中界定清晰的物理空间与动作类型import json from typing import Dict, Any EXTRACTOR_SYSTEM_PROMPT 你是一位细致体贴的家庭生活管家。 你的任务是将主人随手记录的换季零散便签整理为条理清晰的“家庭入冬物资清单”。 请严格遵循以下规则输出 JSON 结构 1. 按物理空间归类[衣橱布艺, 取暖电器, 厨房暖饮, 宠物保暖, 绿植防冻, 医疗备用] 2. 每个项目包含 - item_name: 物资名称 - location: 所在位置如明确提及否则标为未知 - action_type: 动作类型限定为 [翻找清洗, 检修测试, 搬迁入室, 采买补充] - urgency: 紧迫程度 [高(近两日必须), 中(本周内), 低(入冬前)] - note: 细碎叮咛或注意事项 3. 保持温暖平和的文字基调严禁臆造便签中完全未提及的事项。这个 Prompt 的精妙之处在于将生活动作精确归纳为四个动词翻找清洗衣被、检修测试电器、搬迁入室绿植宠物以及采买补充食材与易耗品。这种划分天然契合了换季时的家务流转顺序。三、手写原生清洗与清单生成脚本我们利用 Python 调用本地 Ollama将一段极其混乱的原生便签转换为结构化数据并进一步渲染成优雅的 Markdown Checklist 供打印或贴在冰箱上import json import urllib.request from typing import List, Dict def parse_seasonal_notes(raw_notes: str) - Dict[str, Any]: 调用本地大模型解析杂乱换季便签 payload { model: qwen2.5:7b, messages: [ {role: system, content: EXTRACTOR_SYSTEM_PROMPT}, {role: user, content: f以下是主人今天的换季手写便签\n\n{raw_notes}} ], format: json, stream: False, options: {temperature: 0.2} # 低温保持提取严谨性 } req urllib.request.Request( http://127.0.0.1:11434/api/chat, datajson.dumps(payload).encode(utf-8), headers{Content-Type: application/json} ) with urllib.request.urlopen(req) as resp: res json.loads(resp.read().decode(utf-8)) return json.loads(res[message][content]) def render_winter_checklist(data: Dict[str, Any]) - str: 将结构化数据渲染为雅致的手账 Markdown 格式 lines [ # 霜降入冬 · 家庭暖居备忘手账\n, 岁暮天寒预作绸缪。把屋子收拾得暖意融融日子便安稳了。\n ] # 按空间区域输出分组 categories data.get(categories, {}) if isinstance(data, list): # 兼容数组结构返回 items data else: items data.get(items, []) # 按分类聚合 grouped {} for item in items: cat item.get(category, 综合事项) grouped.setdefault(cat, []).append(item) for cat_name, cat_items in grouped.items(): lines.append(f### {cat_name}) for it in cat_items: urgency_flag if it.get(urgency) 高 else action it.get(action_type, 处理) loc f位置{it[location]} if it.get(location) and it[location] ! 未知 else note f —— *{it[note]}* if it.get(note) else lines.append(f- [ ] {urgency_flag}**[{action}]** {it[item_name]}{loc}{note}) lines.append() return \n.join(lines)四、从混乱草稿到井然清单的蜕变我们拿一段典型的生活杂记进行测试sample_raw_notes 主卧顶柜最左边的厚羽绒被要拿出来晒晒今天阳光好 记得给客厅踢脚线取暖器通电试一下去年收起来前好像温控旋钮有点滞涩 猫咪的毛绒半封闭猫窝在二号储物纸箱里顺便看看保暖垫加热线坏没坏 去独立超市买两斤大鸭梨、半斤红枣、老红糖还有煲汤用的老姜 阳台上的两盆薄荷和绿萝得搬进客厅朝南窗台霜降夜里温度只有六七度容易冻伤 还有去年那件米白色双面羊绒大衣送去巷口干洗店熨烫一下。 if __name__ __main__: extracted parse_seasonal_notes(sample_raw_notes) markdown_output render_winter_checklist(extracted) print(markdown_output)经过模型整理后杂乱的几句话摇身一变成为了层次分明的行动手账# 霜降入冬 · 家庭暖居备忘手账 岁暮天寒预作绸缪。把屋子收拾得暖意融融日子便安稳了。 ### 衣橱布艺 - [ ] **[翻找清洗]** 厚羽绒被位置主卧顶柜最左边 —— *趁今日阳光晴好晒透* - [ ] **[翻找清洗]** 米白色双面羊绒大衣 —— *送至巷口干洗店熨烫护理* ### 取暖电器 - [ ] **[检修测试]** 客厅踢脚线取暖器 —— *通电检查温控旋钮是否顺畅* ### 宠物保暖 - [ ] **[翻找清洗]** 毛绒半封闭猫窝位置二号储物纸箱 —— *检查配套加热保暖垫线路* ### 厨房暖饮 - [ ] **[采买补充]** 鸭梨、红枣、老红糖、老生姜 —— *用于日常煲煮温润热汤* ### 绿植防冻 - [ ] **[搬迁入室]** 薄荷与绿萝位置阳台 —— *移至朝南窗台避开夜霜*五、在琐碎家务里寻回生活的秩序感面对换季时的杂乱与寒凉人们往往容易产生轻微的焦虑感。看着满地的杂物和毫无头绪的日程心情也会随之蒙上一层灰蒙蒙的阴影。技术在这个时候扮演的并不是冷冰冰的工作效率放大器而是一把帮我们理清生活线索的轻柔梳子。当我们看到原本杂乱无章的思绪被整整齐齐地码在手账里一件件划掉完成的方框房间一点点变得温暖整洁、充满姜茶香气时那种踏实的安全感便油然而生。学会借助代码照料好一日三餐与起居冷暖本身就是一种极具诗意的生活智慧。
阅读完成 · 觉得有帮助?