feat: 改用调接口拿聊天记录,不用自己记录了

This commit is contained in:
ikechan8370 2023-03-26 23:23:37 +08:00
parent 3885527a7d
commit 1c79ff00b7
3 changed files with 17 additions and 74 deletions

View file

@ -1015,6 +1015,16 @@ export class chatgpt extends plugin {
opt.qq = e.sender.user_id
opt.nickname = e.sender.card
opt.groupName = e.group.name
let latestChat = await e.group.getChatHistory(0, 1)
let seq = latestChat[0].seq
let chats = []
while (chats.length < Config.groupContextLength) {
let chatHistory = await e.group.getChatHistory(seq, 20)
chats.push(...chatHistory)
}
chats = chats.slice(0, Config.groupContextLength)
console.log(chats)
opt.chats = chats
}
response = await bingAIClient.sendMessage(prompt, opt, (token) => {
reply += token

View file

@ -1,52 +0,0 @@
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
}
}