mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 13:27:08 +00:00
fix: 聊天记录适配TRSS+chronocat
This commit is contained in:
parent
dce7503c41
commit
95e730f250
3 changed files with 47 additions and 9 deletions
13
apps/chat.js
13
apps/chat.js
|
|
@ -9,6 +9,7 @@ import SydneyAIClient from '../utils/SydneyAIClient.js'
|
|||
import { PoeClient } from '../utils/poe/index.js'
|
||||
import AzureTTS from '../utils/tts/microsoft-azure.js'
|
||||
import VoiceVoxTTS from '../utils/tts/voicevox.js'
|
||||
import Version from '../utils/version.js'
|
||||
import {
|
||||
render,
|
||||
renderUrl,
|
||||
|
|
@ -183,7 +184,7 @@ export class chatgpt extends plugin {
|
|||
reg: toggleMode === 'at' ? '^[^#][sS]*' : '^#chat[^gpt][sS]*',
|
||||
/** 执行方法 */
|
||||
fnc: 'chatgpt',
|
||||
log: false
|
||||
log: true
|
||||
},
|
||||
{
|
||||
reg: '^#(chatgpt)?对话列表$',
|
||||
|
|
@ -756,16 +757,17 @@ export class chatgpt extends plugin {
|
|||
* #chatgpt
|
||||
*/
|
||||
async chatgpt (e) {
|
||||
let msg = Version.isTrss ? e.msg : e.raw_message
|
||||
let prompt
|
||||
if (this.toggleMode === 'at') {
|
||||
if (!e.raw_message || e.msg?.startsWith('#')) {
|
||||
if (!msg || e.msg?.startsWith('#')) {
|
||||
return false
|
||||
}
|
||||
if ((e.isGroup || e.group_id) && !(e.atme || e.atBot)) {
|
||||
return false
|
||||
}
|
||||
if (e.user_id == getUin(e)) return false
|
||||
prompt = e.raw_message.trim()
|
||||
prompt = msg.trim()
|
||||
if (e.isGroup && typeof this.e.group.getMemberMap === 'function') {
|
||||
let mm = await this.e.group.getMemberMap()
|
||||
let me = mm.get(getUin(e)) || {}
|
||||
|
|
@ -1582,6 +1584,7 @@ export class chatgpt extends plugin {
|
|||
// opt.messageType = allThrottled ? 'Chat' : 'SearchQuery'
|
||||
if (Config.enableGroupContext && e.isGroup && typeof e.group.getMemberMap === 'function') {
|
||||
try {
|
||||
let memberMap = await e.group.getMemberMap()
|
||||
opt.groupId = e.group_id
|
||||
opt.qq = e.sender.user_id
|
||||
opt.nickname = e.sender.card
|
||||
|
|
@ -1605,7 +1608,9 @@ export class chatgpt extends plugin {
|
|||
let mm = await e.group.getMemberMap()
|
||||
chats.forEach(chat => {
|
||||
let sender = mm.get(chat.sender.user_id)
|
||||
chat.sender = sender
|
||||
if (sender) {
|
||||
chat.sender = sender
|
||||
}
|
||||
})
|
||||
// console.log(chats)
|
||||
opt.chats = chats
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ import { formatDate, getMasterQQ, isCN, getUserData } from './common.js'
|
|||
import delay from 'delay'
|
||||
import moment from 'moment'
|
||||
import { getProxy } from './proxy.js'
|
||||
import Version from './version.js'
|
||||
|
||||
if (!globalThis.fetch) {
|
||||
globalThis.fetch = fetch
|
||||
|
|
@ -80,7 +81,7 @@ export default class SydneyAIClient {
|
|||
// 'x-ms-client-request-id': crypto.randomUUID(),
|
||||
// 'x-ms-useragent': 'azsdk-js-api-client-factory/1.0.0-beta.1 core-rest-pipeline/1.10.3 OS/macOS',
|
||||
// cookie: this.opts.cookies || `_U=${this.opts.userToken}`,
|
||||
Referer: 'https://edgeservices.bing.com/edgesvc/chat?udsframed=1&form=SHORUN&clientscopes=chat,noheader,channelstable,',
|
||||
Referer: 'https://edgeservices.bing.com/edgesvc/chat?udsframed=1&form=SHORUN&clientscopes=chat,noheader,channelstable,'
|
||||
// 'Referrer-Policy': 'origin-when-cross-origin',
|
||||
// Workaround for request being blocked due to geolocation
|
||||
// 'x-forwarded-for': '1.1.1.1'
|
||||
|
|
@ -461,11 +462,10 @@ export default class SydneyAIClient {
|
|||
admin: '管理员'
|
||||
}
|
||||
if (chats) {
|
||||
context += `以下是一段qq群内的对话,提供给你作为上下文,你在回答所有问题时必须优先考虑这些信息,结合这些上下文进行回答,这很重要!!!。"
|
||||
`
|
||||
context += '以下是一段qq群内的对话,提供给你作为上下文,你在回答所有问题时必须优先考虑这些信息,结合这些上下文进行回答,这很重要!!!。"'
|
||||
context += chats
|
||||
.map(chat => {
|
||||
let sender = chat.sender || {}
|
||||
let sender = chat.sender || chat || {}
|
||||
// if (sender.user_id === Bot.uin && chat.raw_message.startsWith('建议的回复')) {
|
||||
if (chat.raw_message.startsWith('建议的回复')) {
|
||||
// 建议的回复太容易污染设定导致对话太固定跑偏了
|
||||
|
|
@ -655,7 +655,7 @@ export default class SydneyAIClient {
|
|||
text: replySoFar.join('')
|
||||
}
|
||||
// 获取到图片内容
|
||||
if (messages.some(obj => obj.contentType === "IMAGE")) {
|
||||
if (messages.some(obj => obj.contentType === 'IMAGE')) {
|
||||
message.imageTag = messages.filter(m => m.contentType === 'IMAGE').map(m => m.text).join('')
|
||||
}
|
||||
message.text = messages.filter(m => m.author === 'bot' && m.contentType != 'IMAGE').map(m => m.text).join('')
|
||||
|
|
|
|||
33
utils/version.js
Normal file
33
utils/version.js
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import fs from 'fs'
|
||||
|
||||
/**
|
||||
* from miao-plugin
|
||||
*
|
||||
* @type {any}
|
||||
*/
|
||||
let packageJson = JSON.parse(fs.readFileSync('package.json', 'utf8'))
|
||||
|
||||
const yunzaiVersion = packageJson.version
|
||||
const isV3 = yunzaiVersion[0] === '3'
|
||||
let isMiao = false; let isTrss = false
|
||||
let name = 'Yunzai-Bot'
|
||||
if (packageJson.name === 'miao-yunzai') {
|
||||
isMiao = true
|
||||
name = 'Miao-Yunzai'
|
||||
} else if (packageJson.name === 'trss-yunzai') {
|
||||
isMiao = true
|
||||
isTrss = true
|
||||
name = 'TRSS-Yunzai'
|
||||
}
|
||||
|
||||
let Version = {
|
||||
isV3,
|
||||
isMiao,
|
||||
isTrss,
|
||||
name,
|
||||
get yunzai () {
|
||||
return yunzaiVersion
|
||||
}
|
||||
}
|
||||
|
||||
export default Version
|
||||
Loading…
Add table
Add a link
Reference in a new issue