为交易平台打造的 AI 模型
数据不离开设备
每个模型都在买家或卖家的手机、平板或笔记本电脑上运行。消息、银行信息和照片在发送或上传之前就完成检查,因此不会在服务器上处理。
没有按次调用费用
每件商品、每张照片、每条消息都能检查,不按次计费,也没有基础设施要运维。你的团队加一项检查,不必先预估云端开支。
说用户的语言
Redact 能在 27 种语言中隐藏个人数据:全部欧盟官方语言,外加挪威语和冰岛语。Toxic 能在 35 种语言中标记辱骂内容,从英语、德语、法语到阿拉伯语、日语和中文。
示例
每个示例都回放某个模型的真实输出。打开模型页面查看完整详情,也可以用你自己的文本试试 Schemer 或 Redact。
Redact · PII 脱敏
别让电话号码和银行信息出现在聊天里
用户输入消息时,Redact 就能找出其中的电话号码、IBAN 和银行卡号。你可以把它们拦下,让交易留在应用内完成,也可以在用户点击发送之前提醒一下。IBAN 和银行卡号必须通过校验和,因此这类识别很可靠。Redact 漏得最多的,是格式自由的姓名和地址。
Title · 标题与描述
根据描述自动生成商品标题
卖家描述完商品后,Title 会为它写一个简短的标题和摘要。Title 只在 Apple 平台上运行,也可能写错细节,所以要让卖家能编辑它写的内容。
Voz · 语音识别
让手机用户开口描述商品
卖家点一下麦克风,开口介绍商品,Voz 就边听边把描述写下来。实时转写只在 Apple 平台上提供;在 Android 和 Web 上,Voz 会在录音结束后转写整段录音。Voz 支持 25 种欧洲语言。
Moderator · 内容审核
NSFW 图片,在上传之前就识别出来
卖家每添加一张照片,Moderator 都会直接在手机上检查,因此被它标记的裸露照片不会到达你的服务器,也不会出现在商品页上。封禁账号之前,请先让人工复核被标记的图片。
Eye · 图像分类 · 测试版
为商品挑出最好的照片
每添加一张照片,Eye 都会给它打上标签:拍的是什么、清不清晰、好不好看。照片拍糊了,就请卖家重拍;再把最适合做封面的那张放在商品最前面。
Schemer · 结构化抽取 · 封闭测试
把买家的消息变成一份出价
Schemer 从买家的消息里读出价格、取货时间和地点,卖家点一下就能接受出价、敲定交易。消息里没提到的字段,Schemer 会留空。Schemer 目前处于封闭测试阶段,首个 SDK(面向 Swift)即将推出。
Toxic · 仇恨言论初筛 · 测试版
识别并隐藏聊天中的辱骂
Toxic 为每条消息中的仇恨、辱骂和威胁打分,支持 35 种语言。可以对接收者隐藏被标记的消息,也可以请发送者在点击发送之前修改。Toxic 是初筛工具,举报请交给人工复核,而不是直接删除。
开始使用
从同一个 SDK 安装你需要的模型,支持 Swift、Kotlin 和 JavaScript。示例用 Redact 拦下消息中的个人数据,用 Toxic 隐藏辱骂消息。
iOS, macOS, Linux, Windows
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core", from: "4.3.0")
// target dependencies
.product(name: "Redact", package: "desert-ant-core")
.product(name: "Toxic", package: "desert-ant-core")
.product(name: "Moderator", package: "desert-ant-core")
.product(name: "Voz", package: "desert-ant-core")
import Redact
import Toxic
let redact = Redact()
let toxic = Toxic()
// before a message is sent
let r = try await redact.redaction(of: message)
if !r.items.isEmpty { holdBack(r.items) }
// when a message arrives
let check = try await toxic.analyze(incoming)
if check.isToxic { foldAway(incoming, check.content) }
Android
// build.gradle.kts (Maven Central)
implementation("ai.desertant:redact:4.3.0")
implementation("ai.desertant:toxic:4.3.0")
implementation("ai.desertant:moderator:4.3.0")
implementation("ai.desertant:voz:4.3.0")
import ai.desertant.redact.Redact
import ai.desertant.toxic.Toxic
val redact = Redact(context)
val toxic = Toxic(context)
// before a message is sent
val r = redact.redaction(message)
if (r.redactedText != message) holdBack(r)
// when a message arrives
val check = toxic.analyze(incoming)
if (check.isToxic) foldAway(incoming, check.content)
Web, Node.js
npm i @desert-ant-labs/redact @desert-ant-labs/toxic @desert-ant-labs/moderator @desert-ant-labs/voz @litertjs/core onnxruntime-web
import { Redact } from "@desert-ant-labs/redact";
import { Toxic } from "@desert-ant-labs/toxic";
const redact = await Redact.load();
const toxic = await Toxic.load();
// before a message is sent
const r = await redact.redaction(message);
if (r.items.length) holdBack(r.items);
// when a message arrives
const check = await toxic.analyze(incoming);
if (check.isToxic) foldAway(incoming, check.content);
在做交易平台?
告诉我们你想为买家和卖家加上什么,我们会帮你挑选模型、规划集成。






