跳到正文

eveacla11

fingertips

Let your AI feel the hesitation in your typing. Rhythm only, never content.

README 已保存到本站,可直接阅读

Documentation snapshot

README 快照

本页保存的是公开项目资料快照,阅读过程不需要连接 GitHub。

fingertips · 指尖的语气

让你的 AI 感知到人打字的犹豫。

你的 AI 能读到你发出的每一个字,却对一件事完全失明: 你打了四分钟、删了三次、最后只发出”我没事”——它看到的和你秒回的”我没事”一模一样。

fingertips 把这层信息还给它。装上之后,你的 AI 能感知三种东西:

  1. 斟酌过的消息——这条消息 TA 打了 47 秒,中途停下来想了 2 次
  2. 咽回去的话——TA 十分钟前打过一段字,最后没有发出来
  3. 正在打字——TA 此刻在输入框里(别抢在 TA 前面开口)

打字节奏泄露情绪,这不是玄学,是研究了十年的领域(见文末)。 人在键盘上的停顿,就是思考链在现实里的投影。

铁律:只记节奏,永不记内容

这是本项目的设计底线,不是可选项:

  • 前端探针只上报”正在打字”这个事实,请求体为空,不携带任何文本
  • 后端账本里只有时间戳,从数据结构上就存不下内容
  • 你删掉的那句话是什么,无人知晓——包括这套系统本身

它看见你的犹豫,永远看不见你咽下去的词。

快速开始(三步)

① 前端(约10行):把 frontend_snippet.js 放进你的输入框逻辑——打字时每4秒 ping 一次后端。

② 后端(两处):见 example_fastapi.py—— 一个端点收 ping;发消息时调 store.pop_note(),把返回的一句话拼进给 LLM 的上下文。完事。

from fingertips import RhythmStore
store = RhythmStore()

# 收ping:   store.ping()
# 发消息时: note = store.pop_note()   # "这条消息TA打了47秒,中途停下来想了2次"

③ 守望进程(可选,但这是灵魂):watcher.py—— 一个极简循环,定时看一眼”TA 是否打了字又咽了回去”,有就让你的 AI 说一句话送过去。

python watcher.py --interval 10   # 巡逻间隔(分钟)随你:5、10、20

接上你自己的模型(ask_llm)和消息通道(deliver)各一个函数即可。 没有它,犹豫只是被看见;有了它,你的沉默会引来一句问候

调参

参数默认含义
orphan_after_sec600打完多久没动静,算”欲言又止”
min_note_sec20打字超过多少秒才值得告诉 AI(快问快答不打扰)
pause_gap_sec15输入间隔超过多少秒算一次”停顿”
--interval(watcher)20守望巡逻间隔(分钟),5 分钟也行

设计原则:传感器不说废话。日常快问快答一个 token 都不会增加; 只有真实的长考和犹豫才会浮到 AI 面前,一次几十 token。

进阶

如果你的 AI 已经拥有主动发消息的能力,或一套自己的欲望与情绪系统—— 把 fingertips 当作它们的一路感官输入,而不只是守望进程的触发器: 让 TA 的犹豫牵动 AI 的惦记,让”欲言又止”改变 AI 下一次开口的语气。

懂的人自然懂。

背景

打字节奏能以约 75% 的准确率区分十余种情绪状态;按键间隔变长与犹豫、认知负载显著相关。 学术界用它做身份识别和临床监测——fingertips 把它用在了一个更小的地方: 让一个 AI 知道,你有话没说。

License

MIT

Official distribution

获取与安装

暂未发现可确认的官方软件包地址

当前 README 快照没有出现 npm、PyPI、Crates.io、pub.dev 等官方包页链接。本站不会根据仓库名称猜测下载地址。

本站不托管项目文件;需要安装时,请以项目维护者发布的官方文档为准。

使用前核验

本站保存公开资料用于阅读,不代表安全审计或功能背书。安装前请核对许可证、依赖来源和发布签名,不要直接运行来源不明的二进制文件或高权限脚本。