跳到主要内容

EdgeData API 参考

EdgeData 为 Edge App 提供本地数据收集和分类 primitive。

它是支撑基础设施。App 专属 业务规则应留在 app 内。

Edge

public enum Edge

本地数据操作的静态 API。

方法描述
bootstrap(dbQueue:trainingDataSink:)使用本地 GRDB queue 和可选训练 sink 初始化 EdgeData。
registerSchema(_:)在启动时注册 App 数据形状。
schema(_:)查找已注册的数据形状。
registeredSchemaNames()列出已注册名称。
recordRaw(fact:customFactId:)记录未分类的本地数据。
record(fact:)记录已经分类的本地数据。
recordEvent(...)记录 AI 交互事件。
countFeedbackEvents(namespace:)统计带 feedback 的事件。
queryFacts(namespace:schema:status:limit:)查询本地 fact。
countFacts(namespace:schema:status:)统计本地 fact。
correctClassification(...)将用户 correction 应用到分类结果。
onClassified(_:)注册分类成功回调。
onClassificationFailed(_:)注册分类失败回调。
fetchFact(id:)按 ID 获取单个 fact。
reclassifyAsync(...)请求重新分类。

核心类型

类型描述
Sensitivity.localOnly.meshOk.trainingOk
FactStatus本地分类生命周期状态。
FieldTypeApp 数据形状支持的字段种类。
FieldDef字段声明。
SemanticLabels主时间戳、值和实体字段的标签。
SchemaDefApp 数据形状声明。
RawFact等待分类的原始本地 payload。
Fact已分类的本地 payload。
QueryStatus针对已分类、待处理、失败或全部 fact 的查询过滤器。

ClassificationDaemon

public actor ClassificationDaemon

原始本地数据的后台分类器。

API描述
ClassificationDaemon.shared共享 daemon。
start(namespace:candidateSchemas:llmClient:toolNames:promptBuilder:)为某个 namespace 启动分类。
stop()停止 daemon。
wake()从 idle sleep 中唤醒 daemon。

EdgeClassificationLLMClient

public protocol EdgeClassificationLLMClient: Sendable

app 实现此协议,以提供本地 LLM 分类。

要求描述
isBusy本地 LLM 是否正忙于面向用户的工作。
generate(messages:)生成分类响应。
generate(messages:toolNames:)可选的 工具感知 生成路径。

ClassificationParser

public enum ClassificationParser

解析本地 LLM 分类输出。

方法描述
parse(llmOutput:candidateSchemas:)解析并验证分类响应。
stripMarkdownCodeFence(_:)移除 Markdown code fence wrapper。
extractJSONObject(_:)从文本中提取第一个 JSON object。

隐私指南

使用 Sensitivity 将 仅本地 数据留在本地。不要在日志、分析或协作消息中包含原始用户 correction 文本。