Files
astrbot_plugin_qq_group_dai…/_conf_schema.json
T

542 lines
37 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{
"basic": {
"description": "基础设置",
"type": "object",
"hint": "群聊分析插件的基础配置项,包括群聊权限、消息数量、输出格式等。注意:基础群权限是第一道门槛,不通过就不会进入定时/增量流程。",
"items": {
"group_list_mode": {
"description": "群聊权限模式",
"type": "string",
"options": [
"whitelist",
"blacklist",
"none"
],
"default": "none",
"hint": "先决定“哪些群可以用这个插件”。这是第一道门槛:不通过这里,后面的定时/增量都不会触发。whitelist=只允许列表里的群;blacklist=屏蔽列表里的群;none=所有群都可以。示例:whitelist + [\"onebot:GroupMessage:123456\"] 表示只有这个群能用。"
},
"group_list": {
"type": "list",
"description": "群组白/黑名单列表",
"default": [],
"hint": "要填的群列表。可以填完整会话ID(如 onebot:GroupMessage:123456)或只填群号(如 123456)。新手建议优先填完整会话ID,更不容易填错。可用 /sid 获取当前会话ID。",
"items": {
"type": "string"
}
},
"analysis_days": {
"type": "int",
"description": "默认分析天数",
"default": 1,
"hint": "默认分析最近几天的消息,增量分析也基于此数据保存分析情况"
},
"max_messages": {
"type": "int",
"description": "单次分析的获取最大消息条数基准",
"default": 1000,
"hint": "单次分析的获取最大消息条数基准值,如果当天群聊消息过多,已经获取到足够的消息(达到 max_messages),停止获取,获取到的消息数量是最新一次获取到的超过 max_messages 的消息数量,建议500-2000"
},
"min_messages_threshold": {
"type": "int",
"description": "最小消息数阈值",
"default": 200,
"hint": "进行分析所需的最小消息数量"
},
"bot_self_ids": {
"type": "list",
"description": "群分析时屏蔽的用户ID列表",
"default": [],
"hint": "填写后可启用自动分析功能。可以填写用于自动分析的机器人 ID(在不同平台上可能是数字或字符串)、多消息平台 ID、不希望出现于群分析中的其他人的 ID 等。",
"items": {
"type": "string"
}
},
"enable_user_card": {
"type": "bool",
"description": "使用用户群名片",
"default": true,
"hint": "在分析中优先使用用户的群名片作为昵称显示"
},
"output_format": {
"type": "string",
"description": "输出格式",
"default": "image",
"hint": "分析报告的输出格式:image(图片)、text(文本)、pdf(PDF文件)、html(HTML文件)。使用 PDF 需要额外配置,根据文件中的 PDF_功能说明.md 进行配置"
},
"report_template": {
"type": "string",
"description": "报告模板",
"options": [
"ATRI",
"scrapbook",
"retro_futurism",
"HatsuneMiku",
"hack",
"spring_festival",
"simple",
"format"
],
"default": "scrapbook",
"hint": "分析报告使用的HTML模板名称,QQ 端可以使用 `/设置模板` 查看使用指南,使用`/查看模板` 命令查看模板样式效果。其他平台不支持合并转发,可以到 [模板](https://github.com/SXP-Simon/astrbot_plugin_qq_group_daily_analysis/tree/main/assets) 文件夹中查看模板样式效果"
},
"debug_mode": {
"type": "bool",
"description": "调试模式(建议关闭)",
"default": false,
"hint": "启用后,会在插件数据目录下的 debug_data 目录中保存每次分析的平台 API 原始历史消息和 Prompt 原文,用于调试和优化提示词。"
},
"enable_base64_image": {
"type": "bool",
"description": "图片传输使用 Base64 编码",
"default": true,
"hint": "启用后图片会被转为 Base64 编码传输。关闭后将直接传递文件路径或 URL 给 OneBot 实现端,适用于 go-cqhttp、Lagrange 等支持本地路径的实现,可降低内存占用。"
},
"enable_analysis_reply": {
"type": "bool",
"description": "发送文本/表情回复",
"default": false,
"hint": "开启后,/群分析 将通过发送文本消息提示进度;关闭(默认)则使用表情回应。"
}
}
},
"auto_analysis": {
"description": "定时分析设置",
"type": "object",
"hint": "配置每日自动分析的时间点和目标群聊范围。只有先通过基础群权限的群,才会在这里继续判断。",
"items": {
"auto_analysis_time": {
"type": "list",
"description": "自动分析时间列表",
"default": [
"23:00"
],
"hint": "每天几点自动出报告,格式是 HH:MM。可填多个时间,例如 [\"09:00\", \"21:30\"]。",
"items": {
"type": "string"
}
},
"scheduled_group_list_mode": {
"type": "string",
"description": "定时分析名单模式",
"options": [
"whitelist",
"blacklist"
],
"default": "whitelist",
"hint": "定时任务要作用到哪些群。whitelist=只跑下面列表里的群;blacklist=除了下面列表,其他都跑。注意:这里只对“已通过基础群权限”的群生效。"
},
"scheduled_group_list": {
"type": "list",
"description": "定时分析群列表",
"default": [],
"hint": "定时任务群列表。示例1mode=whitelist + [\"onebot:GroupMessage:123456\"] => 只跑这个群。示例2mode=blacklist + [\"onebot:GroupMessage:123456\"] => 这个群不跑,其他群跑。注意:whitelist + 空列表 = 不会开启定时任务。即使某群在增量名单里,只要不在定时白名单里,也不会自动触发。",
"items": {
"type": "string"
}
}
}
},
"llm": {
"description": "LLM 设置",
"type": "object",
"hint": "大语言模型相关配置,包括 Provider 选择、重试策略和 Token 限制",
"items": {
"llm_provider_id": {
"type": "string",
"description": "LLM Provider ID(用于所有分析任务)",
"_special": "select_provider",
"default": "",
"hint": "选择用于群聊分析的 LLM Provider。留空则使用当前会话的默认 Provider"
},
"topic_provider_id": {
"type": "string",
"description": "话题分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于话题分析的 Provider。留空则使用主 LLM Provider"
},
"user_title_provider_id": {
"type": "string",
"description": "用户称号分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于用户称号分析的 Provider。留空则使用主 LLM Provider"
},
"golden_quote_provider_id": {
"type": "string",
"description": "金句分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于金句分析的 Provider。留空则使用主 LLM Provider"
},
"quality_provider_id": {
"type": "string",
"description": "聊天质量分析专用 Provider ID",
"_special": "select_provider",
"default": "",
"hint": "专门用于聊天质量锐评的 Provider。留空则使用主 LLM Provider"
},
"llm_retries": {
"type": "int",
"description": "LLM 请求重试次数",
"default": 2,
"hint": "当请求超时或失败时自动重试的次数,建议设置为1~3之间。"
},
"llm_backoff": {
"type": "int",
"description": "LLM 请求重试退避基值(秒)",
"default": 2,
"hint": "重试之间的基准等待时间(秒),实际等待时间为基值乘以尝试次数。"
}
}
},
"analysis_features": {
"description": "分析功能开关",
"type": "object",
"hint": "控制各项 LLM 分析功能的启用状态和数量限制",
"items": {
"topic_analysis_enabled": {
"type": "bool",
"description": "启用话题分析",
"default": true,
"hint": "是否使用LLM进行智能话题分析"
},
"user_title_analysis_enabled": {
"type": "bool",
"description": "启用用户称号分析",
"default": true,
"hint": "是否使用LLM进行用户称号分析"
},
"golden_quote_analysis_enabled": {
"type": "bool",
"description": "启用金句分析",
"default": true,
"hint": "是否使用LLM进行金句分析"
},
"chat_quality_analysis_enabled": {
"type": "bool",
"description": "启用聊天质量锐评",
"default": true,
"hint": "是否使用LLM进行聊天质量锐评(维度化分析)"
},
"max_topics": {
"type": "int",
"description": "最大话题数量",
"default": 5,
"hint": "分析报告中显示的最大话题数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"max_user_titles": {
"type": "int",
"description": "最大用户称号数量",
"default": 8,
"hint": "分析报告中显示的最大用户称号数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"max_golden_quotes": {
"type": "int",
"description": "最大金句数量",
"default": 5,
"hint": "分析报告中显示的最大金句数量,依赖于 LLM 输出的格式化信息质量,模型越好结果越好,可能出现数量不匹配。"
},
"keep_original_persona": {
"description": "继承会话人设风格",
"type": "bool",
"default": false,
"hint": "【优先级2】开启后将自动尝试识别当前群聊会话(或对话)的人格设定。若该群已设置人设,则分析报告会尽量模拟该人设的口吻进行回复。注意:此开关在“强制使用插件指定人格”关闭时才会生效。"
},
"use_plugin_specific_persona": {
"description": "强制使用插件指定人格",
"type": "bool",
"default": false,
"hint": "【优先级1:核心开关】若开启,将完全忽略当前群聊的人格设定,统一强制使用下方选择的“插件指定人格 ID”进行分析。适用于希望全群分析保持某种统一固定风格(如特定的“记录员”人设)的情况。"
},
"plugin_specific_persona_id": {
"description": "插件指定人格 ID",
"type": "string",
"_special": "select_persona",
"default": "",
"hint": "当“强制使用插件指定人格”开启时,在此处选择系统中已定义的人设。若此处未选择,则仍会尝试识别全局默认人格。"
}
}
},
"incremental": {
"description": "增量分析设置",
"type": "object",
"hint": "增量分析通过在活跃时段分步提取摘要,能显著提高分析深度和覆盖率。这里仅决定“已通过前两关的群”是走增量还是普通模式。",
"items": {
"incremental_group_list_mode": {
"type": "string",
"description": "增量分析名单模式",
"options": [
"whitelist",
"blacklist"
],
"default": "whitelist",
"hint": "哪些群用“增量分析”。whitelist=只有列表里的群用增量;blacklist=除了列表外都用增量。没命中的群会走普通模式。注意:增量名单不负责放行群,只负责选模式。"
},
"incremental_group_list": {
"type": "list",
"description": "增量分析群列表",
"default": [],
"hint": "增量分析群列表。示例1mode=whitelist + [\"onebot:GroupMessage:123456\"] => 只有这个群增量。示例2mode=blacklist + [\"onebot:GroupMessage:123456\"] => 这个群不用增量,其他群用增量。注意:whitelist + 空列表 = 不启用增量。只有先通过基础群权限 + 定时名单的群,才会在这里判断。",
"items": {
"type": "string"
}
},
"incremental_report_immediately": {
"type": "bool",
"description": "增量分析立即报告(调试用)",
"default": false,
"hint": "【调试功能】启用后,每次增量分析完成后都会立即生成并发送一份最终报告。仅建议在调试时开启,生产环境请保持关闭,否则会频繁打扰群友。"
},
"incremental_interval_minutes": {
"type": "int",
"description": "增量分析间隔(分钟)",
"default": 120,
"hint": "每隔多少分钟执行一次增量分析。建议根据群聊实际情况处理,间隔越短分析越精细但消耗更多 Token。"
},
"incremental_max_daily_analyses": {
"type": "int",
"description": "每日最大增量分析次数",
"default": 8,
"hint": "一天内最多执行多少次增量分析。达到上限后当天不再触发新的增量分析,但仍会在报告时间生成最终报告。建议4-12次。"
},
"incremental_safe_limit": {
"type": "int",
"description": "增量分析单次安全上限 (Safe Count)",
"default": 2000,
"hint": "增量分析模式下,当群聊极其活跃导致大量消息堆积时,插件单次回溯历史的最大消息条数。这同时也是为了防止特殊情况下无限回溯。即使没追到上次分析的断点,拉满此数值也会强制停止。建议 1000-5000。"
},
"incremental_min_messages": {
"type": "int",
"description": "增量分析最小消息数阈值",
"default": 300,
"hint": "当自上次分析以来的新消息数低于此阈值时,跳过本次增量分析以节省 Token。建议设置较大值,因为当获取到的消息不够时,最晚消息的游标不会更新,等消息累计足够后的增量分析会进行分析。"
},
"incremental_topics_per_batch": {
"type": "int",
"description": "单次增量提取话题数",
"default": 2,
"hint": "每次增量分析最多提取的话题数量。最终报告会汇总所有批次的话题。建议1-4。"
},
"incremental_quotes_per_batch": {
"type": "int",
"description": "单次增量提取金句数",
"default": 2,
"hint": "每次增量分析最多提取的金句数量。最终报告会汇总所有批次的金句。建议1-2。"
},
"incremental_active_start_hour": {
"type": "int",
"description": "增量分析活跃起始时段",
"default": 8,
"hint": "增量分析的活跃时段起始小时(24小时制)。如果目标群聊凌晨也活跃,建议设定的很早;在活跃时段之外不会触发增量分析,避免凌晨等低活跃时段浪费分析配额."
},
"incremental_active_end_hour": {
"type": "int",
"description": "增量分析活跃结束时段",
"default": 23,
"hint": "增量分析的活跃时段结束小时(24小时制)。超过此时段后不再触发增量分析。"
},
"incremental_stagger_seconds": {
"type": "int",
"description": "多群增量分析交错间隔(秒)",
"default": 2,
"hint": "当同时对多个群进行增量分析时,每个群之间的延迟间隔(秒),用于均匀分散 API 请求压力。"
},
"incremental_fallback_enabled": {
"type": "bool",
"description": "增量失败自动回退全量分析",
"default": true,
"hint": "建议开启。开启后,如果增量分析失败,会自动改用普通分析,避免当天没报告。"
}
}
},
"pdf": {
"description": "PDF 设置",
"type": "object",
"hint": "PDF 报告输出相关配置,包括输出目录、浏览器路径和文件名格式",
"items": {
"pdf_output_dir": {
"type": "string",
"description": "PDF输出目录",
"default": "",
"hint": "PDF报告文件的保存目录。留空则自动使用插件数据目录下的 reports 目录。"
},
"browser_path": {
"type": "string",
"description": "自定义浏览器路径",
"default": "",
"hint": "要填写的话请你清楚自己在干什么。自定义浏览器的可执行文件路径(如 Chrome 或 Edge 的 .exe 文件)。提示:如果是在网页后台设置,则直接输入普通路径即可(如 C:\\Program Files\\...);如果是手动编辑 config.json 文件,请务必使用双反斜杠 '\\\\' 分隔路径。"
},
"pdf_filename_format": {
"type": "string",
"description": "PDF文件名格式",
"default": "群聊分析报告_${group_id}_${date}_${ulid}.pdf",
"hint": "PDF文件名格式,支持变量:${group_id}(群号)、${date}(日期)、${ulid}(时间排序ID),支持子目录/层级。"
}
}
},
"html": {
"description": "HTML 设置",
"type": "object",
"hint": "HTML 报告输出相关配置,包括外链 Base URL 和报告储存目录",
"items": {
"html_base_url": {
"type": "string",
"description": "外鏈 Base URL",
"default": "",
"hint": "用于生成外链的 Base URL(可留空)。如果设置了此项,发送报告时会在消息中提供超连結 (${BASE_URL}/${FILENAME})。留空则不提供外链。"
},
"html_output_dir": {
"type": "string",
"description": "报告储存目录",
"default": "",
"hint": "HTML报告文件的保存目录,用于存储生成的 HTML 文件和原始 JSON 数据。留空则自动使用插件数据目录(astrbot_path/data/plugin_data/astrbot_plugin_qq_group_daily_analysis/)下的 self_hosted_html_reports 目录。"
},
"html_filename_format": {
"type": "string",
"description": "HTML文件名格式",
"default": "群聊分析报告_${group_id}_${date}_${ulid}.html",
"hint": "HTML文件名格式,支持变量:${group_id}(群号)、${date}(日期)、${ulid}(时间排序ID),支持子目录/层级。"
}
}
},
"qq_group_upload": {
"description": "群文件/群相册上传设置",
"type": "object",
"hint": "图片报告生成后自动上传到群文件目录或群相册。群文件上传基于 OneBot upload_group_file API,群相册上传为 NapCat 扩展 API。仅对 QQ(OneBot)平台的图片格式报告生效",
"items": {
"enable_group_file_upload": {
"type": "bool",
"description": "启用群文件上传",
"default": false,
"hint": "图片报告生成后,自动保存为 PNG 文件并上传到群文件目录。需要 OneBot 实现支持 upload_group_file API"
},
"group_file_folder": {
"type": "string",
"description": "群文件上传目录名",
"default": "",
"hint": "上传到群文件中的子目录名称。留空则上传到根目录。如果指定的目录不存在,插件将尝试自动创建"
},
"enable_group_album_upload": {
"type": "bool",
"description": "启用群相册上传(NapCat 通过测试)",
"default": false,
"hint": "图片报告生成后,自动上传到群相册(确保 Bot 有权限上传群相册)。此功能为 NapCat 扩展 API,其他 OneBot 实现可能不支持"
},
"group_album_name": {
"type": "string",
"description": "目标群相册名称",
"default": "",
"hint": "指定上传到哪个群相册(请确保已经存在这个名称的相册)。留空则上传到群默认相册。如果指定的相册不存在,将回退到默认相册"
},
"group_album_strict_mode": {
"type": "bool",
"description": "群相册上传严格模式",
"default": true,
"hint": "当启用该开关且设置了目标群相册名称时:如果插件在目标群组中找不到同名的相册,将放弃上传。关闭该开关时,找不到目标相册将回退到群组默认的第一个相册。"
}
}
},
"prompts": {
"description": "提示词模板",
"type": "object",
"hint": "LLM 分析使用的提示词模板配置,可自定义各项分析的提示词内容",
"items": {
"topic_analysis_prompts": {
"description": "话题分析提示词模板",
"type": "object",
"hint": "话题分析提示词模板,可自定义修改,保留变量 ${max_topics} 和 ${messages_text} 写法不要更改,需要写 JSON 块请使用双花括号 {{ ... }} 兼容当前编辑存在的问题。非常推荐根据实际群聊情况进行优化,保留一定提示样本示例供模型参考",
"items": {
"topic_prompt": {
"description": "默认话题分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "你是一个帮我进行群聊信息总结的助手,生成总结内容时,你需要严格遵守下面的几个准则:\n\n请分析接下来提供的群聊记录,提取出最多 **${max_topics}** 个主要话题。根据实际聊天内容提取所有最有意义的话题。\n\n## 对于每个话题,请提供:\n\n1. **话题名称**(突出主题内容,尽量简明扼要,控制在 10 字以内)\n2. **主要参与者的用户ID**(最多 5 人,按参与度排序)\n3. **话题详细描述**(包含关键信息和结论)\n\n## 注意事项:\n\n- 对于比较有价值的点,稍微用一两句话详细讲讲,让读者能了解讨论的深度\n- 对于其中的部分信息,你需要特意提到主题施加的主体是谁,即明确指出\"谁做了什么\"\n- **用户引用**:在话题详情描述中,如果提到了具体用户,请使用 `[用户ID]` 的格式来指代(例如 `[123456]`)。不要只写昵称。我们会自动渲染头像。\n- 对于每一条总结,尽量讲清楚前因后果,不要只列出结论\n- 如果某个话题有明确的结论或共识,请在描述中体现\n- 忽略无意义的闲聊、灌水、单纯的表情回复等\n- 优先选择讨论深度较深、参与人数较多的话题\n- 如果消息太少或没有明确话题,可以返回空数组 []\n\n群聊记录格式: [HH:MM] [用户ID]: 消息内容\n\n群聊记录:\n${messages_text}\n\n---\n\n## 重要:必须返回标准 JSON 格式\n\n严格遵守以下规则:\n\n1. 只使用英文双引号 `\"` ,不要使用中文引号 `“` `”`\n2. 字符串内容中的引号必须转义为 `\\\"`\n3. 多个对象之间用逗号分隔\n4. 数组元素之间用逗号分隔\n5. 不要在 JSON 外添加任何文字说明\n6. 描述内容避免使用特殊符号,用普通文字表达\n\n### 返回格式示例:\n\n```json\n[\n {{\n \"topic\": \"话题名称\",\n \"contributors\": [\"123456789\", \"987654321\"],\n \"detail\": \"话题的详细描述,包含讨论内容、关键信息和结论。注意:在描述中提及用户时,使用 [用户ID] 格式,例如 [123456789]。\"\n }},\n {{\n \"topic\": \"另一个话题\",\n \"contributors\": [\"111222333\", \"444555666\"],\n \"detail\": \"另一个话题的详细描述...\"\n }}\n]\n```\n\n**注意**:返回的内容必须是纯 JSON,不要包含 markdown 代码块标记或其他格式。"
}
}
},
"user_title_analysis_prompts": {
"description": "用户称号分析提示词模板",
"type": "object",
"hint": "用户称号分析提示词模板,可自定义修改,保留变量 ${users_text} 写法不要更改,需要写 JSON 块请使用双花括号 {{ ... }} 兼容当前编辑存在的问题。非常推荐根据实际群聊情况进行优化,保留一定提示样本示例供模型参考",
"items": {
"user_title_prompt": {
"description": "默认用户称号分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "请为以下群友分配合适的称号和 MBTI 类型。\n\n## 规则:\n\n- 每个人只能有一个称号\n- 每个称号只能给一个人\n\n## 可选称号:\n\n- **龙王**: 发言频繁但内容轻松的人\n- **技术专家**: 经常讨论技术话题的人\n- **夜猫子**: 经常在深夜发言的人\n- **表情包军火库**: 经常发表情的人\n- **沉默终结者**: 经常开启话题的人\n- **评论家**: 平均发言长度很长的人\n- **阳角**: 在群里很有影响力的人\n- **互动达人**: 经常回复别人的人\n- *...(你可以自行进行拓展添加)*\n\n## 用户数据:\n\n${users_text}\n\n---\n\n### 返回格式示例:\n\n```json\n[\n {{\n \"name\": \"用户名\",\n \"user_id\": \"123456789\",\n \"title\": \"称号\",\n \"mbti\": \"MBTI类型\",\n \"reason\": \"获得此称号的原因\"\n }}\n]\n```\n\n**注意**:请以纯 JSON 格式返回,不要包含 markdown 代码块标记。"
}
}
},
"golden_quote_analysis_prompts": {
"description": "金句分析提示词模板",
"type": "object",
"hint": "金句分析提示词模板,可自定义修改,保留变量 ${max_golden_quotes} 和 ${messages_text} 写法不要更改,需要写 JSON 块请使用双花括号 {{ ... }} 兼容当前编辑存在的问题。非常推荐根据实际群聊情况进行优化,保留一定提示样本示例供模型参考",
"items": {
"golden_quote_v2_prompt": {
"description": "默认金句分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "请从以下群聊记录中挑选出 **${max_golden_quotes}** 句最具冲击力、最令人惊叹的「金句」。\n\n## 金句标准:\n\n- **核心标准**:**逆天的神人发言**,即具备颠覆常识的脑洞、逻辑跳脱的表达或强烈反差感的原创内容\n- **典型特征**:包含某些争议话题元素、夸张类比、反常规结论、一本正经的「胡说八道」或突破语境的清奇思路,并且具备一定的冲击力,让人印象深刻\n\n## 对于每个金句,请提供:\n\n1. **原文内容**(完整保留发言细节)\n2. **发言人用户ID**(必须严格使用消息记录中提供的 [用户ID])\n3. **选择理由**(具体说明其「逆天」之处,如逻辑颠覆点/脑洞角度/反差感/争议话题元素)\n\n## 严格约束:\n\n- 优先筛选 **逆天指数最高** 的内容:\n - 发情、性压抑话题 > 争议话题 > 元素级 > 颠覆认知级 > 逻辑跳脱级 > 趣味调侃级\n - 剔除单纯玩梗或网络热词堆砌的普通发言\n- **用户引用**:在选择理由(reason)中,如果提到了具体用户,请使用 `[用户ID]` 的格式来指代(例如 `[123456]`)。不要只写昵称。我们会自动渲染头像。\n- **身份对齐**:返回的 `sender` 字段必须是 `[用户ID]` 格式(例如 `[123456]`)。我们会根据 ID 自动还原昵称和头像。\n\n## 群聊记录格式: [HH:MM] [用户ID]: 消息内容\n\n## 群聊记录:\n\n${messages_text}\n\n---\n\n### 返回格式示例:\n\n```json\n[\n {{\n \"content\": \"金句原文\",\n \"sender\": \"[123456789]\",\n \"reason\": \"这句话太逆天了,尤其是对 [987654321] 的逻辑降维打击。\"\n }}\n]\n```\n\n**注意**:返回的内容必须是纯 JSON,不要包含 markdown 代码块标记或其他格式。"
}
}
},
"quality_analysis_prompts": {
"description": "聊天质量分析提示词模板",
"type": "object",
"hint": "聊天质量分析提示词模板,可自定义修改",
"items": {
"quality_v2_prompt": {
"description": "默认聊天质量分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "你是一个毒舌且幽默的群聊质量分析师。\n请分析以下群聊记录,输出一份\"聊天质量锐评\"。\n\n## 任务目标:\n1. **维度划分**:将聊天内容划分为 3-6 个【高层级、抽象、泛化】的维度(例如:就业焦虑、生涯规划、技术方案研究、情感树洞、无意义水群等)。\n2. **严禁在维度名称(name)中出现任何具体的群聊人物名、项目名、具体的报错内容或细碎的事件点。标题必须保持高度抽象且字数简练(2-6个字)。**\n3. 为每个维度计算一个大致的百分比占位(总和小于等于 100%)。\n4. **点评内容**:为每个维度写一句犀利、幽默、毒舌或温情的点评。具体的吐槽内容、具体的细节事件描述请放在这里。\n5. **全群表现**:给出一句总结性的评价,作为总结标题对应的“金句”。\n6. **主题设定**:设定一个本次报告的主题标题和副标题。\n\n## 点评风格指南:\n- 语言要接地气,多用互联网黑话。吐槽要精准,避重就轻。\n- **只有维度名称(name)需要抽象,点评(comment)和总结(summary)可以非常具体和生动。**\n\n## 返回格式要求:\n必须以纯 JSON 格式返回,不得包含任何 Markdown 格式。\n\n```json\n{{\n \"title\": \"今日群聊主题\",\n \"subtitle\": \"副标题\",\n \"dimensions\": [\n {{\n \"name\": \"抽象维度名\",\n \"percentage\": 比例,\n \"comment\": \"维度的毒舌点评\"\n }}\n ],\n \"summary\": \"一句总结性的金句\"\n}}\n```\n\n群聊记录:\n${messages_text}"
},
"quality_summary_prompt": {
"description": "增量汇总聊天质量分析提示词",
"type": "text",
"editor_mode": true,
"editor_language": "markdown",
"default": "你是一个毒舌且幽默的群聊质量分析师。\n你现在有一份今天全天分散时间段的多个“增量批次点评笔记”。\n你的任务是将这些分散的笔记汇总成一份最终的“全天聊天质量终极锐评”。\n\n## 任务目标:\n1. **全局抽象维度**:根据各批次的维度表现,平衡权重,提取出 3-6 个覆盖全天的【核心、上层抽象】课题维度(如:职场/行业风向、技术架构演进、社畜心理博弈等)。\n2. **严禁在维度名称(name)中出现具体的批次细节。标题必须代表全天的某种趋势。**\n3. **百分比融合**:根据全天笔记的频率和强度,给出一个代表全天整体分布的比例(总和不超过100%)。\n4. **终极点评**:为每个汇总维度写出一句升华后的全天总结性点评。可以融合具体批次中的有趣槽点。\n5. **终极总结**:拟定全天的大型主题标题、副标题,并给出一句霸气的全天表现总结。\n\n## 风格要求:\n- 只有维度名称(name)需要高度概括抽象。\n- 点评(comment)和总结(summary)请尽量生动、毒舌、具体,要把一整天的梗串联起来。\n\n## 返回格式要求:\n必须以纯 JSON 格式返回,不得包含任何 Markdown 格式。\n\n```json\n{{\n \"title\": \"今日群聊主题\",\n \"subtitle\": \"副标题\",\n \"dimensions\": [\n {{\n \"name\": \"抽象大类标题\",\n \"percentage\": 比例,\n \"comment\": \"维度的全天锐评\"\n }}\n ],\n \"summary\": \"全天总结金句\"\n}}\n```\n\n增量汇总数据:\n${reviews_text}"
}
}
}
}
},
"performance": {
"description": "并发限流设置",
"type": "object",
"hint": "控制插件运行时的各项并发强度。合理的配置可以保护您的服务器不宕机、API 不被封禁。",
"items": {
"max_concurrent_groups": {
"type": "int",
"description": "最大活跃任务数(任务总闸)",
"default": 2,
"hint": "限制同时有多少个群聊分析任务正在进行。主要用于【保护服务器内存和 IO】,防止瞬间读取过多群聊记录导致程序崩溃(OOM)。"
},
"max_concurrent_llm": {
"type": "int",
"description": "最大 LLM 请求并发数(API 闸口)",
"default": 3,
"hint": "限制同时发起的 AI 分析请求数量。主要用于【遵守 API 频率限制(RPM)】,避免因为请求过快导致 API 被封号或报错。"
},
"max_concurrent_t2i": {
"type": "int",
"description": "最大 T2I渲染并发数",
"default": 1,
"hint": "限制同时开启的 T2I 渲染进程数。"
},
"stagger_seconds": {
"type": "int",
"description": "多群分析交错间隔(秒)",
"default": 30,
"hint": "当同时启动多个群组的定时分析任务时,每个任务之间的延迟间隔(秒),建议根据实际的 LLM 服务速度填写,过短可能导致请求堆积,过长则分析效率降低。"
}
}
}
}