本次提交围绕成员画像插件进行了较大升级,核心目标是把原来偏单次、偏近期的成员交互摘要,升级为可随时间沉淀的分层画像能力。 主要功能变更如下: 1. 新增成员分层摘要存储表 t_member_digest,并提供对应的数据库操作层,支持按成员、按群、按摘要类型(daily/weekly/monthly)持久化周期性摘要结果。 2. 在 member_context 插件内新增 MemberDigestService,把画像生成拆分为日摘要、周摘要、月摘要三级处理流程,再由最终画像服务消费这些分层摘要,减少直接反复处理大量原始消息带来的成本和失真。 3. 新增提示词构建模块,分别为日级观察、周级归纳、月级归纳以及最终画像整理提供独立提示词,强调中性、克制、避免敏感推断,并将长期特征与近期状态明确分层。 4. 重写成员最终画像生成逻辑,优先基于日/周/月摘要融合出长期特征、习惯模式、长期回复偏好、近期状态等信息,再用 AI 对分层摘要做最终整理,避免仅依赖近 30 天消息得出偏短期结论。 5. 保留并增强长期画像融合逻辑,通过打分、衰减和重复证据累积,使长期特征随着时间逐步稳定,而不会被单次刷新完全覆盖。 6. 在消息存储层补充成员按时间增量获取、按活跃日期统计、按天取消息等查询方法,为后续分层摘要生成提供数据支撑。 7. 扩展 member_context 插件配置,增加日级摘要消息上限、日摘要最小消息数、单次回填的日摘要数量上限、最终画像使用的日/周/月摘要数量等参数,便于在准确性和系统负载之间做平衡。 8. 后台成员摘要详情页新增长期沟通倾向、长期特征、习惯模式、长期回复偏好、近期状态、历史样本数、分层摘要数量等展示字段,方便观察画像沉淀程度。 9. 优化后台查看成员摘要接口逻辑:首次打开如果还没有摘要,不再同步阻塞生成,而是返回未就绪状态,配合后台手动异步刷新,降低页面卡顿和接口阻塞风险。 10. 增强刷新日志,单成员和群级刷新会输出当前刷新模式以及日/周/月摘要数量,便于排查画像构建进度。 11. 调整当前日、当前周、当前月摘要的重算逻辑,确保新增日摘要写入后,本周和本月摘要不会长期停留在旧版本。 本次提交后,成员画像能力从“基于近期样本的单层摘要”升级为“基于时间沉淀的分层画像管线”,为后续把画像稳定接入 AI 自动回复上下文打下基础,同时尽量保持现有群权限控制和后台异步刷新方式不变。
45 lines
984 B
TOML
45 lines
984 B
TOML
[general]
|
|
enable = true
|
|
|
|
[api]
|
|
enable = true
|
|
base_url = "http://192.168.2.240/v1"
|
|
api_key = "app-URBzTCyx2VB10cTalurJNkcz"
|
|
endpoint = "completion-messages"
|
|
request_timeout = 60
|
|
|
|
[profile]
|
|
sample_days = 30
|
|
sample_message_limit = 80
|
|
refresh_limit_per_member = 200
|
|
long_term_days = 365
|
|
long_term_message_limit = 600
|
|
bootstrap_days = 365
|
|
bootstrap_message_limit = 600
|
|
incremental_message_limit = 80
|
|
incremental_recent_days = 7
|
|
recalibration_days = 30
|
|
daily_message_limit = 120
|
|
daily_digest_min_messages = 6
|
|
max_daily_digests_per_run = 45
|
|
weekly_digest_limit = 16
|
|
monthly_digest_limit = 12
|
|
final_daily_limit = 8
|
|
final_weekly_limit = 6
|
|
final_monthly_limit = 6
|
|
ai_min_member_messages = 12
|
|
active_member_hours = 72
|
|
min_member_messages = 3
|
|
max_members_per_group_per_run = 30
|
|
stale_hours = 24
|
|
stable_decay = 0.96
|
|
stable_max_items = 6
|
|
stable_min_score = 0.9
|
|
stable_ready_days = 180
|
|
|
|
[schedule]
|
|
refresh_times = ["04:20"]
|
|
only_recent_active_groups = true
|
|
active_hours = 72
|
|
min_group_messages = 20
|