Discourse AI 插件提供了可以自建的鉴黄、鉴脏、情绪分析、嵌入 4 种功能,但在使用这些功能之前,需要先运行其对应的模型。
Discourse 官方已经为这些模型打包好了 Docker 镜像,所以我们可以很轻松地在服务器上运行模型。
注意:支持中文的嵌入模型multilingual-e5-small
特别占内存(在我这里容器占用了 30 G+),其他容器占用约 2 G / 个。
接下来,运行以下命令以启动 Discourse 提供的鉴脏、鉴黄、情感分析容器:
# 请先关闭 selinux,否则下载模型会出错无权限
mkdir /opt/tei-cache
docker run -itd --restart always -e "API_KEYS=xxx" --name detoxify -e BIND_HOST=0.0.0.0 -p8082:80 ghcr.io/discourse/detoxify:latest
docker run -itd --restart always -e "API_KEYS=xxx" --name nsfw -e BIND_HOST=0.0.0.0 -p8083:80 ghcr.io/discourse/nsfw-service:latest
docker run -itd --restart always --name sentiment --shm-size 1g -p 8084:80 -v /opt/tei-cache:/data ghcr.io/huggingface/text-embeddings-inference:cpu-latest --model-id cardiffnlp/twitter-roberta-base-sentiment-latest --revision refs/pr/30 --api-key xxx
其中请替换 API_KEYS
为你自己设置的密钥,以防止接口被盗用。
如果服务器位于国内导致 ghcr.io 链接速度过慢,可以修改为 ghcr.dockerproxy.com 以加速。
如果你的服务器配置满足运行嵌入模型的要求,可以运行以下命令启动 HuggingFace 提供的嵌入模型容器:
docker run -itd --restart always --name embeddings --shm-size 1g -p 8081:80 -v /opt/tei-cache:/data ghcr.io/huggingface/text-embeddings-inference:cpu-latest --model-id intfloat/multilingual-e5-large --api-key xxx
可选 3 个模型,具体见后台 ai embeddings model
配置项,中文使用multilingual-e5-large
。
同样需要设置--api-key
以防止滥用。
如果服务器位于国内导致 HuggingFace 链接速度过慢,可以添加 -e "http_proxy=http://192.168.x.x:xxxx" -e "https_proxy=http://192.168.x.x:xxxx"
到命令中以使用代理加速。
如果运行一切正常(可通过docker logs xxx
查看容器日志),那么就可以在 Discourse 后台配置插件了。
对于 Discourse 提供的 3 个容器,配置好对应的 API 端点和密钥即可,模型可自行选择。
对于 HuggingFace 的嵌入模型,需要配置 ai hugging face tei endpoint
和 ai hugging face tei api key
。在下方 ai embeddings model
选择使用的模型
,需要和前面启动容器填写的模型 ID 一致。
最后,启用各功能对应的总开关即可。