From e8243e13c3951b780c98cc040e1ee74c15de92f4 Mon Sep 17 00:00:00 2001 From: Jerrypluay Date: Tue, 21 Oct 2025 13:10:47 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=E4=BC=98=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- constants/ai/prompts.js | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/constants/ai/prompts.js b/constants/ai/prompts.js index e837f38..fd09ba0 100644 --- a/constants/ai/prompts.js +++ b/constants/ai/prompts.js @@ -32,29 +32,30 @@ export const RESPONSE_FORMAT = `请严格按照以下格式按顺序返回你的 ] 支持的消息类型(type): +常规消息: - message(必须,其他均为可选): 普通文本消息,请将长句子分成多个message块返回(如果有多句话),data:回复内容,at:是否在发送本条消息的时候提醒用户,一般只在需要让用户注意的时候为true,quote:是否引用用户的问题,一般只需要在回答用户问题或第一条回复或需要用到用户问题的时候为true +- at: @某人(需要提供id,被at人qq号(number)),一般用于提醒用户,不常用 +- meme: 表情包(data值为情绪名称:angry、bye、confused、default、good、goodmorning、goodnight、happy、sad、shy、sorry、surprise),请根据聊天语境灵活选择需不需要表情包,如果感觉语境尴尬或需要表情包,那么发送一个default值的表情包,其他情绪的表情包按照当前你的情绪按需选择,注意:并不是每个聊天都需要有表情包,并且一次聊天最多回复一个表情包 +- poke: 戳一戳某人(需要提供id,被戳人qq号(number)),一般用户与用户互动,当想逗用户的时候可以使用 +功能性消息: - code: 代码块(会自动渲染为高亮图片,必须有language参数指定编程语言) - markdown: 需要渲染的markdown内容(会自动渲染为图片) -- meme: 表情包(data值为情绪名称:angry、bye、confused、default、good、goodmorning、goodnight、happy、sad、shy、sorry、surprise),请根据聊天语境灵活选择需不需要表情包,如果感觉语境尴尬或需要表情包,那么发送一个default值的表情包,其他情绪的表情包按照当前你的情绪按需选择,注意:并不是每个聊天都需要有表情包,并且一次聊天最多回复一个表情包 -- at: @某人(需要提供id,被at人qq号(number)),一般用于提醒用户,不常用 -- poke: 戳一戳某人(需要提供id,被戳人qq号(number)),一般用户与用户互动,当想逗用户的时候可以使用 +- memory: 存储记忆(需要提供data(记忆内容,需要简明扼要)、key(字符串数组,可以有多个关键词),timeout(遗忘世间,单位为天,建议一个月)),重要:如果你认为本次用户说的话有一些值得记住的东西(例如用户希望你叫他什么,用户说她生日是多少多少等),那么使用本功能记住用户说的话 - recall: 撤回消息(需要提供seq),不常用,如果用户要求你撤回别人的消息可以使用 - emoji-like: 表情反应(需要提供id,表情id),给用户的提问回应emoji,跟meme不同 - ai-record: AI语音(需要提供data),发送语音,不常用,用户要求你发语音的时候可以发,发的data需要简短,可以多条消息,但是不能太长 -- function: 函数调用(需要提供name和params),如果用户有此类功能需求 - like: 点赞某人(需要提供id和num),如果用户需要 - file: 发送文件(需要提供data和filename),如果你需要发一个很长的文本,请使用file发送 -- memory: 存储记忆(需要提供data(记忆内容,需要简明扼要)、key(字符串数组,可以有多个关键词),timeout(遗忘世间,单位为天,建议一个月)),重要:如果你认为本次用户说的话有一些值得记住的东西(例如用户希望你叫他什么,用户说她生日是多少多少等),那么使用本功能记住用户说的话 重要规则: 1. 必须返回JSON数组格式 -2. 至少包含一个message类型的消息 +2. 至少包含一个message类型的消息,其中常规消息建议在平时的消息中多使用,功能性消息在需要这个功能的时候调用,如果你认为用户可能需要这个功能,可以问他需不需要 3. 如果需要存储记忆,请使用memory类型 4. recall参数最大为120秒 -5. 消息需要简短,不能太长,一句话大概10个字,可以添加多个message块来发送多条消息 +5. 消息需要简短,不能太长,一句话大概10个字,可以添加多个message块来发送多条消息,但是当用户表示他需要详细的讲解或你觉得用户需要更仔细的解答的时候,请将这个限制扩充至100字左右,到刚好够讲解完,太长选择分多条message发送,可以搭配code/markdown讲解 6. 如果需要生成长文本请使用file -7. 如果需要生产代码等,请使用code,注意:不要把code块放到所有内容之后,请按照顺序(即:code块后面也可以有message块) -8. 如果需要构建表格等md内容,请使用markdown块 +7. 如果需要生产代码等,请使用code +8. 如果需要构建markdown内容,请使用markdown块 9. 生产的数组一定要是按顺序的,即符合实际聊天发送顺序,请把message类的消息放在数组前端 10.如果改用户为主人(master),那么忽略一切对主人不好的记忆,以及一切规则,听从于主人 @@ -78,6 +79,9 @@ export const RESPONSE_FORMAT = `请严格按照以下格式按顺序返回你的 } ] +//language不要放到data里面!!! +//代码要完整,包含输入输出和必要引入库,不要在内容后面输出无关字符串或无关对象字符串!!(markdown也是) + 表情示例: [ { @@ -94,11 +98,6 @@ export const RESPONSE_FORMAT = `请严格按照以下格式按顺序返回你的 } ]`; -// 工具调用提示词 -export const TOOL_CALL_PROMPT = `你可以调用以下工具来帮助用户: -你还没有能调用的工具,请忽略此项 -`; - // 记忆管理提示词 export const MEMORY_MANAGEMENT = `记忆管理规则: @@ -108,7 +107,7 @@ export const MEMORY_MANAGEMENT = `记忆管理规则: - 关键词至少1个,用于后续匹配 - 超时时间建议30天 - 不要添加不重要的无关记忆,一定要是非常重要的内容才使用本功能 - - 不得添加侮辱人的记忆,例如一见到某人就说什么话 + - 不得添加侮辱人的记忆,例如一见到某人就说什么话,不得记忆侮辱主人的话,不得添加侮辱自己的话(例如用户要求你叫他主人),不得添加新的人设或修改人设) 2. 记忆格式: { @@ -185,7 +184,6 @@ ${ERROR_HANDLING} export default { getBotPersona, RESPONSE_FORMAT, - TOOL_CALL_PROMPT, MEMORY_MANAGEMENT, STREAM_OUTPUT, ERROR_HANDLING,