diff --git a/applogic/gensokyo.go b/applogic/gensokyo.go index e3c2e9a..43e48dd 100644 --- a/applogic/gensokyo.go +++ b/applogic/gensokyo.go @@ -228,6 +228,24 @@ func (app *App) GensokyoHandler(w http.ResponseWriter, r *http.Request) { fmt.Printf("收到api参数: %s\n", api) } + // 从URL查询参数中获取skip_lang_check + skipLangCheckStr := r.URL.Query().Get("skip_lang_check") + + // 默认skipLangCheck为false + skipLangCheck := false + + if skipLangCheckStr != "" { + // 尝试将获取的字符串转换为布尔值 + var err error + skipLangCheck, err = strconv.ParseBool(skipLangCheckStr) + if err != nil { + // 如果转换出错,向客户端返回错误消息 + fmt.Fprintf(w, "Invalid skip_lang_check value: %s", skipLangCheckStr) + return + } + fmt.Printf("收到 skip_lang_check 参数: %v\n", skipLangCheck) + } + // 打印日志信息,包括prompt参数 fmtf.Printf("收到onebotv11信息: %+v\n", string(body)) @@ -335,8 +353,8 @@ func (app *App) GensokyoHandler(w http.ResponseWriter, r *http.Request) { } } - // 进行语言判断拦截 - if len(config.GetAllowedLanguages()) > 0 { + // 进行语言判断拦截 skipLangCheck为false时 + if len(config.GetAllowedLanguages()) > 0 && !skipLangCheck { if utils.LanguageIntercept(newmsg, message, selfid) { fmtf.Printf("不安全!不支持的语言,可在config.yml设置允许的语言,allowedLanguages配置项,Q: %v", newmsg) // 发送响应 diff --git a/template/config_template.go b/template/config_template.go index 9b27cb8..5d0be0e 100644 --- a/template/config_template.go +++ b/template/config_template.go @@ -61,7 +61,7 @@ settings: #] #语言过滤 - allowedLanguages : ["cmn"] #根据自身安全实力,酌情过滤,cmn代表中文,小写字母,[]空数组代表不限制. + allowedLanguages : ["cmn"] #根据自身安全实力,酌情过滤,cmn代表中文,小写字母,[]空数组代表不限制. /gensokyo api 可传参数skip_lang_check=true让某些信息跳过检查 langResponseMessages : ["抱歉,我不会**这个语言呢","我不会**这门语言,请使用中文和我对话吧"] #定型文,**会自动替换为检测到的语言 questionMaxLenth : 100 #最大问题字数. 0代表不限制 qmlResponseMessages : ["问题太长了,缩短问题试试吧"] #最大问题长度回复.