PHPでAIアプリケーションを構築する
- PapiAI、Laravel、Symfonyを使った実践ガイド
第1部:基礎
第1章:AIネイティブなPHPアプリケーション
- 構築するもの
- 対象読者
- 必要なもの
- AIアプリケーションの解剖学
- PapiAIのインストール
第2章:初めてのエージェント
- プロバイダー
- エージェント
- レスポンス
- ストリーミング
- プロバイダーの切り替え
- フェイルオーバー
第3章:ツール — AIに手を与える
- ツール呼び出しの仕組み
- クロージャを使ったツールの作成
- PHPアトリビュートを使ったツールの作成
- ツールの設計原則
- エージェント型ループとmaxTurns
第4章:会話とメモリ
- Conversationオブジェクト
- メッセージ
- なぜコンテキスト管理が重要なのか
- コンテキストウィンドウの戦略
- 会話の永続化
第5章:構造化出力
- スキーマシステム
- スキーマの型
- 制約と修飾子
- バリデーション
第6章:検索拡張生成(RAG)
- RAGの仕組み
- PapiAIでのエンベディング
- ベクトルストア
- RAGパイプラインの構築
- ツールとしてのRAG
- RAGの品質のチューニング
- 本番環境での考慮事項
第7章:ミドルウェア
- MiddlewareInterface
- 組み込みミドルウェア
- ミドルウェアのスタッキング
- カスタムミドルウェア
第2部:Laravelプロジェクトの構築
第8章:プロジェクトのセットアップ — サポートエージェント
- スキャフォールディング
- 設定
- データベースのセットアップ
- システムプロンプト
第9章:ツールの構築
- OrderLookup
- KnowledgeBase
- InventoryCheck
- サービスプロバイダーへのツールの登録
- ドメインモデル
第10章:チャットコントローラーとストリーミング
- コントローラー
- ルート
- フロントエンド
- フローのテスト
第11章:セキュリティ
- プロンプトインジェクション
- ツールのセキュリティ
- APIキーの管理
- レート制限
- コスト管理
第3部:Symfonyプロジェクトの構築
第12章:プロジェクトのセットアップ — コンテンツパイプライン
- スキャフォールディング
- バンドルの設定
- データベーススキーマ
- 記事のスキーマ
第13章:コンテンツ生成パイプライン
- パイプライン・オーケストレーター
- Messengerを使った非同期処理
- コントローラー
- Twigテンプレート
- ワーカーの実行
第14章:パフォーマンス
- ストリーミング
- キャッシング
- モデルの選択
- 非同期処理
- トークンの最適化
- 接続の再利用
第15章:アーキテクチャのパターン
- サービスとしてのエージェント
- 関心事の分離
- プロンプトの管理
- ルーターパターン
- オブザーバビリティ(可観測性)
第16章:AIアプリケーションのテスト
- ツールのテスト
- モックプロバイダーを使ったテスト
- スキーマのテスト
- 統合テスト
第17章:デプロイと本番環境の懸念事項
- 環境設定
- ヘルスチェック
- モニタリング
- タイムアウト
- スケーリング
付録 A:プロバイダーリファレンス
- プロバイダーの機能マトリックス
- プロバイダーのコンストラクタパラメータ
付録 B:スキーマリファレンス
- 型
- 制約
- 検証メソッド
付録 C:ミドルウェアリファレンス
- RetryMiddleware
- RateLimitMiddleware
- CacheMiddleware
- LoggingMiddleware
- カスタムミドルウェア