feat(context): 增强s4u跨上下文模式并重构API

在跨上下文功能中为s4u模式引入`s4u_ignore_whitelist`配置项。当启用时,除了白名单中配置的聊天记录外,还会自动获取目标用户与Bot的私聊记录,以构建更全面的用户画像。

主要变更:
- 在 `ContextGroup` 配置中添加 `s4u_ignore_whitelist` 字段。
- 重构 `cross_context_api`,将 `get_context_groups` 更改为 `get_context_group`,使其返回完整的 `ContextGroup` 对象而非仅ID列表,以便于访问新配置。
- 调整 `build_cross_context_s4u` 函数以处理新逻辑,包括获取私聊记录和避免重复处理。
- 更新了配置文件模板以包含新选项的说明和示例。
This commit is contained in:
minecraft1024a
2025-10-11 19:19:52 +08:00
parent 67ab97edef
commit 419d1a483a
4 changed files with 95 additions and 44 deletions

View File

@@ -1,5 +1,5 @@
[inner]
version = "7.2.9"
version = "7.2.10"
#----以下是给开发人员阅读的如果你只是部署了MoFox-Bot不需要阅读----
#如果你想要修改配置文件请递增version的值
@@ -528,6 +528,11 @@ enable = true
# limit 是一个可选的整数但需要以字符串形式写入用于指定从该聊天流中获取的消息数量如果未指定默认为5
[[cross_context.groups]]
name = "项目A技术讨论组"
# s4u_ignore_whitelist: (可选, 默认为 false)
# 如果设置为 true, 并且 prompt_mode 为 "s4u",
# Bot将获取目标用户在所有与Bot的私聊中的消息, 即使该私聊没有被明确配置在下面的 chat_ids 中。
# 这有助于构建更完整的用户画像, 但可能会增加token消耗。
s4u_ignore_whitelist = false
chat_ids = [
["group", "169850076", "10"], # 假设这是“开发群”的ID, 从这个群里拿10条消息
["group", "1025509724", "5"], # 假设这是“产品群”的ID拿5条