86 lines
4.8 KiB
TypeScript
86 lines
4.8 KiB
TypeScript
/**
|
||
* 测名 / 起名 / 改名:五行生克与属相适配 —— 后端约定与生成提示词
|
||
*
|
||
* 前端已在 Report JSON 根级支持(与测名详解 TestNameDetail 同字段名):
|
||
* - bazi_name_fit:八字喜用 vs 姓名五行,含补益/克泄简述
|
||
* - wuxing_bagua:姓名内部五行态势与生克互助
|
||
* - zodiac_sign:出生年生肖与名字用字的合冲刑害、适配结论
|
||
*
|
||
* 若起名/改名当前只返回扁平字段 wuxing_analysis / zodiac_analysis,建议后端合并为上述结构化模块或同时返回,便于全端一致展示。
|
||
*/
|
||
|
||
/** 建议后端在「个人」相关请求中补充的上下文(用于算八字、喜用、生肖年柱) */
|
||
export const RECOMMENDED_PERSONAL_REQUEST_FIELDS = {
|
||
/** 已有:surname, given_name, gender, birthday */
|
||
extra_suggested: {
|
||
/** 精确到时辰,格式与现有 birthday 一致即可,如 YYYY-MM-DD HH:mm:ss */
|
||
birth_time: "string (optional, 排盘用)",
|
||
/** 出生地或时区,用于真太阳时 / 节气(可选) */
|
||
birth_place: "string (optional)",
|
||
/** solar | lunar,若只传公历可省略 */
|
||
calendar_type: "'solar' | 'lunar' (optional)",
|
||
/** 原名(改名场景必填,起名可为空) */
|
||
original_name: "string (optional, 改名)",
|
||
},
|
||
} as const;
|
||
|
||
/** 建议后端在「公司/商号」相关请求中补充的上下文 */
|
||
export const RECOMMENDED_COMPANY_REQUEST_FIELDS = {
|
||
/** 已有:company_name, industry, address, target_audience, members */
|
||
extra_suggested: {
|
||
/** 核心成员生辰已可定生肖与八字;可明确每人角色便于报告人岗描述 */
|
||
member_roles: "Array<{ name: string; birthday: string; role?: string }> (optional)",
|
||
},
|
||
} as const;
|
||
|
||
/** 建议在方案详情 / 测名结果 JSON 根级返回的扩展模块(与 api/types.ts 中 TestNameDetail* 对齐) */
|
||
export const REPORT_JSON_ROOT_KEYS = {
|
||
bazi_name_fit: {
|
||
xiyongshen: "喜用神简述",
|
||
name_wuxing_profile: "姓名各字五行及组合简述",
|
||
complement_summary: "相对八字是补益还是偏枯、需注意的克泄",
|
||
fit_score: "0–100,与八字契合度(可选)",
|
||
details: "{ nodes: TextNode[] } 详文",
|
||
},
|
||
wuxing_bagua: {
|
||
wuxing_sketch: "姓名五行态势",
|
||
bagua_profile: "与卦象/宫位关联简述",
|
||
mutual_sketch: "相生 / 相克 / 制化要点(核心满足「生克」说明)",
|
||
summary: "一句话结论",
|
||
details: "{ nodes }",
|
||
},
|
||
zodiac_sign: {
|
||
animal: "生肖名,如 龙",
|
||
earthly_branch: "地支,如 辰",
|
||
trait_summary: "属相特性简述",
|
||
name_harmony: "与名之合冲刑害、是否相宜(核心满足「合不合」)",
|
||
details: "{ nodes }",
|
||
},
|
||
/** 单字五行细节:用于在“五行八卦”中展示每个字的阴阳五行与卦象 */
|
||
char_detail: {
|
||
items: "Array<{ char, element, yin_yang, yin_yang_element, bagua_trigram, bagua_trigram_symbol, hexagram_name, hexagram_code, note, details? }>",
|
||
details: "{ nodes } (optional)",
|
||
},
|
||
} as const;
|
||
|
||
/** 给后端或 LLM 的一次性中文提示:生成报告时必须覆盖的要点 */
|
||
export function buildBackendWuxingZodiacPromptZh(): string {
|
||
return [
|
||
"你是国学起名/测名报告生成服务。请在每一份「个人测名、公司测名、个人起名方案、个人改名方案、公司起名/改名方案」输出中,明确包含以下两块(可单独成章,也可写入既有模块,但内容必须可被前端独立字段映射):",
|
||
"",
|
||
"一、名字五行相生相克",
|
||
"1)给出名字各字五行(金木水火土),及组合后的强弱、偏枯。",
|
||
"2)用简短条文说明:哪些五行相生相助、哪些相克或需制化(可引用「金生水」「火克金」等,但不要长篇堆砌)。",
|
||
"3)若有八字/喜用神上下文:说明姓名五行是否补益喜用、或加重忌神;给出 0–100 契合度时可填 fit_score。",
|
||
"4)输出 JSON 时优先使用根字段 bazi_name_fit(八字与姓名五行)与 wuxing_bagua(五行态势与生克互助);与现有 wuxing_analysis 并存时,请以结构化字段为准。",
|
||
"",
|
||
"二、属相与名字合不合",
|
||
"1)根据用户(或核心成员)出生年确定生肖与地支。",
|
||
"2)说明名字用字、读音或意象与该生肖的宜忌(相合、相冲、相刑、相害等通俗表达即可)。",
|
||
"3)给出明确结论句:如「整体相宜」「需注意某字与属相存在一定冲克,建议……」。",
|
||
"4)输出 JSON 时使用根字段 zodiac_sign;若与 meaning_and_zodiac 并存,不要互相矛盾。",
|
||
"",
|
||
"三、请求侧参数:个人场景务必带齐 gender、birthday;若有时辰请一并解析。改名须带 original_name。公司场景 members 每人须有 birthday 以便定生肖与团队五行互动。",
|
||
].join("\n");
|
||
}
|