用一台横屏手机和一个带可动猫耳的低成本底座,把任何茶水间变成一间暴躁可爱猫娘开的 AI Water Bar,让打工人用一杯水放下压力、领取元气。
本仓库是 DeskPara 的 Android 客户端:承担相机、会话麦克风、屏幕、AI 交互与音频播放,并通过 BLE 驱动底座转向与实体猫耳反馈。
- 剪影待机:首屏显示明暗呼吸的猫娘剪影与居中猫咪指纹触点;按住整整 2 秒,角色随径向波纹从触点中心显现,显现完成后才建立会话。
- JSON 驱动对话:主 LLM 每轮只返回结构化 JSON 和一句角色回复,决定何时闲聊、何时进入萌萌魔法、下一轮是否采集麦克风/摄像头。
- 萌萌魔法:固定四段本地预录 WAV(
moemoe、nyanya、oishikunare、moemoekyuun)跟念流程,多模态模型判断是否跟上,失败鼓励重试。 - 分层 PNG 动画:角色为横屏猫娘头部近景,固定 2856×1280 画布,透明 PNG 组件(眼睛、眉毛、嘴巴、头发等)分层合成、逐帧切换,运行时不依赖任何生成式视频。
- 实体猫耳:主 LLM 仅通过受限的
ear_action选择本地动作目录 ID;全部轨迹、舵机角度和 BLE 命令由客户端掌控。
:core:contracts 纯 Kotlin:Turn JSON 契约与严格校验
:core:domain 纯 Kotlin:会话模型与 reducer 状态机
:core:storage 设置、凭据与脱敏诊断持久化
:core:gateway OpenAI-compatible 模型网关与 TTS 网关
:feature:conversation 会话编排、音频运行时、隐私采集协调
:feature:stage 分层合成器与角色舞台
:hardware:dock 底座与 legacy 猫耳 BLE 协议
:app 设备端集成(Compose UI、运行时)
:benchmark 性能与 soak 门槛(Android test)
:test:backup-probe 备份策略对照 APK(独立安装)
:core:domain 与 :core:contracts 为纯 Kotlin/JVM 模块,不依赖 Android 框架;所有具备 I/O 能力的模块都指向这两个纯模块。详见 docs/architecture/module-graph.md。
./gradlew assembleDebug # 构建调试包
./gradlew test # JVM 单元测试(契约、领域、网关等)
./gradlew connectedAndroidTest # 真机/模拟器仪器测试质量与发布门槛由 CI 固定执行;QA 脚本位于 scripts/qa/(契约校验、服务向量生成、备份策略等)。
- demo-1.mp4 — 端到端演示录像(长按激活、JSON 对话、萌萌魔法与猫耳联动)
-
产品总体规划(Master Plan) — 产品定义、状态机、交互规范、时间线
-
底座结构设计 — STL 打印件、SolidWorks 源文件与渲染图
设备面向办公室茶水间、图书馆休息区等公共/半公共空间:本地 hotword 路径默认完全禁用,唯一用户入口是屏幕长按;采集的临时音视频按代际安全清理,会话结束即回到剪影待机。详见 Master Plan 第 12 章与安全策略文档。