Laravel13のAI SDKを調べてみた

アイキャッチ画像

Laravel内部でAIの呼び出しができるって?

Laravel13からAI SDKが正式リリースされたと知りました。

曖昧検索的なことができるらしい?AIのエージェントを作成できるらしい?くらいしか知らなかったので詳しく調べてみました。

laravel/ai

https://packagist.org/packages/laravel/ai

というライブラリを導入することで実現できそうです。

どうでもいい話ですが以前からある

laravel/ui

https://packagist.org/packages/laravel/ui

と混同してしまいそうです(笑)

導入手順は次の通りです。

ライブラリの導入とマイグレーションファイルの作成

マイグレーション実行で、AIとの対話の履歴を保存するためのテーブルが2つ作成されます。

APIキーの設定

.envに使用するAIのAPIキーを指定し

config/ai.php に使用したいAIを指定します。

あとはagentを定義すれば利用可能になります。

AI SDKのagentとは?

従来はAIごとのAPIに則ったように調整する必要がありましたが、laravel/aiがそのあたりを吸収してくれるので気にせずAIに質問を投げることが可能です。

エージェントは以下のように定義します。

Controller側からは次のようにAgentを呼び出せます。

またエージェント呼び出しの際、仮にgeminiが落ちていたらchatGPTに切り替えるといった指定も可能になっています。

他にどういったことが出来るの?

エージェント機能の他にも、次のように専用の機能ももっています。

  • Images:テキストから画像を生成
  • Audio:テキストを音声に変換(読み上げ)
  • Transcription:音声からテキストに変換(文字起こし)
  • Embeddings:文字列をベクター化してDBに保存しセマンティック検索に利用する
  • Reranking:検索結果を意味の近さで並び替え
  • Files:ファイルをAIプロバイダーに保存して会話で使う
  • Vector Stores:ファイルをベクター化して検索可能なナレッジベースを構築
  • Queueing:時間のかかるAI処理をバックグラウンドで実行

セマンティック検索

セマンティック検索

先ほどのEmbeddingsにも出てきましたが、AI SDKの機能を利用してセマンティック検索を利用可能になっています。

これまではイチゴを検索したい場合はイチゴと検索する必要がありましたが、「果物」「ショートケーキ」「ジャム」といった関係しそうなワードであっても検索が可能になります。

「いちご」「苺」といった表記揺れにも対応できます。

例えばFAQ検索を実装する場合で、も完全一致したQAだけではなく、関連しそうなQAも列挙することができます。

これはかなりPythonを意識した実装なのではないでしょうか?

まとめ

開発という立場の人間として、AIエージェントが実装されて開発のお手伝いやコードの生成などをしてくれるものかと勝手に思いました(切実な希望でした)が、そうではなく各AIの垣根を越えて質問やプロンプトを投げられるという機能でした。

これからAIを利用したシステム開発も増えてきます。AI利用のパッケージを構築して顧客が契約しているAIにあわせてカスタマイズ不要で納品できるというメリットにもなりそうですね。