儿童安全
面向儿童的产品,安全不是功能列表里的一行,而是所有设计决策的前置约束。这个 App 的安全目标是:让孩子在不需要账户、不公开个人信息的前提下,进行温和、可控的天文探索。
无账户、本地存储
儿童主流程不需要注册和登录——没有账户,也就没有账户数据可泄露。愿望、抽星记忆、聊天记录、课堂进度全部保存在当前设备的浏览器里,不上传任何服务器。
实现上,所有持久化都走浏览器 localStorage,读取时逐字段做类型校验,不合法的数据当空处理。代价是浏览器清理数据后内容会丢失,这个取舍对儿童产品是值得的:隐私优先。
内容边界:三道防线
孩子和星体聊天、往愿望墙写内容时,输入会经过三道防线:
- 硬拦截。在调用大模型之前,先用本地规则过滤:涉及自伤、危险行为的直接温柔拒绝;包含电话、地址、学校等个人信息的提醒"不要把这些写进聊天里";作业代写、算命占卜、伪科学这类请求则被"这已经飞出我的星轨了"式地挡回去
- 话题边界。不是天文问题、也不属于情感陪伴的输入,星体会接住话头但不展开,自然地把话题带回星空
- 模型约束。进入模型的请求还受系统提示词约束:只能聊天文和温柔陪伴;必须优先依据准备好的知识资料回答,不允许编造事实;资料不足要明确说"不确定";神话故事和科学事实必须分开讲
实现上,前两道防线是服务端的本地代码——几组关键词表(危险、拒绝范围、陪伴场景)加一条隐私正则(匹配手机号、邮箱、学校地址等),在任何模型调用之前执行,命中即返回准备好的引导话术,请求根本不会到达模型。第三道是注入模型的系统提示词。
设计逻辑是纵深防御:提示词约束是"软"的,可能被绕过;但进不了模型的输入永远是安全的。三道防线里任何一层失效,另外两层仍然兜底。同一套过滤复用在聊天和愿望墙写入两个入口。
科学边界
科普产品还有一条特殊的线:不能教错。
- 天文数据来自 NASA 官方接口,每个数据点标注来源
- 官方数据拿不到时,用人工审核过的本地资料兜底,不编造具体参数
- 讲星座神话时,一定跟着回到科学事实
- 答案不确定时明说,并引导去看知识卡片
成人区域隔离
管理后台等内部页面不出现在儿童导航里,由独立密码保护;模型密钥的状态只显示"已配置/未配置"和脱敏形式(前几位 + 省略 + 后几位),永远不会明文出现在页面上。密钥脱敏在服务端完成后才返回给页面,前端拿到的永远是摘要。
对家长/老师
当前版本没有公开社区、没有云同步、没有内容推荐。孩子看到的一切内容要么来自 NASA 官方数据,要么来自人工准备的资料,要么是受约束的模型回复。