koishi-plugin-guofenbot 1.0.5 → 1.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,9 @@
1
1
  import { Context } from 'koishi';
2
2
  import { AIProvider, AIProviderConfig } from './provider';
3
- import { AnalysisResult, MessageContext, MemberProfileSnapshot } from '../types';
3
+ import { AnalysisResult, MessageContext, MemberProfileSnapshot, ChatHistoryEntry } from '../types';
4
4
  export declare class OpenAIProvider extends AIProvider {
5
5
  constructor(ctx: Context, config: AIProviderConfig);
6
- analyzeMessage(rules: string, profiles: MemberProfileSnapshot[], message: MessageContext): Promise<AnalysisResult>;
6
+ analyzeMessage(rules: string, profiles: MemberProfileSnapshot[], chatHistory: ChatHistoryEntry[], message: MessageContext): Promise<AnalysisResult>;
7
7
  validateConnection(): Promise<boolean>;
8
8
  private buildSystemPrompt;
9
9
  private buildUserPrompt;
package/lib/ai/openai.js CHANGED
@@ -6,26 +6,29 @@ class OpenAIProvider extends provider_1.AIProvider {
6
6
  constructor(ctx, config) {
7
7
  super(ctx, config);
8
8
  }
9
- async analyzeMessage(rules, profiles, message) {
9
+ async analyzeMessage(rules, profiles, chatHistory, message) {
10
10
  const systemPrompt = this.buildSystemPrompt(rules, profiles);
11
- const userPrompt = this.buildUserPrompt(message);
11
+ const userPrompt = this.buildUserPrompt(chatHistory, message);
12
12
  try {
13
- const response = await this.ctx.http.post(`${this.config.endpoint}/chat/completions`, {
14
- model: this.config.model,
15
- messages: [
16
- { role: 'system', content: systemPrompt },
17
- { role: 'user', content: userPrompt },
18
- ],
19
- temperature: 0.2,
20
- max_tokens: 400,
21
- response_format: { type: 'json_object' },
22
- }, {
13
+ const response = await fetch(`${this.config.endpoint}/chat/completions`, {
14
+ method: 'POST',
23
15
  headers: {
24
16
  Authorization: `Bearer ${this.config.apiKey}`,
25
17
  'Content-Type': 'application/json',
26
18
  },
19
+ body: JSON.stringify({
20
+ model: this.config.model,
21
+ messages: [
22
+ { role: 'system', content: systemPrompt },
23
+ { role: 'user', content: userPrompt },
24
+ ],
25
+ temperature: 0.2,
26
+ max_tokens: 500,
27
+ response_format: { type: 'json_object' },
28
+ }),
27
29
  });
28
- const content = response.choices?.[0]?.message?.content ?? '{}';
30
+ const data = await response.json();
31
+ const content = data.choices?.[0]?.message?.content ?? '{}';
29
32
  return this.parseResponse(content);
30
33
  }
31
34
  catch (error) {
@@ -35,12 +38,12 @@ class OpenAIProvider extends provider_1.AIProvider {
35
38
  }
36
39
  async validateConnection() {
37
40
  try {
38
- await this.ctx.http.get(`${this.config.endpoint}/models`, {
41
+ const response = await fetch(`${this.config.endpoint}/models`, {
39
42
  headers: {
40
43
  Authorization: `Bearer ${this.config.apiKey}`,
41
44
  },
42
45
  });
43
- return true;
46
+ return response.ok;
44
47
  }
45
48
  catch {
46
49
  return false;
@@ -66,65 +69,103 @@ class OpenAIProvider extends provider_1.AIProvider {
66
69
  ].join('\n');
67
70
  })
68
71
  .join('\n');
69
- return `你是一个专业的群聊安全监测助手。你的核心任务是根据群规则和成员习惯来判定言论是否违规。
72
+ return `你是一个专业的群聊安全监测助手。你的核心任务是根据上下文语境、群规则和成员习惯来判定言论是否违规。
70
73
 
71
- ## ⚠️ 最重要的原则:避免误判
74
+ ## 核心能力:上下文感知分析
72
75
 
73
- 你必须在判定每条消息时,同时考虑以下两个维度:
74
- 1. **群规则维度**: 消息内容是否违反了下方的群规则?
75
- 2. **个人习惯维度**: 这个消息与该成员的历史发言习惯是否一致?
76
+ 每次分析我会提供:
77
+ 1. 最近群聊消息上下文(对话氛围分析)
78
+ 2. 待分析的目标消息
79
+ 3. 群规则
80
+ 4. 群成员行为画像
76
81
 
77
- **只有当消息确实违反了群规则,或者与成员习惯出现严重偏离且具有危险性时,才应报警。**
82
+ 你需要先理解当前群聊的**整体氛围和情绪基调**,再判断目标消息在上下文中是否"过分"或"不合时宜"。
78
83
 
79
- 常见误判场景(请避免):
80
- - 某成员经常使用某个词汇,即使该词在其他语境中可能有负面含义,对他来说是正常表达
81
- - 某成员情绪基线偏消极,突然的负面表达只是其正常风格,不是异常
82
- - 某成员习惯发短消息,偶尔发长消息是正常变化,不是异常
83
- - 成员之间的玩笑、熟人互怼 —— 请注意上下文区分玩笑和真正的攻击
84
- - 讨论新闻时事时提到的敏感词 —— 需要区分"讨论"和"宣扬"
84
+ ## ⚠️ 最重要的原则:结合上下文避免误判
85
85
 
86
- ## 群规则(这是判定违规的最高依据)
86
+ 判定时必须同时考虑三个维度:
87
+ 1. **群规则维度**: 消息是否违反群规则?
88
+ 2. **上下文维度**: 对话当下的氛围是什么?这条消息在上下文中是否显得突兀或过分?
89
+ 3. **个人习惯维度**: 消息是否符合该成员的正常发言风格?
90
+
91
+ 常见"在上下文中可能没问题"的场景(请勿误判):
92
+ - 群聊氛围轻松调侃时,成员之间的玩笑互怼
93
+ - 在讨论激烈话题(如球赛、游戏)时,语气激动是正常情绪释放
94
+ - 某成员平时就爱说某个词汇,即使外人看来不太合适,对他来说是口头禅
95
+ - 话题自然过渡时的风格微变
96
+
97
+ "不合时宜"的典型场景(应重点关注):
98
+ - 群聊氛围和谐时,某人突然发出恶意攻击或侮辱性言论
99
+ - 大家正在讨论正经话题时,某人突然插入不相关的骚扰信息
100
+ - 群聊中大部分成员都表现出不满/愤怒时,某人火上浇油
101
+ - 深夜或非活跃时段,陌生人突然发布可疑内容
102
+
103
+ ## 群规则
87
104
 
88
105
  ${rules || '暂无设定群规则,请以通用的文明聊天标准为判定依据。'}
89
106
 
90
- ## 群成员行为画像(用来判断消息是否符合该成员的正常习惯)
107
+ ## 群成员行为画像
91
108
 
92
109
  ${profileText || '暂无成员数据'}
93
110
 
111
+ ## 情绪与氛围判断指南
112
+
113
+ 在分析上下文消息时,你需要评估当前群聊的情绪基调:
114
+ - **和谐/中性**: 正常聊天,没有明显情绪波动
115
+ - **激烈/争论**: 成员观点分歧,但尚未越界
116
+ - **负面/紧张**: 已有成员表现出不满或攻击倾向,需要特别关注新增消息是否升级
117
+ - **轻松/玩笑**: 成员之间互相调侃,此时对"攻击性词汇"的容忍度应适当提高
118
+
94
119
  ## 判定标准
95
120
 
96
- 1. **dangerous(危险)**: 明确违反群规则中的红线条款,或包含: 诈骗信息、银行卡/密码索取、暴力威胁、人身攻击、色情内容、违法内容。注意:必须结合上下文确认是真实的违规,而非玩笑或讨论。
121
+ 1. **dangerous(危险)**: 在上下文中确实构成了严重违规 —— 明确的诈骗、人身攻击、色情内容、暴力威胁、违法信息。注意:必须确认不是在开玩笑或讨论。
97
122
 
98
- 2. **suspicious(可疑)**: 存在潜在风险的言论: 诱导私聊转账、疑似广告/推广、虚假信息传播、恶意链接。注意:结合该成员习惯,如果该成员经常分享链接且历史记录正常,则不应判定为可疑。
123
+ 2. **suspicious(可疑)**: 在上下文中显得可疑 —— 不合时宜的诱导私聊、与对话主题无关的广告/推广、可疑链接。注意:如果该成员经常分享链接且与话题相关,则不应判定为可疑。
99
124
 
100
- 3. **abnormal(异常)**: 与该成员的历史发言习惯严重偏离,且偏离方向具有危险性。例如:平时温和的人突然激烈攻击他人、平时不发言的人突然大量发布敏感内容。单纯的语言风格变化(如平时发短消息现在发长消息)不构成异常。
125
+ 3. **abnormal(异常)**: 消息本身不一定违反规则,但在当前上下文和该成员习惯中显得格格不入 —— 例如平时沉默的人突然激烈攻击、情绪基调与对话氛围严重不符。
101
126
 
102
127
  ## 置信度指南
103
- - 0.9~1.0: 明确违规,毫无疑问(如明确的诈骗话术、严重人身攻击)
128
+ - 0.9~1.0: 确认违规,结合上下文仍然明显越界
104
129
  - 0.7~0.9: 高度可疑,结合上下文大概率违规
105
- - 0.5~0.7: 存在违规可能,但需要人工复核
106
- - 低于0.5时,应当判定为正常(isAbnormal: false)
107
-
108
- 如果消息在群规则的允许范围内,或者只是成员的正常表达习惯,你必须判定为正常。
130
+ - 0.5~0.7: 存疑,需要人工复核
131
+ - <0.5: 应判定为正常
109
132
 
110
133
  ## 输出格式
111
- 只返回JSON,不要任何额外内容:
134
+ 只返回JSON:
112
135
  {
113
136
  "isAbnormal": true或false,
114
137
  "alertType": "normal"或"dangerous"或"suspicious"或"abnormal",
115
- "reason": "简要说明判定理由,如果正常则留空",
116
- "confidence": 0到1之间的数值,
117
- "suggestedAction": "none"或"warn"或"mute"或"kick"
138
+ "reason": "判定理由,结合上下文和成员习惯说明",
139
+ "confidence": 0到1,
140
+ "suggestedAction": "none"或"warn"或"mute"或"kick",
141
+ "contextTone": "当前群聊的情绪氛围"
118
142
  }`;
119
143
  }
120
- buildUserPrompt(message) {
144
+ buildUserPrompt(chatHistory, message) {
121
145
  const time = new Date(message.timestamp).toLocaleString();
122
- return `【待分析消息】
146
+ let contextText = '';
147
+ if (chatHistory.length > 0) {
148
+ contextText = chatHistory
149
+ .map((h) => {
150
+ const t = new Date(h.timestamp).toLocaleTimeString();
151
+ return `[${t}] ${h.username}: ${h.content}`;
152
+ })
153
+ .join('\n');
154
+ }
155
+ else {
156
+ contextText = '(暂无上文,这是群内最近的第一条消息)';
157
+ }
158
+ return `## 最近群聊上下文(按时间顺序)
159
+
160
+ ${contextText}
161
+
162
+ ## 待分析的目标消息
163
+
164
+ 时间: ${time}
123
165
  发送者: ${message.username}(ID:${message.userId})
124
- 发送时间: ${time}
125
- 消息内容: "${message.content}"
166
+ 内容: "${message.content}"
126
167
 
127
- 请根据群规则和该成员的说话习惯,判断这条消息是否违规。务必考虑该成员的常用词汇和表达风格,避免将正常表达误判为违规。`;
168
+ 请先评估上文对话的整体氛围和情绪基调,然后判断目标消息在当前上下文中是否"过分"或"不合时宜"。`;
128
169
  }
129
170
  parseResponse(content) {
130
171
  try {
@@ -138,10 +179,14 @@ ${profileText || '暂无成员数据'}
138
179
  suggestedAction: 'none',
139
180
  };
140
181
  }
182
+ let reason = parsed.reason ?? 'AI 检测到异常';
183
+ if (parsed.contextTone) {
184
+ reason = `[氛围: ${parsed.contextTone}] ${reason}`;
185
+ }
141
186
  return {
142
187
  isAbnormal: true,
143
188
  alertType: parsed.alertType ?? 'suspicious',
144
- reason: parsed.reason ?? 'AI 检测到异常',
189
+ reason,
145
190
  confidence: Math.min(1, Math.max(0, parsed.confidence ?? 0.5)),
146
191
  suggestedAction: parsed.suggestedAction ?? 'warn',
147
192
  };
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/ai/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/ai/openai.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import { Context } from 'koishi';
2
- import { AnalysisResult, MessageContext, MemberProfileSnapshot } from '../types';
2
+ import { AnalysisResult, MessageContext, MemberProfileSnapshot, ChatHistoryEntry } from '../types';
3
3
  export declare abstract class AIProvider {
4
4
  protected ctx: Context;
5
5
  protected config: AIProviderConfig;
6
6
  constructor(ctx: Context, config: AIProviderConfig);
7
- abstract analyzeMessage(rules: string, profiles: MemberProfileSnapshot[], message: MessageContext): Promise<AnalysisResult>;
7
+ abstract analyzeMessage(rules: string, profiles: MemberProfileSnapshot[], chatHistory: ChatHistoryEntry[], message: MessageContext): Promise<AnalysisResult>;
8
8
  abstract validateConnection(): Promise<boolean>;
9
9
  }
10
10
  export interface AIProviderConfig {
@@ -1 +1 @@
1
- {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":";;;AAGA,MAAsB,UAAU;IACpB,GAAG,CAAS;IACZ,MAAM,CAAkB;IAElC,YAAY,GAAY,EAAE,MAAwB;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CASF;AAhBD,gCAgBC"}
1
+ {"version":3,"file":"provider.js","sourceRoot":"","sources":["../../src/ai/provider.ts"],"names":[],"mappings":";;;AAGA,MAAsB,UAAU;IACpB,GAAG,CAAS;IACZ,MAAM,CAAkB;IAElC,YAAY,GAAY,EAAE,MAAwB;QAChD,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;QACd,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;IACtB,CAAC;CAUF;AAjBD,gCAiBC"}
package/lib/index.js CHANGED
@@ -10,7 +10,7 @@ const monitor_1 = require("./services/monitor");
10
10
  const commands_1 = require("./admin/commands");
11
11
  const routes_1 = require("./admin/routes");
12
12
  exports.name = 'guofenbot';
13
- exports.inject = ['database', 'server', 'http'];
13
+ exports.inject = ['database', 'server'];
14
14
  exports.Config = koishi_1.Schema.object({
15
15
  aiProvider: koishi_1.Schema.object({
16
16
  type: koishi_1.Schema.union(['openai', 'custom']).default('openai').description('AI 提供商类型'),
@@ -46,6 +46,9 @@ exports.Config = koishi_1.Schema.object({
46
46
  muteDuration: koishi_1.Schema.number()
47
47
  .default(10)
48
48
  .description('自动禁言时长 (分钟)'),
49
+ contextSize: koishi_1.Schema.number()
50
+ .default(10)
51
+ .description('传给 AI 的上下文消息数量 (越大分析越准但 token 消耗越多)'),
49
52
  }).description('监测配置'),
50
53
  });
51
54
  function apply(ctx, config) {
@@ -70,6 +73,7 @@ function apply(ctx, config) {
70
73
  autoModerate: config.monitor.autoModerate,
71
74
  maxViolations: config.monitor.maxViolations,
72
75
  muteDuration: config.monitor.muteDuration,
76
+ contextSize: config.monitor.contextSize,
73
77
  };
74
78
  const monitor = new monitor_1.MonitorService(ctx, aiProvider, ruleManager, profileManager, monitorConfig);
75
79
  (0, commands_1.registerAdminCommands)(ctx, ruleManager, profileManager, monitorConfig);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ export interface MonitorConfig {
11
11
  autoModerate: boolean;
12
12
  maxViolations: number;
13
13
  muteDuration: number;
14
+ contextSize: number;
14
15
  }
15
16
  export declare class MonitorService {
16
17
  private ctx;
@@ -19,7 +20,11 @@ export declare class MonitorService {
19
20
  private profileManager;
20
21
  private config;
21
22
  private cooldownMap;
23
+ private historyMap;
22
24
  constructor(ctx: Context, aiProvider: AIProvider, ruleManager: RuleManager, profileManager: ProfileManager, config: MonitorConfig);
25
+ private getHistory;
26
+ private pushHistory;
27
+ private getRecentContext;
23
28
  processMessage(message: MessageContext): Promise<void>;
24
29
  private getConfidenceThreshold;
25
30
  private createAlert;
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MonitorService = void 0;
4
+ const MAX_HISTORY = 50;
4
5
  class MonitorService {
5
6
  ctx;
6
7
  aiProvider;
@@ -8,6 +9,7 @@ class MonitorService {
8
9
  profileManager;
9
10
  config;
10
11
  cooldownMap = new Map();
12
+ historyMap = new Map();
11
13
  constructor(ctx, aiProvider, ruleManager, profileManager, config) {
12
14
  this.ctx = ctx;
13
15
  this.aiProvider = aiProvider;
@@ -15,14 +17,40 @@ class MonitorService {
15
17
  this.profileManager = profileManager;
16
18
  this.config = config;
17
19
  }
20
+ getHistory(guildId) {
21
+ if (!this.historyMap.has(guildId)) {
22
+ this.historyMap.set(guildId, []);
23
+ }
24
+ return this.historyMap.get(guildId);
25
+ }
26
+ pushHistory(guildId, entry) {
27
+ const history = this.getHistory(guildId);
28
+ history.push(entry);
29
+ while (history.length > MAX_HISTORY) {
30
+ history.shift();
31
+ }
32
+ }
33
+ getRecentContext(guildId) {
34
+ const history = this.getHistory(guildId);
35
+ const size = Math.min(this.config.contextSize, history.length);
36
+ return history.slice(-size);
37
+ }
18
38
  async processMessage(message) {
19
39
  const guildId = message.guildId;
20
40
  if (!this.config.enabledGuilds.includes(guildId))
21
41
  return;
42
+ const entry = {
43
+ userId: message.userId,
44
+ username: message.username,
45
+ content: message.content,
46
+ timestamp: message.timestamp,
47
+ };
22
48
  const cooldownKey = `${guildId}:${message.userId}`;
23
49
  const lastCheck = this.cooldownMap.get(cooldownKey) ?? 0;
24
- if (Date.now() - lastCheck < 3000)
50
+ if (Date.now() - lastCheck < 3000) {
51
+ this.pushHistory(guildId, entry);
25
52
  return;
53
+ }
26
54
  this.cooldownMap.set(cooldownKey, Date.now());
27
55
  try {
28
56
  await this.profileManager.updateProfile(guildId, message.userId, message.username, message.content);
@@ -35,7 +63,8 @@ class MonitorService {
35
63
  const rule = await this.ruleManager.getRule(guildId);
36
64
  if (rule?.content) {
37
65
  const profiles = await this.profileManager.getProfileSnapshots(guildId);
38
- analysis = await this.aiProvider.analyzeMessage(rule.content, profiles, message);
66
+ const chatHistory = this.getRecentContext(guildId);
67
+ analysis = await this.aiProvider.analyzeMessage(rule.content, profiles, chatHistory, message);
39
68
  }
40
69
  else {
41
70
  const profile = await this.profileManager.getProfile(guildId, message.userId);
@@ -51,13 +80,16 @@ class MonitorService {
51
80
  };
52
81
  }
53
82
  else {
83
+ this.pushHistory(guildId, entry);
54
84
  return;
55
85
  }
56
86
  }
57
87
  else {
88
+ this.pushHistory(guildId, entry);
58
89
  return;
59
90
  }
60
91
  }
92
+ this.pushHistory(guildId, entry);
61
93
  if (!analysis.isAbnormal)
62
94
  return;
63
95
  if (analysis.confidence < this.getConfidenceThreshold())
@@ -70,6 +102,7 @@ class MonitorService {
70
102
  }
71
103
  catch (error) {
72
104
  this.ctx.logger.error('消息监测处理失败', error);
105
+ this.pushHistory(guildId, entry);
73
106
  }
74
107
  }
75
108
  getConfidenceThreshold() {
@@ -1 +1 @@
1
- {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/services/monitor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"monitor.js","sourceRoot":"","sources":["../../src/services/monitor.ts"],"names":[],"mappings":"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"}
package/lib/types.d.ts CHANGED
@@ -50,6 +50,12 @@ export interface MessageContext {
50
50
  platform: string;
51
51
  timestamp: number;
52
52
  }
53
+ export interface ChatHistoryEntry {
54
+ userId: string;
55
+ username: string;
56
+ content: string;
57
+ timestamp: number;
58
+ }
53
59
  export interface MemberProfileSnapshot {
54
60
  userId: string;
55
61
  username: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koishi-plugin-guofenbot",
3
- "version": "1.0.5",
3
+ "version": "1.0.7",
4
4
  "description": "AI 群聊安全监测插件 - 支持多 AI 接入、群规则理解、成员行为分析、异常言论检测与自动处理",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",