Chats más inteligentes, en el dispositivo.
Oculta los datos personales antes de enviar un mensaje, marca los abusos antes de que se publiquen, sugiere emojis mientras se escribe y transcribe notas de voz, todo en el dispositivo.
Modelos de IA pensados para chats
Funciona en chats con cifrado de extremo a extremo
Cada modelo se ejecuta en el dispositivo: sobre un mensaje antes de cifrarlo o después de descifrarlo. Tus servidores nunca ven el texto, así que añades la función sin debilitar el cifrado ni poner en marcha nada nuevo.
Sin coste por llamada
Revisa cada mensaje que la gente envía y recibe, sin factura por mensaje ni infraestructura que mantener. Tu equipo de producto puede añadir una función sin prever antes el gasto en la nube.
Más rápido que escribir
Emo sugiere emojis en menos de 2 ms, así que las sugerencias cambian con cada tecla. Tongue identifica el idioma de un mensaje entrante en decenas de microsegundos.
Ejemplos
Cada ejemplo reproduce resultados reales de los modelos. Abre la página de un modelo para probarlo con tu propio texto.
Redact · Ocultación de PII
Avisa antes de que alguien comparta un número de cuenta o de identidad
Redact detecta números de la Seguridad Social, tarjetas, IBAN y teléfonos en el mensaje mientras alguien lo escribe. Los números de tarjeta y los IBAN deben superar una suma de comprobación, así que esos avisos son fiables. Donde más falla Redact es en los nombres y las direcciones escritos en texto libre.
Toxic · Clasificación de discurso de odio · Beta
Pensárselo dos veces antes de publicar un mensaje hiriente
Toxic da a cada mensaje una puntuación de odio, abuso y amenaza antes de que se publique, en 35 idiomas. Cuando una puntuación es alta, ofrece a quien lo envía un momento para reescribirlo. Toxic es una ayuda de triaje, así que deja que una persona revise lo que marque en lugar de retirarlo directamente.
Moderator · Moderación de contenido
Pixela una imagen no deseada antes de que nadie la vea
Moderator revisa cada foto en el dispositivo de quien la envía, así que ninguna imagen pasa por un servidor para revisarla, ni siquiera en un chat con cifrado de extremo a extremo. Un desnudo llega pixelado, y quien lo recibe decide si verlo o denunciarlo.
Emo · Sugerencias de emojis
Emojis que se adaptan al mensaje
Emo actualiza las sugerencias con cada pulsación: 🍕 para una noche de pizza con el equipo, 🎂 para un cumpleaños en español, 🦷 para una cita con el dentista en francés.
Tongue · Identificación de idioma
Ofrece una traducción desde las primeras palabras
Tongue identifica el idioma de un mensaje entrante con unas pocas palabras, así que el botón Traducir solo aparece en los mensajes que lo necesitan. La traducción en sí la hace tu propio servicio de traducción.
Voz · Reconocimiento de voz
Lee una nota de voz en lugar de escucharla
Voz transcribe un mensaje de voz con la marca de tiempo de cada palabra: el texto aparece bajo la forma de onda y avanza mientras suena. Voz cubre 25 idiomas europeos, así que combínalo con Ear para identificar antes el idioma.
Primeros pasos
Instala los modelos que necesites desde un solo SDK, en Swift, Kotlin o JavaScript. El ejemplo revisa cada mensaje saliente con Toxic y Redact.
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: "Emo", package: "desert-ant-core")
.product(name: "Tongue", package: "desert-ant-core")
import Redact
import Toxic
let redact = Redact()
let toxic = Toxic()
// before a message is sent
let check = try await toxic.analyze(message)
if check.isToxic { askToRewrite(check.content) }
let r = try await redact.redaction(of: message)
if !r.items.isEmpty { offerToMask(r.items) }
Android
// build.gradle.kts (Maven Central)
implementation("ai.desertant:redact:4.3.0")
implementation("ai.desertant:toxic:4.3.0")
implementation("ai.desertant:emo:4.3.0")
implementation("ai.desertant:tongue: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 check = toxic.analyze(message)
if (check.isToxic) askToRewrite(check.content)
val r = redact.redaction(message)
if (r.redactedText != message) offerToMask(r)
Web, Node.js
npm i @desert-ant-labs/redact @desert-ant-labs/toxic @desert-ant-labs/emo @desert-ant-labs/tongue @litertjs/core
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 check = await toxic.analyze(message);
if (check.isToxic) askToRewrite(check.content);
const r = await redact.redaction(message);
if (r.items.length) offerToMask(r.items);
¿Estás creando un producto de chat?
Cuéntanos qué quieres añadir para tus usuarios y te ayudamos a elegir los modelos y a planificar la integración.






