Windows AI API 启用的应用内容搜索功能允许应用开发人员使用 AppContentIndexer API 将智能搜索功能集成到其 Windows 应用中。 通过为应用内内容编制索引并通过语义查询进行搜索,用户不仅可以基于确切的关键字,还可以基于语义含义检索结果。 可以使用此语义索引通过特定于域的知识增强自己的 AI 助手,从而创建更个性化、特定于上下文的体验。
使用此 API 可以:
生成使用语义搜索和词法搜索的应用内搜索体验。 除了确切的关键字匹配项外,用户还可以按含义进行搜索,从而更轻松地查找相关信息。
通过启用本地知识检索来支持检索增强生成 (RAG)。 与大型语言模型(LLM)配对时,这样就可以从应用的知识库中检索最相关的内容,并生成更准确的上下文感知响应。
ApplicationContentIndexer API 目前仅在 Windows 应用 SDK 版本 2.0 实验版 2 中可用。
AI 开发库应用提供了 AppContentIndexer API 的交互式示例,使你能够试验应用内容搜索功能。 详细了解 AI 开发库,包括如何从 Microsoft 应用商店或 GitHub 上的源代码进行安装。
什么是 AppContentIndexer API?
AppContentIndexer API 允许应用使用基于关键字(词法)和基于含义的(语义)搜索来搜索其文本和图像内容,而无需开发人员了解基础复杂性。
在后台,它使用嵌入向量、矢量数据库和传统文本索引等高级技术,但这些细节是完全抽象的。 开发人员与简单的高级 API 交互。 为内容编制索引时,系统会存储嵌入向量(捕获语义含义)以及内容标识符。 然后,搜索请求根据关键字匹配或语义相似性返回标识符。 例如,搜索“小猫”可能会返回有关猫或小猫图像的相关文本。 语义搜索最适合描述性短语,因此“坐在窗台上的猫”之类的查询更有可能产生高度相关的结果。
索引会保存到磁盘,因此每次启动应用时都不需要重新编制索引。
语义和词法搜索
在内部,ApplicationContentIndexer 使用由嵌入提供支持的传统文本索引和基于新式矢量的搜索的组合。 这些详细信息被抽象化 – 开发人员无需直接管理嵌入模型、矢量存储或检索基础结构。
可以使用纯字符串查询索引。 查询可能返回:
- 词法匹配 - 精确文本匹配(包括图像中找到的文本)。
- 语义匹配 – 含义上相似的内容,即使字词不相同。
例如,对“kitten”的查询可能会返回对以下项的引用:
- 关于猫的文本条目,即使没有明确提及“小猫”一词。
- 视觉上包含小猫的图像。
- 包含“cat”或具有足够语义相关性的字词的图像中的文本内容。
支持的内容类型
ApplicationContentIndexer 支持添加以下类型的内容:
- 文本 - 纯文本或结构化文本内容。
- 图像 - 包括包含文本或可识别视觉元素的屏幕截图、照片或图像文件。
应用定义的内容标识符
AppContentIndexer 允许应用使用应用定义的内容标识符为项编制索引,从而支持应用管理的内容。 查询返回这些标识符,应用使用该标识符从其自己的数据存储中检索实际内容。
文本查询返回 AppManagedTextQueryMatch 对象,图像查询返回 AppManagedImageQueryMatch 对象,这两个对象仅包括 ContentId,而不是内容本身。
有关如何将此功能集成到应用中并使用 ApplicationContentIndexer API 的指南,请参阅: 快速入门:应用内容搜索
隐私和安全
语义索引和词法索引是代表应用生成的,并存储在应用的本地应用数据文件夹中。 作为专用预览版的一部分,此功能用于为非敏感应用程序内容编制索引。 为了获得最佳安全做法,请勿使用此功能为可能包含个人、机密或敏感信息的用户数据编制索引。
负责任 AI 的注意事项
此预览版中的语义索引和搜索功能不会应用任何形式的内容审查,也不会尝试检测或缓解基础模型引入的语义偏差。 开发人员负责在实现 AI 驱动的功能时评估和管理潜在风险。
建议在应用中构建 AI 体验时,查看 Windows 上负责任的生成 AI 开发指南 ,了解最佳做法。