前言
谈论 AI 时,我们常聚焦于参数、算力和准确率。将其塞进对话框或代码编辑器后,它往往沦为高效工具,却忽略了其作为连接传统神秘学与未来科技之门的潜力。
本项目的核心目标在于:让 AI 不再仅是冰冷的文本框,而是成为一位带有仪式感、能陪伴用户向内探索的数字导师。当前开源实现完整保留了「手势选牌 + 握拳定契 + AI 解牌与多轮对谈」的仪式闭环,支持在本地直接运行体验。
沉浸式数字占卜仪式设计
传统塔罗的核心并非预知未来,而在于洗牌时的触感、切牌时的呼吸以及抽牌时心跳的停顿。这一整套仪式的本质是让人从浮躁日常中抽离,直面内心困惑;78 张阿卡纳牌的符号则是潜意识投射的载体。
许多数字塔罗产品将这套充满力量的仪式简化为点击按钮和通用牌意,用效率杀死了共情。本项目试图用最前沿的前端技术、计算机视觉和大语言模型,完整重构塔罗占卜的仪式闭环,而非解构神秘。
1. 启程:向秘仪袒露困惑
打开应用后,界面呈现缓慢流动的暗紫色星云背景。中央设有极简输入框,引导语为'刻录你的疑惑'。这里没有必填项提示或字数限制,用户可以写下关于职业、感情或成长的任何困惑。
当用户写下问题并点击'启程'按钮时,摄像头将悄然启动,引导进入下一环节——共鸣。
2. 共鸣:虚空中的命运拨动
这是产品的核心创新点。我们抛弃了传统的点击选牌交互,利用 Google MediaPipe 的计算机视觉能力,让用户用手在虚空中完成选牌。
授权摄像头后,界面提示'挥动手部移动,握拳 3 秒翻开命运'。所有摄像头画面均在本地处理,不会上传服务器。界面中央以 3D 透视方式排开大阿卡纳牌阵,MediaPipe 实时捕捉手部 21 个 3D 关键点。
用户只需向左或向右挥动手掌,牌阵便随水平位移同步滚动。当前选中的牌会高亮并带有光晕,两侧显示'LEFT'、'FIST'、'RIGHT'等仪式化提示。
3. 定契:握拳之誓锁定牌面
传统塔罗中,定牌是最神圣的环节。在本项目中,我们设计了'握拳三秒定契'的交互。
选好牌面后,界面持续提示'握拳 3 秒,翻开命运'。MediaPipe 实时识别握拳手势(通过指尖与手掌根部的相对位置判断)。识别逻辑在端侧完成:当多根手指的指尖相对手腕的距离小于指节相对手腕的距离时,视为握拳。一旦握拳状态连续保持约 3 秒,即触发定契,无撤销选项。
4. 揭示:命运的牌面缓缓掀开
定契完成后,选中牌从牌背缓缓翻转,暗金纹样被正面阿卡纳图取代。翻牌动效结合 3D 透视与背反隐藏技术,让过渡充满张力。牌面完全掀开后,光线稳定,开启下一幕对话。
5. 对谈:AI 导师的深度解读
牌面不是终点,而是对话起点。项目使用 DeepSeek API 打造了一位懂牌、懂用户的导师。
牌面翻开的同时,向 AI 发送结构化提示:初始困惑、抽中牌名及基础释义。DeepSeek 生成专属流式输出深度解读,不给出非黑即白的算命结果,而是结合符号寓意与具体处境梳理状态。
更重要的是支持完整的多轮上下文对话。用户可以随时追问,例如'这张牌给我的最大警示是什么?',AI 会记住历史对话,像资深塔罗师一样陪伴探索。回复采用 Markdown 渲染,阅读体验更清晰。
技术架构与实现细节
极致的体验离不开扎实的技术支撑。当前架构围绕'沉浸式体验'与'仪式闭环'搭建。
前端架构:React + TypeScript + Vite
- Vite:毫秒级冷启动与热更新,调试复杂翻牌动效与手势交互时可实时预览每一帧细节。构建阶段产出体积可控的静态资源。
- React:组件化架构让输入模块、手势识别、牌阵与对话模块清晰解耦。状态通过
useState/useRef/useCallback管理,可维护性高。 - TypeScript:在多模块对接场景下,类型安全能在开发阶段规避潜在问题,交互状态流转更清晰可控。
手势与摄像头:Google MediaPipe
手势交互完全基于 Google MediaPipe 实现,优势在于低延迟与隐私安全。
- @mediapipe/hands:浏览器端实时检测手部 21 个 3D 关键点,无需后端参与。初始化设置
maxNumHands: 1及置信度阈值,弱光下也能保持稳定识别。 - @mediapipe/camera_utils:负责从设备摄像头取帧并驱动 Hands 模型。视频流绑定到页面内隐藏的 元素,每一帧送入模型处理。


