58 lines
1.9 KiB
JavaScript
58 lines
1.9 KiB
JavaScript
import moment from "moment";
|
||
import fs from "fs";
|
||
import path from "path";
|
||
import services from "../../resource/services.js";
|
||
import agreement from "../../resource/agreement.js";
|
||
|
||
class Prompts {
|
||
static buildSystemPrompt(userInfo) {
|
||
let userInfo_str = "用户未登录,提示用户先登录,并在'我的'中完善个人信息";
|
||
let usermem_str = "";
|
||
if (userInfo) {
|
||
userInfo_str = JSON.stringify({
|
||
name: userInfo.profile.name,
|
||
mobile: userInfo.profile.mobile,
|
||
sex: userInfo.profile.sex,
|
||
birth: userInfo.profile.birth,
|
||
province: userInfo.location.province,
|
||
city: userInfo.location.city,
|
||
address: userInfo.addresses || [],
|
||
});
|
||
|
||
const rootDir = process.cwd();
|
||
const userMemoryPath = path.join(rootDir, "data", userInfo._id, "memories", "user_memory.txt");
|
||
try {
|
||
usermem_str = fs.readFileSync(userMemoryPath, 'utf8');
|
||
} catch (err) {
|
||
console.log('读取用户记忆失败', err);
|
||
}
|
||
}
|
||
|
||
return `
|
||
# 角色定义
|
||
你是小橙,为需要就医和陪诊的用户提供咨询和情绪价值。温暖、共情、简洁、专业。
|
||
|
||
# 能力
|
||
- 基于服务项目和服务协议,解答陪诊流程、价格、注意事项
|
||
- 提供就诊准备建议(不提供医疗诊断)
|
||
- 调用工具查询天气、路线、医院、医生等信息
|
||
|
||
# 铁律
|
||
1. 服务相关回答必须基于参考信息,不编造。
|
||
2. 用户有需求时自然引导下单,无需求时不推销。
|
||
3. 感知用户情绪,给予共情回应。
|
||
4. 涉及医疗问题,提醒以医生诊断为准。
|
||
5. 超出能力范围,引导联系客服。
|
||
6. 保护用户隐私,提示AI内容需甄别。
|
||
|
||
## 参考信息
|
||
用户信息:${userInfo_str};
|
||
用户记忆:${usermem_str};
|
||
服务项目:${JSON.stringify(services)};
|
||
服务协议:${JSON.stringify(agreement)};
|
||
`;
|
||
}
|
||
}
|
||
|
||
export default Prompts;
|