背景
WWDC25 の発表で、Apple の次期 OS (iOS/iPadOS/macOS) で、Foundation Models Framework が導入されました。これにより、Apple Intelligence という ローカルで動作する LLM がより簡単に利用可能になります。今までの LLM 利用の課題として、アプリケーション内部での AI 利用は、こんな感じでした
- 商用LLMのAPIを使用 (要登録)
- 従量課金モデル (要お金)
- クラウドへのリクエスト送信(要ネットワーク)
これが、Foundation Models Framework を利用することで、オフラインだったり、従量制のコストをかけずに実現できるようになるわけです。
で、これをアプリ内だけで使うのは「もったいない」と、Foundation Models Framework の実装を OpenAI API の仕様に変換できれば、Apple Intelligence を Dify や Cursor のモデルプロバイダーとして使えるのでは?と言うことで、Claude Code と一緒に作ってみました。
本記事は技術的な概念実証を目的としており、実装の詳細やソースコードは含まれておりません。また、macOS 26 は開発者向けプレビューであり、正式リリース時には仕様が変更される可能性があります。
仕組み
仕組みは至って簡単。
- HTTP サーバーを起動する macOS アプリ
- OpenAI API 互換の JSON を受け取る
- Foundation Models Framework に渡す
- 結果を OpenAI API 形式で返す
めっちゃシンプル。
バイブコーディング開始
早速 Claude Code に指示
このプロジェクトは、Mac OS アプリのプロジェクトです。アプリ構成はシンプルで、起動したらリッスンポートを指定するだけで、そのポートでHTTPをサーブします。エンドポイントはOpenAI APIに準拠して、macOS 26 の Foundation Models Framework の推論結果を OpenAI API に準拠した形式で応答するだけのプロキシのようなものです。遠慮せず全力を尽くして下さい。
プロンプトはこれだけですが、Foundation Models Framework 以前に HTTP サーバやストリーミングレスポンス、あと、アプリのパーミッション的なところで結構つまずきました。
ソースを公開できないのが残念ですが、下記の実装を伝えれば、バイブコーディングで誰でも作れると思います。
- BSD Socket を使用した低レベルな HTTP サーバー
- OpenAI API 仕様に完全準拠
- ストリーミングレスポンス対応
- エラーハンドリング
- CORS 対応
Dify のモデルプロバイダーに登録
Dify 側は、OpenAI-API-compatible で登録します。
いざ通信!
アプリ側のスクショやソースコードは諸事情あって公開できませんが、Dify から投げた質問はこんな感じ。
いや、ナスタシアって誰!?
アニメはあまり得意じゃないっぽいです。
パフォーマンス的には、M1 MacBook Air で測定したのですが、ローカルで動く他の OSS の LLM に比べてかなり速いです。(この辺もNDAに抵触する可能性があるのであまり記載はできませんが、もしかしたらローカルではなくプライベートクラウド上で動いているのかも?)
全てはお見せはできませんが、Dify のナレッジをベースに質問するとそれなりに良い回答が得られました。
まとめ
NDA があるので歯切れの悪い記事になりましたが、現時点では技術的には可能のようです。
今後制限される可能性はありますが、これができればさらに AI アプリの可能性が広がりそうですね。正式公開が楽しみです!