コンテンツにスキップ

KnowledgeYard V2 起動手順

前提条件

  • Python 3.9.6 (システムの /usr/bin/python3)
  • Azure Functions Core Tools 4.4.0
  • Node.js (フロントエンド用)

サーバー起動

1. Azure Functions (バックエンド)

1-0. 依存パッケージの準備(初回のみ)

Core Tools は Homebrew の Python 3.13 を内部で呼び出すため、同じ環境に python-dotenv などを入れておかないと ModuleNotFoundError: No module named 'dotenv' で起動に失敗します。以下のコマンドで runtime 依存をインストールしてください(PEP 668 の制約があるため --break-system-packages を付与)。

/opt/homebrew/bin/python3 -m pip install --user --break-system-packages -r app/api/requirements.txt

※ Apple Silicon で Homebrew を別プレフィックスに置いている場合は適宜パスを読み替えてください。

cd app/api
./start.sh

または手動で:

cd app/api
export PATH="/usr/bin:$PATH"
func start --port 7071

注意: システムのPython 3.9を使う start.sh 方式に加え、Core Tools が Homebrew Python を掴むケースでは上記 1-0 を実施し、env -C app/api func start --port 7071 と実行すると確実です。ポート 7071 が埋まっている場合は lsof -ti:7071 | xargs kill -9 で終了させてから再実行してください。

2. フロントエンド

別のターミナルで:

cd app/web
VITE_API_PROXY_TARGET=http://localhost:7071 npm run dev

アプリケーションは http://localhost:3000 で利用可能になります。

最近の修正内容

HTTP 422 → HTTP 500エラーの修正 (2025-11-09)

問題: - _validate_payloadNoneを返していたため、summary_input["query"]TypeErrorが発生

修正: - _validate_payloadの戻り値の型をNoneからDict[str, Any]に変更 - 関数の最後にreturn payloadを追加 - HTTPExceptionValueErrorに変更(既存のエラーハンドリングと一致) - loggerLOGGERに統一

Python 3.13問題の修正 (2025-11-09)

問題: - MinicondaのPython 3.13が優先されて起動エラー - 必要なパッケージ(openai等)がPython 3.13環境にインストールされていない

修正: 1. local.settings.jsonに明示的にPython 3.9のパスを設定 2. start.shスクリプトを作成してPATHを自動調整 3. 起動時に常にシステムのPython 3.9を使用するように設定

HTTP 422エラーの修正 (2025-11-09)

問題: - フィルタリング条件が厳しすぎて、要約対象のitemsが空になる

修正: 1. isSummarizableAttributeの文字数制限: 400文字 → 2000文字 2. contentSnippetの個数制限: 2個 → 5個 3. デバッグログ追加(items生成状況の可視化)

トラブルシューティング

Python 3.13が使われてしまう場合

export PATH="/usr/bin:$PATH"

を実行してからAzure Functionsを起動してください。

ポート7071が使用中の場合

lsof -ti:7071 | xargs kill -9

メトリクスAPIの手動検証

バックエンドのボトルネックを追いやすくするため、/api/metrics を使ってイベントを送信・確認できます。

# 送信
curl -sS -X POST http://127.0.0.1:7071/api/metrics \
    -H 'Content-Type: application/json' \
    -d '{"events":[{"eventType":"frontend-load","data":{"duration":123,"phase":"init"}}]}'

# 集計確認
curl -sS http://127.0.0.1:7071/api/metrics | jq

Python スクリプトから行う場合は .venv/bin/pythonurllib.request を利用すれば同じレスポンス (POST=202, GET=200) が得られます。

パッケージが見つからない場合

システムのPython 3.9に必要なパッケージをインストール:

/usr/bin/python3 -m pip install --user -r requirements.txt

環境変数

Azure OpenAI、Azure AI Search等の接続情報は.envファイルに設定されています。 local.settings.jsonには最小限の設定のみ記載。