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

2023-07-05 14:59:06 +08:00
 brader
用过 chatgpt 产品的都知道,返回内容都是那种打字机效果,逐字返回显示的。
那么问题来了,这种如何做关键词屏蔽呢?
好像服务端做比较困难,因为关键词有多个字的,如果服务端等整句话检测完再返回内容给前端的话,体验就太糟糕了。
我目前能想到的兼顾原有用户体验的方式是放在客户端来检测屏蔽关键字,客户端每次接收到服务端的返回的字,就拼接之前接收到的内容,检测关键字,检测到了,就把展示的内容屏蔽替换。这样就还是有打字机的实时效果。

不知道各位有没有更好的实现想法,欢迎讨论
8199 次点击
所在节点    程序员
101 条回复
brader
2023-07-05 16:42:52 +08:00
@InDom 大佬,6
brader
2023-07-05 16:43:17 +08:00
@fzls 这种也不是不行
EminemW
2023-07-05 16:48:46 +08:00
你这个不就是滑动窗口吗,每次都对滑动窗口中的文字做识别
harrozze
2023-07-05 16:58:19 +08:00
@brader #10 这种相对来说比较可行的。收到 4 个字,然后内容检测的时候其实是收到的所有原文做检测。如果是页面或 app 产品的话,可以在返回的 json 里用个指令表明前端需要用返回的内容做完整替换,或回退多少个字以后替换,这样前段遇到你说的问题时,第一次会显示“……xx 科学上”,第二次就变成”……xx****yyy“。如果是对外提供 api 的话,就不太好办了,第三方前端就有可能不按你给的指令去替换历史内容。
xupefei
2023-07-05 16:58:47 +08:00
ring buffer 上套一个 AC 自动机,buffer 容量等于最长的关键词长度。
wqhui
2023-07-05 17:02:05 +08:00
@brader 用滑动窗口
brader
2023-07-05 17:07:21 +08:00
@wqhui 嗯,初步确定用这个,考虑做到服务端还是前端
brader
2023-07-05 17:08:03 +08:00
@harrozze 嗯,只考虑自家产品,API 不给别人用的,别人薅羊毛的,要搞事,自己被封了不关我事
gaobh
2023-07-05 17:09:33 +08:00
@fzls #39 wps 内测的 AI 功能就是这样的方案,容易截图
nothingistrue
2023-07-05 17:10:45 +08:00
逐字返回,如果不只是前端假逐字显示,而是前后端同步逐字返回,即完全的实时逐字对话,那这行为本身就是「违法」,你竟然还在这里想怎么做屏蔽。
dode
2023-07-05 17:12:43 +08:00
撤回消息啊
harrozze
2023-07-05 17:14:19 +08:00
@brader #48 那样的话就可以,返回的 json 里加个额外字段用于描述这种替换或者回退清除指令,if 有{ 先执行指令},然后再直接结果内容的追加
popvlovs
2023-07-05 17:21:45 +08:00
没有实践过,仅仅提供一个思路
如果敏感词屏蔽是通过正则来实现的话,有些正则引擎是支持 streaming mode 的,比如 hyperscan
aduangduang
2023-07-05 17:32:51 +08:00
滑动窗口啊
shyrock
2023-07-05 17:46:01 +08:00
N 个字的 buf ( N=max(len(屏蔽字)),就解决了。非常直观,用不到啥理论基础。
sampeng
2023-07-05 18:46:27 +08:00
而且敏感词是国内特色。理论上你用不了 gpt 服务。那既然这样了,你利用他商业化。。。去做敏感词。。是不是很搞笑。。

而且 prompt 你也可以让他把你所有的敏感词都替换成**。

比如: 所有的回答,出现[哈哈]的全部替换成**返回给我
ily433664
2023-07-05 19:02:25 +08:00
按段检测
比如整个返回的内容是“abcedfg,hijklmn,opqrst”
接受到“abcedfg”后进行检测,逐字返回;前一段返回的时候,已经在接收“hijklmn”了,同理,接收完“hijklmn”进行检测,然后逐字返回
这样的话相当于延迟为最大一段话的检测时间
gkiwi
2023-07-05 19:42:53 +08:00
SSE 返回基本都是整句的,不会中间断开。琢字是前端效果~
amywlp
2023-07-05 19:48:48 +08:00
直接审查问题呗,不用那么麻烦去审查答案了。
AhECbt
2023-07-05 20:01:47 +08:00
讨论这种问题就好像黑奴农场里的黑奴围在断头台前,深情的讨论如何帮助奴隶主给每个黑奴都带上一副合适的嚼子一样可笑。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://yangjunhui.monster/t/954296

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX