Разработчик Мэтт Тиссен (Matt Thiessen) выпустил библиотеку Any Language Model для Swift. Она полностью совместима со стандартной Foundation Models, и с ней можно использовать любые LLM, а не только решения от Apple.
В 2025 году Apple представила библиотеку Foundation Models. С её помощью в приложения можно интегрировать модели от Apple: локальную LLM с 3 млрд параметров или облачную VLM. Разработчики в сообществе оценили удобный синтаксис адаптера и оптимизацию под устройства экосистемы, но привязка к определённым нейросетями разрушила потенциальную универсальность.
Проблему решил Мэтт Тиссен. В его API-совместимой библиотеки Any Language Model разработчики могут сами выбирать бэкенд для запуска моделей. Например, можно использовать Apple Foundation Models, CoreML, MLX, llama.cpp (GGUF), OpenAI API, Anthropic API или Google Gemini API. При этом не надо создавать отдельный адаптер для каждого LLM-провайдера.
Для установки Any Language Model в файле Package.swift надо указать следующую зависимость:
dependencies: [ .package(url: «https://github.com/mattt/AnyLanguageModel.git», from: «0.3.0») ]
Для снижения размера готового приложения можно импортировать только нужные провайдеры. Например, код импорта адаптеров для CoreML и MLX выглядит так:
dependencies: [ .package( url: «https://github.com/mattt/AnyLanguageModel.git», branch: «main», traits: [«CoreML», «MLX»] // Enable CoreML and MLX support ) ]
Пример использования Any Language Model выглядит следующим образом:
import AnyLanguageModel struct WeatherTool: Tool { let name = «getWeather» let description = «Retrieve the latest weather information for a city» @Generable struct Arguments { @Guide(description: «The city to fetch the weather for») var city: String } func call(arguments: Arguments) async throws -> String { «The weather in (arguments.city) is sunny and 72°F / 23°C» } } let model = SystemLanguageModel.default let session = LanguageModelSession(model: model, tools: [WeatherTool()]) let response = try await session.respond { Prompt(«How’s the weather in Cupertino?») } print(response.content)
Код библиотеки доступен на GitHub. Для работы нужен Swift 6.1+ и iOS 17.0, macOS 14.0 или visionOS 1.0.
Источник: habr.com