为什么做
聊天记录一长,人只记得最后一句。真正让关系变化的,往往是前面那些没被接住的话、被误读的语气,还有回复里少掉的那半句。
我想做一个工具:不替你聊天,只把每句话里的情绪、意图和回应质量标出来,让你自己判断。
名字叫「言外之意」,因为大部分信号不在字面上:一句“随便”可能是失望,一个“嗯”可能是没接住。
它做什么
- 逐句标注情绪与意图,并给出概率最高的几个选项;
- 给整段对话一个温度评分,给自己的回复打 S–D 的评级;
- 识别重复片段,长记录自动分批,刷新后还能接着看;
- 数据留在本机,API Key 只存在你自己的机器上。
怎么用
- 启动项目(在项目台里点第一项,或进入 `projects/crush-monitor` 跑 `npm start`);
- 在设置里选择模型平台,填入自己的 API Key;
- 把聊天记录粘进输入框,点分析;
- 看每句下面的标签、顶部的评分,以及底部的下一步建议。
技术
- 前端 React 19 + Vite,后端 Express,全部 TypeScript;
- 用结构化输出约束模型返回情绪、意图、评分,而不是一段自由文本;
- 本地 Node 服务代理模型请求,Key 不进浏览器存储;
- 分析结果存在本机,不建立账号,也不上传到我的服务器。
用 DeepSeek Harness 复现
这个项目是在 DSH 里多轮改出来的。复现包里有完整源码(已去掉 Key、聊天数据和 node_modules),也有一段从零复现的 prompt。
你是资深全栈工程师。请从零实现「言外之意」: - React 19 + Vite + TypeScript,Express 5 后端; - 粘贴聊天记录,逐句输出情绪、意图、好感度、回复评级; - 用 Zod 约束结构化 JSON,长记录分批; - Key 只存本机 .env,不进前端; - 单色、宋体标题、等线正文,先做最小版本。
它不是心理诊断,也不该替你决定一段关系。分析结果只供参考;聊天内容会发送给你选择的模型服务商,使用前请先了解对方的隐私条款。
状态
个人项目,目前在本机运行,没有公开在线 Demo。需要 Node 18+ 和一个可用的模型 API Key;完整启动方式在项目台的「项目介绍」里。