v-modal/vmodal_sdk_swift_iphoneduo

V-Modal Visual Search SDK optimized for IOS Swift and Iphone DUO

Apple 平台 VModal SDK(Swift)

是什么 – 一个开源 Swift 包,允许 iOS 和 macOS 应用与 VModal 云服务通信。该服务提供 AI 驱动的多模态视频搜索(语义、语音转文本、OCR、基于图像)和上传/索引功能。SDK 处理认证、请求/响应模型、流式上传、进度报告、取消操作以及类型安全的结果,同时将 UI 完全保留在开发者的应用内。

核心功能

  • 语义视频与图像搜索 – 通过自然语言描述、语音内容、屏幕文字或视觉对象查找特定时刻。
  • ASR 与 OCR 索引 – 后端从上传的视频中提取语音和文本,使其可被搜索。
  • 流式上传 – 可直接从 URL 上传大视频文件,无需将整个文件加载到内存中;进度通过 AsyncStream 暴露,支持取消。
  • 作用域组织 – 项目、集合和流通过简单字符串(projectIDcollectionNamestreamName)标识。所有操作均作用于特定集合/流。
  • 运行时 API 密钥处理 – 可在运行时提供 Bearer Token,支持轮换或清除,无需重新构建应用;SDK 永不显示登录界面。
  • 原生 Swift API – 完全类型安全,支持 async/await,兼容 Swift 6.0 和 Xcode 26.6+,目标平台为 iOS 16+ 和 macOS 13+。

典型使用流程

  1. 添加包 – 在 Xcode 中通过 URL https://github.com/v-modal/vmodal_sdk_swift_iphoneduo 添加。
  2. 配置项目 – 使用 API 密钥配置:
    let keys = try MutableAPIKeyProvider("runtime-api-key")
    let project = try VModal.configure(projectID: "my_app", apiKeyProvider: keys)
    let scope = try project.scope(collectionName: "user_42", streamName: "uploads")
    
  3. 上传视频
    let source = try UploadSource(fileURL: videoURL)
    let task = scope.upload(source)
    for await p in task.progress { print("\(p.percent)%") }
    let result = try await task.result
    
  4. 自然语言或元数据搜索
    let results = try await scope.search(
        "cyclist in red jacket crossing the bridge",
        options: ScopedSearchOptions(searchSources: ["image"], limit: 20)
    )
    
  5. 处理取消 – 调用 task.cancel() 或在视图消失时取消异步搜索任务。

示例与工具

  • StarterIOS – 一个最小化应用,演示配置、集合发现、上传、索引和搜索。
  • Framebase 示例 – 展示如何浏览本地视频档案、准备并播放搜索结果。
  • SDKSimulation 工具 – 用于调试的各集成阶段模拟工具。
  • 文档 – 使用 DocC 生成的完整 API 参考和入门指南(Sources/VModalSDK/VModalSDK.docc)。

支持平台

  • iOS(SwiftUI 或 UIKit) – ✅
  • macOS – ✅
  • watchOS、tvOS、visionOS – ❌(本版本不支持)
  • 其他平台 – ❌(请使用对应环境的 VModal SDK)

前置条件

开发工作流

git clone https://github.com/v-modal/vmodal_sdk_swift_iphoneduo.git
cd vmodal_sdk_swift_iphoneduo
bash install.sh check          # 验证工具链与依赖
bash build.sh analyze          # 静态分析
bash test.sh test              # 单元测试(离线)
# 实时集成测试(需要凭证)
bash test.sh live

该仓库还提供帮助脚本,用于列出模拟器、选择设备和启动示例应用。

许可证 – MIT。


总结 – 如果你需要在 Apple 应用中添加 AI 驱动的视频搜索或可搜索的视频上传功能,VModal 的 Swift SDK 提供了一个小型、类型安全的 VModal 云服务封装,将向量索引、语音转文本、图像识别等繁重任务交由后端处理,而你只需专注于纯 Swift/SwiftUI 开发。

相关

  • 项目
  • 项目
  • 项目
  • 项目