Merge branch 'v2' into v2

This commit is contained in:
ycxom 2025-01-08 20:53:34 +08:00 committed by GitHub
commit 8091c99736
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 60 additions and 47 deletions

View file

@ -20,6 +20,7 @@ import { SerpTool } from '../utils/tools/SerpTool.js'
import { initializeImageTool } from '../utils/tools/ImageTool.js'
import { DailyNewsTool } from '../utils/tools/DailyNewsTool.js'
import { SendMessageToSpecificGroupOrUserTool } from '../utils/tools/SendMessageToSpecificGroupOrUserTool.js'
import { customSplitRegex, filterResponseChunk } from '../utils/text.js'
const DefaultConfig = {
returnQQ: [],
@ -389,45 +390,3 @@ export class bym extends plugin {
}
}
/**
* 过滤
* @param msg
*/
function filterResponseChunk(msg) {
if (typeof msg === 'object') {
return msg || false
}
if (!msg || typeof msg !== 'string') {
return false
}
if (!msg.trim()) {
return false
}
if (msg.trim() === '```') {
return false
}
if (msg.trim() === '<EMPTY>') {
return false
}
return msg
}
function customSplitRegex(text, regex, limit) {
const result = []
let match
let lastIndex = 0
const globalRegex = new RegExp(regex, 'g')
while ((match = globalRegex.exec(text)) !== null) {
if (result.length < limit - 1) {
result.push(text.slice(lastIndex, match.index))
lastIndex = match.index + match[0].length
} else {
break
}
}
// 添加剩余部分
result.push(text.slice(lastIndex))
return result
}

View file

@ -10,7 +10,8 @@ export const HarmCategory = {
HARM_CATEGORY_HATE_SPEECH: 'HARM_CATEGORY_HATE_SPEECH',
HARM_CATEGORY_SEXUALLY_EXPLICIT: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
HARM_CATEGORY_HARASSMENT: 'HARM_CATEGORY_HARASSMENT',
HARM_CATEGORY_DANGEROUS_CONTENT: 'HARM_CATEGORY_DANGEROUS_CONTENT'
HARM_CATEGORY_DANGEROUS_CONTENT: 'HARM_CATEGORY_DANGEROUS_CONTENT',
HARM_CATEGORY_CIVIC_INTEGRITY: 'HARM_CATEGORY_CIVIC_INTEGRITY'
}
export const HarmBlockThreshold = {
@ -18,7 +19,8 @@ export const HarmBlockThreshold = {
BLOCK_LOW_AND_ABOVE: 'BLOCK_LOW_AND_ABOVE',
BLOCK_MEDIUM_AND_ABOVE: 'BLOCK_MEDIUM_AND_ABOVE',
BLOCK_ONLY_HIGH: 'BLOCK_ONLY_HIGH',
BLOCK_NONE: 'BLOCK_NONE'
BLOCK_NONE: 'BLOCK_NONE',
OFF: 'OFF'
}
/**
@ -185,18 +187,22 @@ export class CustomGoogleGeminiClient extends GoogleGeminiClient {
safetySettings: [
{
category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
threshold: HarmBlockThreshold.BLOCK_NONE
threshold: HarmBlockThreshold.OFF
},
{
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
threshold: HarmBlockThreshold.BLOCK_NONE
threshold: HarmBlockThreshold.OFF
},
{
category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
threshold: HarmBlockThreshold.BLOCK_NONE
threshold: HarmBlockThreshold.OFF
},
{
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
threshold: HarmBlockThreshold.OFF
},
{
category: HarmCategory.HARM_CATEGORY_CIVIC_INTEGRITY,
threshold: HarmBlockThreshold.BLOCK_NONE
}
],

48
utils/text.js Normal file
View file

@ -0,0 +1,48 @@
/**
* 过滤
* @param msg
*/
export function filterResponseChunk (msg) {
if (!msg || typeof msg !== 'string') {
return false
}
if (!msg.trim()) {
return false
}
if (msg.trim() === '```') {
return false
}
if (msg.trim() === '<EMPTY>') {
return false
}
msg = trimSpecific(msg, '<EMPTY')
return msg
}
export function customSplitRegex (text, regex, limit) {
const result = []
let match
let lastIndex = 0
const globalRegex = new RegExp(regex, 'g')
while ((match = globalRegex.exec(text)) !== null) {
if (result.length < limit - 1) {
result.push(text.slice(lastIndex, match.index))
lastIndex = match.index + match[0].length
} else {
break
}
}
// 添加剩余部分
result.push(text.slice(lastIndex))
return result
}
export function trimSpecific (str, marker) {
let trimmedStr = str.trim()
const regex = new RegExp(`^${marker}|${marker}$`, 'g')
return trimmedStr.replace(regex, '').trim()
}