Azure App Serviceで動作する統合AIエージェントアプリケーション。FastAPIバックエンドとChainlitフロントエンドを単一のApp Serviceで動作させる設計です。チャットモードとAI Foundryエージェントモードの切り替えが可能で、エージェントのトレース機能も備えています。
- 📝 チャットモード: シンプルな会話型AIとして動作
- 🚀 エージェントモード: AI Foundryの高度なエージェント機能を活用
- ⚙️ 簡単切り替え: UIから即座にモード変更可能
- ツール呼び出し: エージェントが使用するツールの詳細表示
- 思考プロセス: AIの意思決定プロセスを可視化
- リアルタイム表示: ストリーミング中のトレース情報配信
統合アプリケーション (app.py)
├── FastAPI Backend (port 8000)
│ ├── /api/* - APIエンドポイント
│ ├── /health - ヘルスチェック
│ └── /docs - API ドキュメント
└── Chainlit Frontend (port 8501)
└── Proxy による UI 提供
secure-azureai-agent/
├── app.py # 統合アプリケーション(メインエントリーポイント)
├── requirements.txt # 統合された依存関係
├── startup.sh # Azure App Service 起動スクリプト
├── azure.yaml.template # Azure Developer CLI 設定テンプレート
├── backend/ # バックエンドコード
│ ├── src/
│ │ ├── main.py # FastAPI アプリケーション
│ │ ├── agents/ # Azure Troubleshoot Agent
│ │ ├── telemetry/ # テレメトリ設定
│ │ └── utils/ # ユーティリティ
│ └── requirements.txt
├── frontend/ # フロントエンドコード
│ ├── app.py # Chainlit アプリケーション
│ ├── chainlit.md # UI 設定
│ └── requirements.txt
├── eval/ # RAG評価・テストシステム
│ ├── README_RAG_EVALUATION.md # RAG評価システムの詳細ガイド
│ ├── rag_evaluation.py # RAGAS評価フレームワーク
│ ├── azure_rag.py # Azure AI Search RAGシステム
│ ├── config.py # 設定管理
│ └── sample_data.py # サンプルデータ生成
├── ContosoTelecom社内資料.pdf # RAGデモ用サンプルデータ
└── infra/ # Azure インフラストラクチャ
├── main.bicep # メイン Bicep テンプレート
├── unified-resources.bicep # リソース定義
└── main.parameters.json # パラメータファイル
詳細な手順については DEPLOYMENT.md を参照してください。
# Azure にログイン
azd auth login
# プロビジョニングとデプロイ
azd up
# 既存リソースへのデプロイのみ
azd deploy
- Python 3.12+
- Azure CLI
- Azure Developer CLI (azd)
-
依存関係のインストール:
pip install -r requirements.txt
-
環境変数の設定:
# .env ファイルを作成 ENVIRONMENT=development CHAINLIT_PORT=8501 AZURE_KEY_VAULT_URL=your-key-vault-url AZURE_OPENAI_ENDPOINT=your-openai-endpoint
-
アプリケーションの起動:
python app.py
アプリケーションは http://localhost:8000
で起動し、UIは自動的にChainlitにプロキシされます。
カテゴリ | 技術 | バージョン | 説明 |
---|---|---|---|
言語 | Python | 3.12+ | メイン開発言語 |
Web Framework | FastAPI | 最新 | RESTful API |
UI Framework | Chainlit | 最新 | チャットベースUI |
AI/ML | Semantic Kernel | 最新 | AIエージェント |
クラウド | Azure App Service | - | ホスティング |
インフラ | Bicep | - | IaC |
このプロジェクトには、RAG(Retrieval Augmented Generation)システムの性能を評価するための包括的な評価システムが含まれています。
ContosoTelecom社内資料.pdf
: RAGデモンストレーション用の架空の社内資料- ContosoTelecom社の製品・サービス情報
- 技術サポート手順とトラブルシューティング
- 社内ポリシーと手順書
- RAG検索とQAのテスト用コンテンツ
- RAGAS評価フレームワーク: Faithfulness, Answer Relevancy, Context Precisionなどの包括的メトリクス
- Azure AI Search統合: ハイブリッド検索(セマンティック + キーワード)対応
- バッチ評価: 複数クエリの並列処理
- 結果エクスポート: JSON/CSV形式での評価結果出力
詳細についてはeval/README_RAG_EVALUATION.mdを参照してください。
- 設定ボタン(⚙️)をクリック
- 実行モードで「チャットモード」または「エージェントモード」を選択
- トレース表示を有効にしてエージェントの動作を詳細表示(エージェントモード時のみ)
- 💬 シンプルで高速な会話型AI
- 🎯 Azure関連の質問に特化
- ⚡ 軽量で迅速な応答
- 🤖 AI Foundryの高度なエージェント機能
- 🔧 専門ツールを活用した詳細分析
- 🔍 トレース機能でプロセス可視化
- 📊 複雑な問題への対応
- ツール呼び出し: どのツールが使われたかを確認
- 思考プロセス: AIの判断理由を理解
- デバッグ: 問題発生時の詳細調査
変数名 | 説明 | デフォルト値 |
---|---|---|
PORT |
メインアプリケーションのポート | 8000 |
CHAINLIT_PORT |
Chainlit のポート | 8501 |
ENVIRONMENT |
環境タイプ | development |
PYTHONPATH |
Python パス | /home/site/wwwroot/backend/src |
変数名 | 説明 | 必須 |
---|---|---|
AZURE_OPENAI_API_KEY |
Azure OpenAI APIキー | ✅ |
AZURE_OPENAI_ENDPOINT |
Azure OpenAI エンドポイント | ✅ |
AZURE_OPENAI_DEPLOYMENT_NAME |
デプロイメント名 | No (default: gpt-4 ) |
変数名 | 説明 | 必須 |
---|---|---|
PROJECT_ENDPOINT |
AI Foundry プロジェクトエンドポイント | エージェントモード使用時 |
FOUNDARY_TECHNICAL_SUPPORT_AGENT_ID |
Foundry技術サポートエージェントID | エージェントモード使用時 |
変数名 | 説明 | デフォルト値 |
---|---|---|
USE_AZURE_AI_AGENT |
エージェントモードの有効化 | false |
変数名 | 説明 | デフォルト値 |
---|---|---|
SEMANTICKERNEL_EXPERIMENTAL_GENAI_ENABLE_OTEL_DIAGNOSTICS_SENSITIVE |
Semantic Kernelの詳細トレース | false |
AZURE_TRACING_GEN_AI_CONTENT_RECORDING_ENABLED |
AIコンテンツ記録 | false |
- Python バージョン: 3.12
- 起動コマンド:
bash startup.sh
- Always On: 有効
- HTTPS Only: 有効
- Application Insights: 自動的に設定されます
- Log Analytics: すべてのログが収集されます
- ヘルスチェック:
/health
エンドポイントで確認
- Managed Identity: Azure リソースへの認証に使用
- Key Vault: シークレット管理
- HTTPS: 強制有効
- RBAC: Role-Based Access Control
- 📖 ARCHITECTURE.md - アーキテクチャ詳細
- 📖 DEPLOYMENT.md - デプロイメント完全ガイド
- 📖 DEVELOPMENT.md - 開発者向けガイド
- 📖 API.md - API ドキュメント
- 📖 TESTING.md - テスト戦略とガイド
質問や問題がある場合:
- Issues タブで既存の質問を検索
- 新しい Issue を作成して質問
- SUPPORT.md を参照
このプロジェクトは MIT License の下でライセンスされています。