AnyLanguageModel:苹果平台本地和云端LLM的统一API
来源: InfoQ - 后端
苹果平台的开发人员在使用语言模型时经常面临一个碎片化的生态系统。Core ML或MLX等本地模型提供了隐私和离线功能,而高级功能则由像OpenAI、Anthropic或Google Gemini这样的云服务提供。AnyLanguageModel是一个新发布的Swift包,它通过为本地和远程模型提供统一的API来简化集成。
AnyLanguageModel可以与苹果的Foundation Models框架无缝协作,允许开发人员在保持会话和响应结构不变的情况下,用最少的代码更改完成切换。它支持Core ML、MLX、llama.cpp/llama.swift、Ollama托管模型,以及来自OpenAI、Anthropic、Google Gemini和Hugging Face的云服务。Swift的包特性使开发人员可以只包含他们需要的后端,从而实现了依赖最小化。
AnyLanguageModel还扩展了Foundation Models现有的能力,支持视觉-语言提示,允许开发人员在进行文本查询的同时发送图像。这包括与Anthropic Claude等模型的交互,使开发人员可以执行图像描述、文本提取和视觉分析等任务,而不必等待苹果自己的框架支持这些功能。
Mattt是这个包的开发人员,他解释了为什么要面向Foundation Models API:
大多数应用程序都搭配使用了某个提供商提供的本地和远程模型,而实现这些模型的良好协同是一件令人头疼的工作。苹果的Foundation Models提供了一种“公共选项”——这是内置于所有macOS和iOS设备中的一个备用方案。由于该功能仅通过Foundation Models提供,所以以它为基础实现支持其他供应商的API是合乎逻辑的。
该库目前的版本是pre-1.0,正在进行的开发旨在实现工具调用、结构化输出生成和本地推理性能优化。配套的演示程序chat-ui-swift展示了流式响应、聊天持久化、苹果Foundation Models集成以及Hugging Face OAuth认证。该应用程序旨在作为开发人员探索、扩展以及将该API适配到自己项目的起点。
社区的早期反馈非常积极。Krzysztof Zabłocki评论道:
干得好,伙计。我已经在一个新项目中使用了它,迫切期待你为Generable添加OpenAI支持的分支能尽快落地。
AnyLanguageModel和chat-ui-swift演示程序均已在GitHub上提供,开发人员可以进行实验、报告问题和贡献功能增强。该项目旨在减少AI应用开发过程中的障碍,同时在苹果平台上推动实现一致的多供应商大型语言模型工作流。
声明:本文为InfoQ翻译,未经许可禁止转载。