mirror of
https://github.com/ikechan8370/chatgpt-plugin.git
synced 2025-12-16 13:27:08 +00:00
fix: gemini filter
This commit is contained in:
parent
25520ba9fe
commit
ced7a5a01f
3 changed files with 60 additions and 45 deletions
41
apps/bym.js
41
apps/bym.js
|
|
@ -18,6 +18,7 @@ import { KickOutTool } from '../utils/tools/KickOutTool.js'
|
||||||
import { SetTitleTool } from '../utils/tools/SetTitleTool.js'
|
import { SetTitleTool } from '../utils/tools/SetTitleTool.js'
|
||||||
import { SerpTool } from '../utils/tools/SerpTool.js'
|
import { SerpTool } from '../utils/tools/SerpTool.js'
|
||||||
import { SendMessageToSpecificGroupOrUserTool } from '../utils/tools/SendMessageToSpecificGroupOrUserTool.js'
|
import { SendMessageToSpecificGroupOrUserTool } from '../utils/tools/SendMessageToSpecificGroupOrUserTool.js'
|
||||||
|
import { customSplitRegex, filterResponseChunk } from '../utils/text.js'
|
||||||
|
|
||||||
export class bym extends plugin {
|
export class bym extends plugin {
|
||||||
constructor () {
|
constructor () {
|
||||||
|
|
@ -170,43 +171,3 @@ export class bym extends plugin {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* 过滤
|
|
||||||
* @param msg
|
|
||||||
*/
|
|
||||||
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
|
|
||||||
}
|
|
||||||
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
|
|
||||||
}
|
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,8 @@ export const HarmCategory = {
|
||||||
HARM_CATEGORY_HATE_SPEECH: 'HARM_CATEGORY_HATE_SPEECH',
|
HARM_CATEGORY_HATE_SPEECH: 'HARM_CATEGORY_HATE_SPEECH',
|
||||||
HARM_CATEGORY_SEXUALLY_EXPLICIT: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
|
HARM_CATEGORY_SEXUALLY_EXPLICIT: 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
|
||||||
HARM_CATEGORY_HARASSMENT: 'HARM_CATEGORY_HARASSMENT',
|
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 = {
|
export const HarmBlockThreshold = {
|
||||||
|
|
@ -18,7 +19,8 @@ export const HarmBlockThreshold = {
|
||||||
BLOCK_LOW_AND_ABOVE: 'BLOCK_LOW_AND_ABOVE',
|
BLOCK_LOW_AND_ABOVE: 'BLOCK_LOW_AND_ABOVE',
|
||||||
BLOCK_MEDIUM_AND_ABOVE: 'BLOCK_MEDIUM_AND_ABOVE',
|
BLOCK_MEDIUM_AND_ABOVE: 'BLOCK_MEDIUM_AND_ABOVE',
|
||||||
BLOCK_ONLY_HIGH: 'BLOCK_ONLY_HIGH',
|
BLOCK_ONLY_HIGH: 'BLOCK_ONLY_HIGH',
|
||||||
BLOCK_NONE: 'BLOCK_NONE'
|
BLOCK_NONE: 'BLOCK_NONE',
|
||||||
|
OFF: 'OFF'
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -170,18 +172,22 @@ export class CustomGoogleGeminiClient extends GoogleGeminiClient {
|
||||||
safetySettings: [
|
safetySettings: [
|
||||||
{
|
{
|
||||||
category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
|
category: HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT,
|
||||||
threshold: HarmBlockThreshold.BLOCK_NONE
|
threshold: HarmBlockThreshold.OFF
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
|
category: HarmCategory.HARM_CATEGORY_HARASSMENT,
|
||||||
threshold: HarmBlockThreshold.BLOCK_NONE
|
threshold: HarmBlockThreshold.OFF
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
|
category: HarmCategory.HARM_CATEGORY_SEXUALLY_EXPLICIT,
|
||||||
threshold: HarmBlockThreshold.BLOCK_NONE
|
threshold: HarmBlockThreshold.OFF
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
|
category: HarmCategory.HARM_CATEGORY_HATE_SPEECH,
|
||||||
|
threshold: HarmBlockThreshold.OFF
|
||||||
|
},
|
||||||
|
{
|
||||||
|
category: HarmCategory.HARM_CATEGORY_CIVIC_INTEGRITY,
|
||||||
threshold: HarmBlockThreshold.BLOCK_NONE
|
threshold: HarmBlockThreshold.BLOCK_NONE
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
|
|
||||||
48
utils/text.js
Normal file
48
utils/text.js
Normal 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()
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue