2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Apple Intelligence を Dify や Cursor のモデルプロバイダーに設定する

Posted at

背景

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 は開発者向けプレビューであり、正式リリース時には仕様が変更される可能性があります。

仕組み

仕組みは至って簡単。

  1. HTTP サーバーを起動する macOS アプリ
  2. OpenAI API 互換の JSON を受け取る
  3. Foundation Models Framework に渡す
  4. 結果を 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 で登録します。

image.png

いざ通信!

アプリ側のスクショやソースコードは諸事情あって公開できませんが、Dify から投げた質問はこんな感じ。

image.png

いや、ナスタシアって誰!?
アニメはあまり得意じゃないっぽいです。

パフォーマンス的には、M1 MacBook Air で測定したのですが、ローカルで動く他の OSS の LLM に比べてかなり速いです。(この辺もNDAに抵触する可能性があるのであまり記載はできませんが、もしかしたらローカルではなくプライベートクラウド上で動いているのかも?)

全てはお見せはできませんが、Dify のナレッジをベースに質問するとそれなりに良い回答が得られました。

まとめ

NDA があるので歯切れの悪い記事になりましたが、現時点では技術的には可能のようです。
今後制限される可能性はありますが、これができればさらに AI アプリの可能性が広がりそうですね。正式公開が楽しみです!

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?