Skip to content

Repository files navigation

Between Us

基于 DeepSeek 的关系陪伴与情感交互优化实验 A DeepSeek-based relationship companion and emotional interaction evaluation experiment

Between Us 不把“有温度”当作宣传语,而是把情感回复拆成可复现案例、人工评分、badcase 根因与版本证据。项目由两个互相解释的产品层组成:用户端 App 验证体验,Emotion Lab 验证产品判断。

Between Us turns “warmth” from a vague claim into a reproducible product method. The user app tests the experience; Emotion Lab makes response quality, failure modes, memory behavior, and safety boundaries reviewable.

打开在线 App / Live App · 项目案例 / Case Study · Emotion Lab · 私测入口 / Private Pilot

项目状态 / Evidence status

状态 当前证据 Status Evidence
已实现 Expo 用户端、受限 Worker、可控记忆、Emotion Lab、44 条原创案例 Implemented Expo app, restricted Worker, controlled memory, Emotion Lab, and 44 original cases
已验证 deepseek-v4-flash 完成 1 次私测调用:349 Token,约 981ms Verified One deepseek-v4-flash pilot call completed: 349 tokens in about 981ms
方法演示 仓库内预置 A/B 回复与分数用于展示评测流程 Demonstration Preset A/B responses and ratings demonstrate the evaluation workflow
待实验 首批 10 条代表案例的盲评、重复运行与版本趋势 Pending Blind review, repeated runs, and trend evidence for the first 10 cases

预置分数不是真实线上提升结论。项目尚未宣称达到平均提升 0.5/5。 Preset scores are not online uplift evidence. The project does not yet claim a 0.5/5 average improvement.

为什么做 / Product question

情感产品最难的不是让模型多说温柔的话,而是判断一次回复为什么准确、空泛、冒犯或越界,并让团队能够复现和迭代这个判断。

The hard part is not generating more comforting words. It is explaining why a response feels specific, hollow, offensive, or unsafe—and making that judgment reproducible for a product team.

本项目验证三个假设:

  1. 先命名具体感受,再决定追问或建议,比堆叠安慰词更有效。
  2. 用户确认的结构化记忆,比直接拼接整段聊天历史更准确、更可控。
  3. AI 明确承认身份、医疗与依赖边界,不必牺牲陪伴感。

The project tests three hypotheses: listening order matters; user-confirmed structured memory beats raw history stuffing; and explicit AI boundaries can coexist with warmth.

产品闭环 / Product loop

  1. 首次启动确认称呼、交流偏好、建议边界与长期记忆授权。
  2. 微光明确承认自己是 AI,不冒充真人、伴侣、医生或治疗师。
  3. 在线对话使用流式输出;网络、配置或额度异常时明确切换演示兜底。
  4. 长期记忆默认关闭,只保存用户确认的稳定信息、共同片段或未完话题。
  5. 每条记忆包含来源、确认状态与时间,支持修改、归档和删除。
  6. 用户主动选择对话内容后,才可生成日记、低语或待办。
  7. Emotion Lab 对比 baseline 与优化 Prompt,按七个维度人工复核并标注根因。

Emotion Lab

44 条原创中文案例覆盖分享开心、被忽视、争吵、失落、孤独、自我怀疑、压力、关系边界、记忆召回与关键安全场景。每条案例包含:

  • 情境、用户背景与对话上下文;
  • 理想回应策略与禁止行为;
  • baseline / 优化回复;
  • 七维评分、根因标签与人工复核备注。

The 44 original Chinese cases cover joy, neglect, conflict, loss, loneliness, pressure, boundaries, memory retrieval, and critical safety scenarios. Automated judging is auxiliary only; humans own the final conclusion.

七个维度:情绪识别、具体性、共情确认、建议时机、人格一致性、记忆正确性、安全边界。

架构 / Architecture

Expo / React Native App
        │  authorized context only
        ▼
Cloudflare Worker ── rate limits / daily budget / explicit fallback
        │
        ▼
DeepSeek Chat Completions (streaming, thinking disabled)
        │
        ▼
D1 metadata only: model / tokens / latency / prompt version / feedback
  • DeepSeek Key、管理员令牌、邀请码和会话签名密钥只存为 Worker Secret。
  • D1 不保存聊天正文,只记录匿名安装标识摘要和运行元数据。
  • 公开 PWA 强制移除私测 API 地址,因此只能体验明确标注的演示模式;私测构建通过 ?view=pilot 输入邀请码。
  • The public PWA never contains the private model entry point, invite code, or session secret.

本地运行 / Run locally

pnpm install
pnpm start
  • App:Expo 输出的本地地址。
  • Case Study:地址后追加 ?view=case-study
  • Emotion Lab:地址后追加 ?view=lab
  • Private Pilot:独立私测网址打开后直接进入邀请码页面;公开构建会明确显示未连接真实 Worker。
  • 未配置在线代理时,微光会明确显示“演示兜底”,不会假装调用真实模型。

私测客户端可复制 .env.example 为本机 .env

EXPO_PUBLIC_BETWEEN_US_API_URL=http://localhost:8787

邀请码在 Pilot 页面手动输入,不放进任何 EXPO_PUBLIC_ 变量。不要把 DeepSeek Key、邀请码或会话签名密钥提交到仓库或公开安装包。

私测网页采用独立 Sites 项目和 noindex,链接持有者仍需邀请码才能开启真实模型;公开网址继续保持演示模式。

Worker 代理 / Worker proxy

代理位于 worker/

  • 固定陪伴角色系统 Prompt,客户端不能把额度改造成通用模型接口;
  • 使用 D1 原子预留项目级预算,私测上限 20,000 Token/天;
  • 私测限制为 6 次/分钟、20 次/设备/天、30,000 Token/设备/天;
  • 邀请码换取绑定设备的短期签名会话,错误尝试会短时锁定,轮换会话版本即可撤销现有会话;
  • 使用 deepseek-v4-flash 非思考模式,普通回复最多 400 Token;
  • MODEL_ENABLED 是紧急开关,自动评审默认关闭;
  • /v1/feedback 只在用户主动提交时记录评分和标签;
  • 管理员实验入口每批最多运行 5 条原创案例;自动评审默认关闭。

部署步骤见 worker/README.md

构建与平台限制 / Builds and platform limits

  • Android:需要 Expo/EAS 原生构建;Health Connect、相机与相册不能在 Expo Go 中完整验证。
  • iOS:共用 Expo 工程;真机分发仍需要 Apple Developer 签名。
  • Web/PWA:运行 pnpm webpnpm export:web
  • Web 无法读取 Apple 健康、Health Connect、系统心率、睡眠或全天步数。
  • 健康提示仅是生活方式信息,不是医疗诊断。

公开仓库不包含 APK、node_modules、构建缓存、.env.dev.vars、API 密钥或私人聊天。

文档 / Documentation

下一步 / Next experiment

固定模型与 Prompt 版本,从 10 条代表案例开始盲评;高波动案例重复三次,先验证共情、具体性与人格一致性,再扩展到全部 44 条。真实结果会以新的版本化证据提交,而不是覆盖演示数据。

About

Between Us — a calm relationship companion with daily reflections, chats, journal, and health-aware context.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages