mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-17 22:07:10 +00:00
fix: 单独提出监听对话以便赋予较高优先级
This commit is contained in:
parent
ad62b53af4
commit
3885527a7d
2 changed files with 52 additions and 34 deletions
34
apps/chat.js
34
apps/chat.js
|
|
@ -13,7 +13,6 @@ import {
|
||||||
upsertMessage,
|
upsertMessage,
|
||||||
randomString,
|
randomString,
|
||||||
getDefaultUserSetting, isCN
|
getDefaultUserSetting, isCN
|
||||||
, formatDate
|
|
||||||
} from '../utils/common.js'
|
} from '../utils/common.js'
|
||||||
import { ChatGPTPuppeteer } from '../utils/browser.js'
|
import { ChatGPTPuppeteer } from '../utils/browser.js'
|
||||||
import { KeyvFile } from 'keyv-file'
|
import { KeyvFile } from 'keyv-file'
|
||||||
|
|
@ -71,12 +70,6 @@ export class chatgpt extends plugin {
|
||||||
/** 优先级,数字越小等级越高 */
|
/** 优先级,数字越小等级越高 */
|
||||||
priority: 1144,
|
priority: 1144,
|
||||||
rule: [
|
rule: [
|
||||||
{
|
|
||||||
/** 学习群友聊天 **/
|
|
||||||
reg: '^[^#][sS]*',
|
|
||||||
fnc: 'recordChat',
|
|
||||||
log: false
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
/** 命令正则匹配 */
|
/** 命令正则匹配 */
|
||||||
reg: '^#chat3[sS]*',
|
reg: '^#chat3[sS]*',
|
||||||
|
|
@ -1286,31 +1279,4 @@ export class chatgpt extends plugin {
|
||||||
}
|
}
|
||||||
return await this.chatGPTApi.sendMessage(prompt, sendMessageOption)
|
return await this.chatGPTApi.sendMessage(prompt, sendMessageOption)
|
||||||
}
|
}
|
||||||
|
|
||||||
async recordChat (e) {
|
|
||||||
// let gl = await this.e.group.getMemberMap()
|
|
||||||
if (!e.raw_message) {
|
|
||||||
if (e.img && e.img.length > 0) {
|
|
||||||
e.msg = '[图片]'
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (e.isGroup && e.raw_message) {
|
|
||||||
const chat = {
|
|
||||||
sender: e.sender.card,
|
|
||||||
senderId: e.sender.user_id,
|
|
||||||
senderSex: e.sender.sex,
|
|
||||||
msg: e.raw_message,
|
|
||||||
role: e.sender.role,
|
|
||||||
area: e.sender.area,
|
|
||||||
age: e.sender.age,
|
|
||||||
time: formatDate(new Date())
|
|
||||||
}
|
|
||||||
// console.log(chat)
|
|
||||||
await redis.rPush('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id, JSON.stringify(chat))
|
|
||||||
if (await redis.lLen('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) > Config.groupContextLength) {
|
|
||||||
await redis.lPop('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return false
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
52
apps/intercept.js
Normal file
52
apps/intercept.js
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
import plugin from '../../../lib/plugins/plugin.js'
|
||||||
|
import { Config } from '../utils/config.js'
|
||||||
|
import { formatDate } from '../utils/common.js'
|
||||||
|
|
||||||
|
export class intercepter extends plugin {
|
||||||
|
constructor () {
|
||||||
|
super({
|
||||||
|
/** 功能名称 */
|
||||||
|
name: 'ChatGPT-Plugin 监听群聊对话',
|
||||||
|
/** 功能描述 */
|
||||||
|
dsc: 'ChatGPT-Plugin 监听群聊对话,以便了解上下文',
|
||||||
|
event: 'message',
|
||||||
|
/** 优先级,数字越小等级越高 */
|
||||||
|
priority: 1,
|
||||||
|
rule: [
|
||||||
|
{
|
||||||
|
/** 学习群友聊天 **/
|
||||||
|
reg: '^[^#][sS]*',
|
||||||
|
fnc: 'recordChat',
|
||||||
|
log: false
|
||||||
|
}
|
||||||
|
]
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
async recordChat (e) {
|
||||||
|
// let gl = await this.e.group.getMemberMap()
|
||||||
|
if (!e.raw_message) {
|
||||||
|
if (e.img && e.img.length > 0) {
|
||||||
|
e.msg = '[图片]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (e.isGroup && e.raw_message) {
|
||||||
|
const chat = {
|
||||||
|
sender: e.sender.card,
|
||||||
|
senderId: e.sender.user_id,
|
||||||
|
senderSex: e.sender.sex,
|
||||||
|
msg: e.raw_message,
|
||||||
|
role: e.sender.role,
|
||||||
|
area: e.sender.area,
|
||||||
|
age: e.sender.age,
|
||||||
|
time: formatDate(new Date())
|
||||||
|
}
|
||||||
|
// console.log(chat)
|
||||||
|
await redis.rPush('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id, JSON.stringify(chat))
|
||||||
|
if (await redis.lLen('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id) > Config.groupContextLength) {
|
||||||
|
await redis.lPop('CHATGPT:LATEST_CHAT_RECORD:' + e.group_id)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return false
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue