コンテンツにスキップ

Home

concierge とは

concierge は、Microsoft Foundry 上のモデルを LangChain / LangGraph から扱う LLM アプリケーション構築用の Python ハンズオンリポジトリです。 読みどころは大きく 2 つあります。

構成 完全ローカルで動く? 学べること
Todo アプリ (クリーンアーキテクチャ) はい FastAPI + Typer + クリーンアーキテクチャの小さな参考実装
ハンズオンチュートリアル 一部 Foundry チャット / 埋め込み、観測性、pgvector、LangGraph エージェント

サービス構成と依存関係

concierge/ 配下の Python コードは、機能ごとに小さなパッケージに分かれています。 各パッケージは同じクリーンアーキテクチャの構成 (domain / application / infrastructure) を踏襲し、共通の concierge.settings 設定レイヤを経由して結線されます。

パッケージ 役割 提供する Surface 依存先 (concierge)
settings サービスごとに名前空間化された Pydantic-Settings 設定 (Foundry / Postgres / 観測性 など)
loggers, observability 共通ロギング + Foundry / Azure Monitor / MLflow トレーシングのヘルパー settings
todo タスク CRUD のリファレンス実装 REST API, CLI settings
knowledge Markdown 取り込み + pgvector ベースの RAG ストア CLI settings
agents 共有エージェントランタイム。AgentRegistry、各種アダプタ (Echo / GitHub Copilot SDK / LangGraph / Microsoft Agent Framework)、組み込みツール (echo、ファイル操作、シェル、画像生成) CLI settings
chat チャット会話・応答 (同期チャット + リアルタイム音声) REST API, CLI, Realtime settings, agents (任意、エージェント連動レスポンダ利用時のみ)
cloud_agent キュー + リポジトリ経由でエージェントジョブを実行する非同期ディスパッチャ REST API, CLI settings, agents

依存方向は厳密に一方向です。

  • agents, todo, knowledge は独立した bounded context です。 これらは他のサービスパッケージを import しません。
  • agents を import するのは chatcloud_agent の 2 つだけで、 どちらも infrastructure / application 層からの参照に限定されており、 domain 層は依存しません。
  • これらのルールは pyproject.toml に定義された import-linter コントラクトで CI 強制されています (ローカルでは make lint-imports で実行)。
flowchart LR
    settings[settings]
    obs["loggers / observability"]
    agents[agents]
    todo[todo]
    knowledge[knowledge]
    chat[chat]
    cloud_agent[cloud_agent]

    obs --> settings
    todo --> settings
    knowledge --> settings
    agents --> settings
    chat --> settings
    cloud_agent --> settings

    chat --> agents
    cloud_agent --> agents

Note

チュートリアル用の CLI scripts/langgraph/vanilla.pyhttpx 経由で Todo アプリの公開 REST API を叩いており、 concierge.todo を直接 import してはいません。これはランタイム レベルの結合に過ぎない点に注意してください。

どこから読むか

目的にいちばん近いところから始めてください。各経路は次のステップに繋がっ ているので、必要なところまで進めばOKです。

Todo アプリ概要 から始めます。uv run todo-web の 1 コマンドで起動し、Azure 認証も不要です。FastAPI / Typer / リポジトリ層の繋がりを最小構成で確認できます。

ステップ 1 - Microsoft Foundry + LangChain に進みます。Typer CLI から Foundry プロジェクトに対するチャット completion を 5 分以内に実行できます。

ステップ 2 - 観測性 (トレース & MLflow) を読みます。LangChain 実行を Azure Monitor に送り、ローカル MLflow UI で閲覧する方法をスクリーンショット付きで紹介しています。

VS Code Copilot を Application Insights で可視化する を読みます。同梱の OTel Collector が Copilot Chat のオペレーション数 / トークン / ツール呼び出し / モデル別レイテンシを Azure Application Insights に転送し、ポータルや aka.ms/amg/dash/gh-copilot のプリビルド Grafana ダッシュボードからクエリできます。

ステップ 3 - PostgreSQL (pgvector) CRUD を読みます。1 本の Typer CLI で Docker Compose 上の pgvector と Azure Database for PostgreSQL Flexible Server の両方を切り替えて使えます。

ステップ 4 - LangGraph Todo Agent CLI を読みます。LangGraph エージェントがツール経由で Todo Web API を操作 し、ステップ 1~3 の要素をひとまとめにします。

クイックリファレンス