逐字返回的内容如何做关键词屏蔽

查看 251|回复 22
brader
OP
  
@putyy 我说的也差不多意思,要完整再检测,客户端也可以这么做,而且自己就能直接换了,不需要通过服务端下发指令来交互替换
MartinDai   
关键词的长度总是有限的吧,也不可能能太长,假设是 N 吧,后端做一个流式输出的桥接,里面存放 N 个字符的 buffer ,gpt 返回第 N+1 个字符以后,每接受一个字符就检查一遍关键词然后往前端输出一个字符,这样前端得到的结果也就比 gpt 晚 N 个字符
InDom   
@brader #13 不一样,这个做法是有点像白名单机制,只有这个字/词一定没有在黑名单中出现时才会输出到客户端。
就是把收到的字,都认为在黑名单中,一直等明确这个字与后面接受的字不在黑名单后,才把这个字输出到客户端。
相当于你收到的每一个字,都假设后面还没有收到的字与他所组成的词就是敏感词,等收到了更多的字,发现确实没有的时候,就将这个字输出到客户端,然后继续匹配剩下缓冲区的字有没有与词库有重合。
还是我上面的例子:(括号内为未输出的缓冲区)后面的是本次接收到的字符,没有就说明没有接收()
锄:在词库中没有,安全输出
禾:命中词库:禾日苗,不输出
(禾)日:命中词库:禾日苗,不输出
(禾日)当:未命中词库,输出第一个字。
-- (日):命中词库:日当午,不输出。
(日当):命中词库:日当午,不输出。
(日当)午:全量匹配,替换,输出 ***
您需要登录后才可以回帖 登录 | 立即注册

返回顶部