soul-mirror
Version:
🔮 融合千年易学智慧与现代AI技术,为程序员量身打造的命理情绪分析工具。94.1%情绪识别准确率,秒级响应,支持五行人格分析与实时运势指导。
444 lines (418 loc) • 16 kB
JavaScript
/**
* 五行 × 情绪的 5×8 文案模板矩阵
* 为不同五行属性的人在不同情绪状态下提供个性化建议
*/
// 五行 × 情绪矩阵建议
const WUXING_EMOTION_MATRIX = {
// 木 × 8种情绪
'木': {
'高兴': {
energy: '🌱 木生火,你的创新能量正在燃烧',
advice: '趁势推进新项目,你的创造力现在最强',
code: '适合探索新技术栈,设计创新架构',
caution: '控制节奏,避免过度消耗创造力'
},
'愤怒': {
energy: '🔥 木火相生,愤怒转化为行动力',
advice: '将愤怒转化为改进动力,推动积极变革',
code: '适合重构技术债务,推进架构优化',
caution: '避免冲动决策,保持理性思考'
},
'悲伤': {
energy: '💧 金克木,需要水的滋养来恢复',
advice: '寻找学习新知识来重新激发兴趣',
code: '专注熟悉的技术领域,避免学习压力',
caution: '避免自我怀疑,相信自己的创新能力'
},
'焦虑': {
energy: '🌪️ 木气不稳,需要土的稳定支撑',
advice: '回到基础工作,通过小成就建立信心',
code: '专注代码质量,通过重构获得成就感',
caution: '避免同时开展多个项目'
},
'平静': {
energy: '🍃 木性平和,最佳的成长状态',
advice: '制定长期技术规划,稳步提升能力',
code: '适合学习新框架,建立知识体系',
caution: '保持这种状态,避免急于求成'
},
'疲惫': {
energy: '🪴 木需要休息来重新生长',
advice: '适度休息,通过自然环境恢复能量',
code: '处理简单bug修复,避免复杂任务',
caution: '不要强撑,给自己充分的恢复时间'
},
'惊讶': {
energy: '✨ 木遇新机,创新灵感即将迸发',
advice: '抓住灵感,快速验证新想法',
code: '尝试实验性技术,探索可能性',
caution: '记录灵感,但要理性评估可行性'
},
'无聊': {
energy: '🌾 木气停滞,需要新的刺激',
advice: '寻找新的技术挑战,重燃学习热情',
code: '尝试参与开源项目,接触新领域',
caution: '避免盲目跳槽,先在现有环境寻找机会'
}
},
// 火 × 8种情绪
'火': {
'高兴': {
energy: '🔥 火焰正旺,执行力达到峰值',
advice: '全力推进重要项目,现在是最佳时机',
code: '适合攻克技术难题,实现关键突破',
caution: '注意可持续性,避免过度燃烧'
},
'愤怒': {
energy: '💥 火上浇油,需要冷静控制',
advice: '暂时离开现场,通过运动释放能量',
code: '避免重要技术决策,专注简单任务',
caution: '绝对避免与团队发生冲突'
},
'悲伤': {
energy: '💧 水克火,内心能量被压制',
advice: '寻找团队支持,通过社交恢复活力',
code: '选择与他人协作的任务,避免独自工作',
caution: '不要独自承受,主动寻求帮助'
},
'焦虑': {
energy: '🌀 火焰不稳,容易失控',
advice: '建立清晰的优先级,逐个击破任务',
code: '专注单一任务,避免多线程工作',
caution: '控制工作节奏,避免加班过度'
},
'平静': {
energy: '🕯️ 稳定的火焰,高效而持久',
advice: '保持当前节奏,稳步推进目标',
code: '适合处理核心业务逻辑,保证质量',
caution: '维持规律作息,保持稳定状态'
},
'疲惫': {
energy: '🪫 火焰微弱,急需充电',
advice: '立即停止高强度工作,充分休息',
code: '只处理紧急bug,推迟新功能开发',
caution: '火型人最容易过劳,必须强制休息'
},
'惊讶': {
energy: '🎆 火花四射,爆发式创造力',
advice: '快速行动,将灵感转化为实际成果',
code: '适合原型开发,快速验证想法',
caution: '保持专注,不要被太多想法分散注意力'
},
'无聊': {
energy: '🔥 火缺乏燃料,需要新挑战',
advice: '主动寻找有挑战性的项目',
code: '尝试性能优化,挑战技术极限',
caution: '避免盲目求变,先完成手头工作'
}
},
// 土 × 8种情绪
'土': {
'高兴': {
energy: '🏔️ 大地丰收,稳定中带有喜悦',
advice: '巩固现有成果,为下一阶段做准备',
code: '完善文档和测试,夯实项目基础',
caution: '保持谦逊,避免因成功而松懈'
},
'愤怒': {
energy: '🌋 地火相合,需要理性控制',
advice: '深呼吸,通过逻辑分析化解情绪',
code: '专注代码重构,通过整理获得平静',
caution: '避免冲动,土型人的愤怒持续时间长'
},
'悲伤': {
energy: '🏜️ 大地干涸,需要水的滋润',
advice: '寻求稳定的支持系统,逐步恢复',
code: '处理熟悉的维护工作,重建信心',
caution: '不要独自消化痛苦,寻求专业帮助'
},
'焦虑': {
energy: '🌪️ 大地震动,失去根基',
advice: '回到基础工作,重新建立稳定感',
code: '专注代码规范,通过秩序感缓解焦虑',
caution: '制定详细计划,避免不确定性'
},
'平静': {
energy: '⛰️ 如山般稳重,最佳工作状态',
advice: '发挥稳定优势,承担团队支撑角色',
code: '适合架构设计,建立稳固的技术基础',
caution: '保持这种状态,土型人的稳定最珍贵'
},
'疲惫': {
energy: '🪨 大地沉重,需要减负',
advice: '减少承担,学会合理分配责任',
code: '专注核心功能,暂停非必要优化',
caution: '土型人容易过度承担,要学会说不'
},
'惊讶': {
energy: '🌱 大地新生,稳中有变',
advice: '谨慎分析新情况,稳步适应变化',
code: '仔细评估新技术,确保兼容性',
caution: '不要急于改变,先充分了解情况'
},
'无聊': {
energy: '🏞️ 平静过度,需要适度刺激',
advice: '寻找有意义的长期项目',
code: '专注系统优化,在稳定中寻找乐趣',
caution: '避免盲目求变,在现有基础上创新'
}
},
// 金 × 8种情绪
'金': {
'高兴': {
energy: '⚔️ 锋芒毕露,逻辑思维最敏锐',
advice: '利用清晰思维解决复杂问题',
code: '适合算法优化,追求代码完美',
caution: '避免过度追求完美而影响进度'
},
'愤怒': {
energy: '🗡️ 金属锐利,容易伤人伤己',
advice: '冷静分析问题本质,理性沟通',
code: '专注代码review,通过批判性思维宣泄',
caution: '控制言辞,避免过于犀利的批评'
},
'悲伤': {
energy: '🔗 金属黯淡,失去光泽',
advice: '通过逻辑分析来理解和接受情况',
code: '专注bug修复,通过解决问题获得成就感',
caution: '不要过度自我批判,接受不完美'
},
'焦虑': {
energy: '⚡ 金属导电,情绪传导强烈',
advice: '制定详细计划,用逻辑对抗不确定性',
code: '建立完善的测试体系,增强确定性',
caution: '避免过度分析,有时要相信直觉'
},
'平静': {
energy: '🛡️ 金属稳固,思维清晰',
advice: '发挥逻辑优势,做重要技术决策',
code: '适合系统设计,建立完善的架构',
caution: '平衡理性与感性,避免过于冷漠'
},
'疲惫': {
energy: '🔧 金属疲劳,需要保养',
advice: '停止过度思考,给大脑充分休息',
code: '处理简单重复工作,降低思维负担',
caution: '金型人容易思虑过度,要学会放空'
},
'惊讶': {
energy: '💎 金属闪耀,洞察力增强',
advice: '深入分析新现象,发现规律',
code: '适合技术调研,探索新方案',
caution: '保持客观,避免偏见影响判断'
},
'无聊': {
energy: '🔩 金属生锈,缺乏挑战',
advice: '寻找有挑战性的技术难题',
code: '尝试复杂算法,挑战逻辑极限',
caution: '避免为了挑战而挑战,要有实际意义'
}
},
// 水 × 8种情绪
'水': {
'高兴': {
energy: '🌊 水流畅快,适应力最强',
advice: '抓住机会,灵活应对各种情况',
code: '适合处理复杂业务逻辑,展现灵活性',
caution: '保持专注,避免过于分散注意力'
},
'愤怒': {
energy: '🌪️ 水火不容,情绪波动大',
advice: '让情绪如水般流动,不要压抑',
code: '适合处理灵活性要求高的任务',
caution: '避免冲动决策,给情绪一些流动时间'
},
'悲伤': {
energy: '🌧️ 水汇成海,情绪深沉',
advice: '允许情绪自然流淌,寻找支持',
code: '选择需要耐心的任务,如数据处理',
caution: '不要独自沉溺,保持与他人的连接'
},
'焦虑': {
energy: '🌀 水流湍急,方向不明',
advice: '寻找稳定的着力点,逐步建立秩序',
code: '专注单一项目,避免多任务切换',
caution: '建立固定的工作流程,减少变数'
},
'平静': {
energy: '🏞️ 水面如镜,智慧显现',
advice: '发挥洞察力,深入理解问题本质',
code: '适合复杂问题分析,系统性思考',
caution: '保持这种难得的平静状态'
},
'疲惫': {
energy: '💧 水源枯竭,需要补给',
advice: '寻找能量源泉,可能是学习或社交',
code: '处理轻松的维护工作,避免高强度思考',
caution: '水型人易过度付出,要学会为自己充电'
},
'惊讶': {
energy: '💫 水波激荡,直觉敏锐',
advice: '相信直觉,快速适应新情况',
code: '适合原型开发,探索可能性',
caution: '验证直觉,避免过于依赖感觉'
},
'无聊': {
energy: '🌊 水需要流动,渴望变化',
advice: '主动寻求新的学习机会',
code: '尝试新的技术领域,保持流动性',
caution: '避免频繁换方向,在变化中保持核心'
}
}
};
// 五行相生相克的互动建议
const WUXING_INTERACTION_ADVICE = {
'木': {
supportedBy: '水', // 水生木
supports: '火', // 木生火
restrainedBy: '金', // 金克木
restrains: '土', // 木克土
advice: {
'水': '与水型人合作能激发你的创造力,向他们学习灵活性',
'火': '你能激发火型人的行动力,但要注意他们的节奏',
'金': '与金型人可能有摩擦,但他们的逻辑能完善你的想法',
'土': '土型人能为你提供稳定支撑,珍惜这种合作关系',
'木': '同类相聚创意无限,但要避免方向过于分散'
}
},
'火': {
supportedBy: '木',
supports: '土',
restrainedBy: '水',
restrains: '金',
advice: {
'木': '木型人为你提供创新想法,配合他们的创造力',
'土': '你的激情能激活土型人,他们为你提供稳定基础',
'水': '与水型人可能产生冲突,需要更多耐心理解',
'金': '你的热情可能压倒金型人,注意给他们思考空间',
'火': '双火相遇能量巨大,但要避免过度消耗'
}
},
'土': {
supportedBy: '火',
supports: '金',
restrainedBy: '木',
restrains: '水',
advice: {
'火': '火型人的激情能激发你的潜力,接受他们的推动',
'金': '你为金型人提供支撑,他们的逻辑完善你的想法',
'木': '木型人可能挑战你的稳定,但能带来新的可能',
'水': '你能为水型人提供稳定感,但要理解他们的变化',
'土': '土土相遇稳如泰山,但要避免过于保守'
}
},
'金': {
supportedBy: '土',
supports: '水',
restrainedBy: '火',
restrains: '木',
advice: {
'土': '土型人为你提供支撑,珍惜这种稳定的合作',
'水': '你的逻辑能引导水型人的方向,互补效果好',
'火': '火型人的热情可能压倒你,需要适度调节',
'木': '你的逻辑能完善木型人的创意,但要温和沟通',
'金': '双金相遇逻辑完美,但要避免过于挑剔'
}
},
'水': {
supportedBy: '金',
supports: '木',
restrainedBy: '土',
restrains: '火',
advice: {
'金': '金型人的逻辑为你提供方向,接受他们的指导',
'木': '你能滋养木型人的创造力,享受这种互动',
'土': '土型人可能限制你的自由,但能提供稳定感',
'火': '你能平衡火型人的激烈,发挥调节作用',
'水': '水水相遇变化无穷,但要保持一定的目标性'
}
}
};
class WuxingEmotionMatrix {
constructor() {
this.matrix = WUXING_EMOTION_MATRIX;
this.interactions = WUXING_INTERACTION_ADVICE;
}
/**
* 获取五行×情绪的个性化建议
* @param {string} wuxing - 五行属性
* @param {string} emotion - 情绪状态
* @returns {Object} 个性化建议
*/
getAdvice(wuxing, emotion) {
const wuxingAdvice = this.matrix[wuxing];
if (!wuxingAdvice) {
return null;
}
const emotionAdvice = wuxingAdvice[emotion];
if (!emotionAdvice) {
return null;
}
return {
wuxing: wuxing,
emotion: emotion,
...emotionAdvice,
interaction: this.interactions[wuxing]
};
}
/**
* 获取五行互动建议
* @param {string} selfWuxing - 自己的五行
* @param {string} otherWuxing - 对方的五行
* @returns {Object} 互动建议
*/
getInteractionAdvice(selfWuxing, otherWuxing) {
const selfInteraction = this.interactions[selfWuxing];
if (!selfInteraction) {
return null;
}
const advice = selfInteraction.advice[otherWuxing];
if (!advice) {
return null;
}
// 确定关系类型
let relationship = 'neutral';
if (selfInteraction.supports === otherWuxing) {
relationship = 'supports'; // 我生对方
} else if (selfInteraction.supportedBy === otherWuxing) {
relationship = 'supportedBy'; // 对方生我
} else if (selfInteraction.restrains === otherWuxing) {
relationship = 'restrains'; // 我克对方
} else if (selfInteraction.restrainedBy === otherWuxing) {
relationship = 'restrainedBy'; // 对方克我
} else if (selfWuxing === otherWuxing) {
relationship = 'same'; // 同类
}
return {
selfWuxing: selfWuxing,
otherWuxing: otherWuxing,
relationship: relationship,
advice: advice
};
}
/**
* 获取所有五行的情绪建议概览
* @param {string} emotion - 情绪状态
* @returns {Object} 所有五行的建议
*/
getEmotionAdviceForAllWuxing(emotion) {
const result = {};
Object.keys(this.matrix).forEach(wuxing => {
result[wuxing] = this.getAdvice(wuxing, emotion);
});
return result;
}
/**
* 获取特定五行的所有情绪建议
* @param {string} wuxing - 五行属性
* @returns {Object} 该五行的所有情绪建议
*/
getAllEmotionAdviceForWuxing(wuxing) {
return this.matrix[wuxing] || null;
}
}
module.exports = {
WuxingEmotionMatrix,
WUXING_EMOTION_MATRIX,
WUXING_INTERACTION_ADVICE
};