概要:FastAPIベースAIエージェントの全体像
AI求人作成くんは、FastAPIを中核に据えたイベント駆動型のAIエージェントです。求人原稿の生成・最適化・配信を、マルチAI(ChatGPT/Claude/Gemini/DeepSeek)と各種ツールを連携させながら、安定かつ高速に実行します。
FastAPIはAPIゲートウェイとして機能し、認証やルーティングを担当。さらに、オーケストレーターが処理フローを制御し、アダプタ層が外部AI、求人媒体、画像生成、Web検索(Perplexity AI)などの外部サービスと接続します。これにより、求人原稿の生成から配信までを一体的に自動化できます。
主要コンポーネント
API Gateway(FastAPI):OAuth2/OIDCに対応し、4段階権限の判定やレート制御を実行。
Agent Orchestrator:非同期ワークフローを制御し、失敗時のフォールバックやリトライ処理を管理。
LLM Adapter:ChatGPT/Claude/Gemini/DeepSeekをポリシーに応じて選択・切替。
Search Tool:Perplexity AIと連携し、最新情報を検索して原稿生成に反映。
Image Service:DALL-E/Geminiによる画像生成を実行し、クリエイティブの安全ガードを適用。
Template/Style Service:プリセットテンプレート管理と、絵文字制限/フォーマル/カジュアル/ポップなどのスタイル設定を提供。
Job Board Connectors:Indeed/マイナビ/doda/エンゲージなど25以上の求人媒体API・仕様へマッピング。
CSV Worker:最大200件の同時生成をキュー処理で実行し、優先度や冪等IDを管理。
Storage/Cache:メタデータはRDBに保存し、原稿や画像はオブジェクトストレージへ格納。結果はキャッシュで高速化。
Observability:OpenTelemetryでトレースを取得し、メトリクスやログを監視して運用状況を可視化。
非同期実行とスケジューリング
Uvicorn上で動作するFastAPIは、軽量なリクエスト処理に専念し、負荷の高い生成処理はワーカーへ委譲します。処理はキュー(例:Redis系)で並列度を制御しながら実行されるため、CSV一括処理など大量生成のケースでもスループットを維持できます。
リクエスト・ライフサイクル
認証・権限確認:4段階権限(オーナー/管理者/編集者/閲覧者)で操作可否と配信権限を判定。
プリセット選択:職種別テンプレートと媒体別フィールドマッピングをロード。
スタイル適用:フォーマル/カジュアル/ポップ、絵文字制限、トーンの一貫性ルールを適用。
Web検索(任意):Perplexity AIで市場・給与・スキルの最新情報を取得し、根拠付きでプロンプト拡張。
マルチAI選定:コスト/速度/日本語安定性/長文要件をもとにモデルを自動選択。必要に応じてClaude→ChatGPT→Gemini→DeepSeekのフォールバック。
原稿生成:職務内容、魅力、要件、福利厚生、媒体固有の制約長に合わせて構成。
画像生成(任意):DALL‑E/Geminiでキービジュアルを作成。ブランド語彙・禁止表現フィルタを適用。
バリデーション:媒体ごとの必須項目・最大文字数・記号制限を検証し、自動リライト。
出力:UIプレビュー、媒体別エクスポート、API/Webhook連携で配信。
マルチAIルーティングの設計
アダプタ層では、プロンプトの特性(長文、要約、日本語精度、画像要否など)と、SLA要件(遅延、コスト)をもとに、ポリシーベースで最適なモデルを選択します。失敗時には自動フォールバックを行い、応答時の温度、最大トークン数、職種ごとの語彙辞書は統一して管理します。さらに、検索ツールから取得した根拠URLをメタデータとして保持することで、説明責任を担保します。
CSV一括生成パイプライン
CSVアップロード時には、各行をジョブ単位に分割し、最大200件を同時実行します。重複投入は冪等キーで防止し、部分的な失敗は指数バックオフで再試行します。媒体ごとのAPI制限に応じたレートリミット制御と、同一企業・同一職種に対するテンプレートキャッシュにより、レイテンシを短縮します。生成結果は成功/要修正/失敗に自動分類され、差分のみ再実行できる構成です。
画像生成ワークフロー
DALL-EやGeminiによる画像生成は、求人要約 → ビジュアル要件定義 → 安全フィルタ → サイズ変換 → CDN登録の順でオーケストレーションします。生成画像は媒体ごとの推奨アスペクト比に合わせて自動トリミングされ、あわせて代替テキストも自動生成します。
求人媒体コネクタ(25媒体対応)
Indeed、マイナビ、doda、エンゲージなどの媒体ごとの差分は、コネクタ層のマッピングで吸収します。必須項目、勤務地表記、給与レンジ、職種コードなどの互換情報はテンプレートとして保持し、媒体横断での整合性チェックを実行します。配信方式は、API連携、CSV出力、手動エクスポートのいずれにも対応します。
権限・監査・コンプライアンス
4段階権限は、プロジェクト、媒体、テンプレート単位で細かく設定できます。すべての操作は監査ログに記録され、原稿の版管理や差分比較にも対応します。公開前には、差別表現や誤認リスクをLintで検知し、必要に応じて自動修正案を提示します。
運用とスケーリング
システムは水平スケール前提で設計し、APIサーバーとワーカーを独立してオートスケールさせます。キャッシュとキューによって突発的な負荷を吸収し、OpenTelemetryによる分散トレースでボトルネックを可視化します。さらに、ゼロダウンタイムのデプロイ戦略と、モデル切替のフラグ管理を組み合わせることで、安定した運用を実現します。
操作手順(UIベース)
新規プロジェクトを作成し、媒体を選択(Indeed/マイナビ/doda/エンゲージ等)。
プリセットテンプレートを選ぶか、新規作成。
スタイル設定でフォーマル/カジュアル/ポップと絵文字制限を指定。
Web検索(Perplexity AI)と画像生成(DALL‑E/Gemini)の有無を切替。
AIモデルは「自動」または特定モデル(ChatGPT/Claude/Gemini/DeepSeek)を選択。
単件生成、またはCSVをアップロード(最大200件同時)。
プレビューで媒体別の制約エラーを確認し、ワンクリック修正。
配信・エクスポートし、ダッシュボードで進捗とエラーを監視。
プランとクオータ
トライアル100生成/スターター300生成/グロース600生成/スモール1,000生成/スタンダード3,000生成。
上限を超えた場合は、追加生成の購入により柔軟に対応できます。