重磅发布 swift-huggingface:Hugging Face 全功能 Swift 客户端正式上线
Hugging Face正式推出全新Swift开发库swift-huggingface,为Swift开发者提供完整的Hugging Face Hub客户端。该库现已可作为独立包使用,并将很快集成至swift-transformers,取代其原有的HubApi实现。 此前,swift-transformers 1.0发布后,社区普遍反映下载模型功能存在缺陷:缺乏进度跟踪、无法断点续传、错误处理不完善。swift-huggingface正是为解决这些问题而全新打造,重点提升可靠性与开发体验。 在认证方面,新库采用灵活的TokenProvider模式,支持多种场景:开发环境可自动从环境变量或标准路径(如HF_TOKEN、~/.cache/huggingface/token)读取令牌;CI/CD中可显式传入静态token;生产应用则可安全地从Keychain中获取,实现自动刷新与安全存储。其认证机制与Python版huggingface_hub完全兼容,用户若已使用hf auth login登录,Swift端可自动识别。 对于需要用户登录的App,swift-huggingface内置完整的OAuth 2.0支持,可自动处理浏览器跳转、令牌存储、自动刷新和安全登出,开发者无需手动管理令牌流程。 在文件下载方面,新库支持精准进度跟踪和断点续传。下载大模型时,可实时显示完成百分比;中断后可使用保存的resumeData继续下载。下载整个模型仓库时,downloadSnapshot能智能识别已下载文件,仅更新变化内容,大幅节省带宽和时间。 更关键的是,swift-huggingface实现了与Python生态完全兼容的缓存结构,支持共享~/.cache/huggingface/hub目录,确保Swift与Python应用可共用同一缓存,避免重复下载。同时采用文件锁(flock)机制,防止多进程访问冲突。 除了下载,新库还提供完整Hub功能:可查询热门模型、获取模型详情、管理收藏集、查看讨论区内容。此外,还集成了Hugging Face推理服务客户端,支持通过textToImage等接口调用数百个模型,实现图像生成、文本推理等功能。 未来,项目将推进与swift-transformers的整合,并引入Xet存储后端,实现分块去重与更快的下载速度。 开发者可通过Swift包管理器添加:.package(url: "https://github.com/huggingface/swift-huggingface.git", from: "0.4.0")。欢迎试用并反馈体验,共同推动Swift AI生态发展。
