Desert Ant Labs

更聪明的笔记,就在设备上。

用户边写边为笔记起标题、打标签,为小标题推荐表情符号,把潦草的草图变成规整的形状,还能转写口述和会议,全部在设备上完成。

为笔记打造的 AI 模型

数据不离开设备

每个模型都在用户的手机、平板或笔记本电脑上运行。私密日记、健康笔记和公司数据都不会在服务器上处理,因此任何笔记都能放心使用这些功能。

没有按次调用费用

给每篇笔记起标题、给每张图片分类、转写每一场会议,都不按次计费。你的团队加一项功能,不必先预估云端开支。

离线可用

模型下载完成后,所有功能都无需联网。在飞机上,或在没有信号的会议室里,标题、听写和草图整理照样能用。

示例

每个示例都回放某个模型的真实输出。打开模型页面查看完整详情,也可以用你自己的文本或草图试试 Gist、Emo 或 Shapes。

Title · 标题与描述

为每篇笔记加上标题

用户写作时,Title 会建议一个简短的标题和描述,并随着笔记变长更新两者。Title 只在 Apple 平台上运行,也可能写错细节,所以要让用户能编辑它写的内容。

3-8标题词数另附一到两句话的描述
286MB设备端Apple 芯片,通过 MLX
Apple平台iOS、macOS、tvOS 和 visionOS
Title

Gist · 内容主题标注

自动给笔记打标签

Gist 从 36 个主题标签中为每篇笔记分配一个或多个。用这些标签把笔记整理到各个主题分页,并让用户按主题筛选搜索结果。Gist 支持 101 种语言。

91%正确主题进入前 3572 条人工标注的真实帖子
36主题
101语言
Gist

Emo · 表情符号建议

为小标题和列表项推荐表情符号

一行写完,Emo 就为它推荐一个表情符号:续办护照配 🛂,电费账单配 💡,团队会议配 👥。每条建议用时不到 2 毫秒,跟得上用户打字的速度。

<2ms每条建议
5MB设备端Apple;Android 和 Web 上为 11 MB
22语言
Emo

Eye · 图像分类 · 测试版

给图片加标签并分类

Eye 能识别白板、截图、地图和照片,并认出每张照片里有什么。用它按类型整理图片,用户就能很快找到周二的那张白板。

98%截图标签正确率默认阈值下;收据为 100%
5.5ms每张照片Neural Engine,搭载 Apple M6 的 Mac
48MB设备端Apple;Android 和 Web 上为 66 MB
Eye

Voz · 语音识别

直接听写进笔记

用户说话时,Voz 几个词几个词地把语音写进笔记。实时转写只在 Apple 平台上提供;在 Android 和 Web 上,Voz 会在录音结束后转写整段录音。Voz 支持 25 种欧洲语言,可以搭配 Ear 先识别语种。

2s10 分钟音频iPhone 17 Pro
25语言欧洲语言
337MB磁盘占用Apple,首次使用时下载
Voz

Who · 谁说了什么 · 测试版

标出谁说了什么

把 Who 和 Voz 搭配使用,会议记录的每一行都会标明是哪位说话人说的。Who 在每五分钟内最多能区分四位说话人,在整场会议中能区分更多。每个人都有自己的麦克风时(比如视频通话),Who 的效果最好。

3s一段 50 分钟的访谈MacBook Pro(M5 Pro)
12.6%会议中的错误率AMI 会议,越低越好
81MB设备端Apple;Android 和 Web 上为 32 MB
Who

Shapes · 形状识别

把潦草的草图变成规整的形状

在句子下面划线、圈出一个词,或画一张流程图,Shapes 会在 10 毫秒内把每一笔都变成规整的形状。会议上画的笔记和图表,整洁到可以直接分享。

<10ms每次识别
0.7MB设备端Apple;Android 和 Web 上为 0.95 MB
13形状种类包括箭头、心形和云朵
Shapes

开始使用

从同一个 SDK 安装你需要的模型,支持 Swift、Kotlin 和 JavaScript。示例用 Gist 和 Emo 给笔记打标签;在 Apple 平台上,还会用 Title 为笔记写标题。

iOS, macOS, Linux, Windows

安装
// Swift Package Manager
.package(url: "https://github.com/Desert-Ant-Labs/desert-ant-core.git", from: "4.3.0",
        traits: ["MLX"])
// target dependencies
.product(name: "Title", package: "desert-ant-core")
.product(name: "Gist", package: "desert-ant-core")
.product(name: "Emo", package: "desert-ant-core")
示例 - Swift
import Title
import Gist
import Emo

let titles = try await Titles(directory: modelFolder)
let gist = Gist()
let emo = Emo()

// after a pause in typing
let card = try await titles.describe(note)
let topic = try await gist.classify(note).first
let emoji = try await emo.suggestions(for: note).first?.emoji

Android

安装
// build.gradle.kts (Maven Central)
implementation("ai.desertant:gist:4.3.0")
implementation("ai.desertant:emo:4.3.0")
示例 - Kotlin
import ai.desertant.emo.Emo
import ai.desertant.gist.Gist

val gist = Gist(context)
val emo = Emo(context)

// after a pause in typing
val topic = gist.classify(note).firstOrNull()
val emoji = emo.suggestions(note).firstOrNull()?.emoji

Web, Node.js

安装
npm i @desert-ant-labs/gist @desert-ant-labs/emo @litertjs/core
示例 - TypeScript
import { Emo } from "@desert-ant-labs/emo";
import { Gist } from "@desert-ant-labs/gist";

const gist = await Gist.load();
const emo = await Emo.load();

// after a pause in typing
const [topic] = await gist.classify(note);
const [suggestion] = await emo.suggestions(note);

在做笔记应用?

告诉我们你想为用户加上什么,我们会帮你挑选模型、规划集成。