---
name: fastapi-to-langgraph
description: 將「意圖分類 + if/elif 分派情境處理」的 FastAPI 應用程式，一步轉換為 LangGraph（StateGraph）架構。當使用者要求把 FastAPI 專案改成 LangGraph、加情境節點、用 graph 架構重構時，主動使用本技能。
---

# FastAPI（情境路由）→ LangGraph

把「意圖分類 + if/elif 多情境分派」的 FastAPI 專案，轉換為 LangGraph StateGraph 架構。
轉換本質：**把函式呼叫關係，改寫成圖的節點與邊**——分類函式→router 節點、if/elif→條件邊、各情境處理函式→各自的節點。

## 核心原則

- **對外介面維持不變**：路徑、Request/Response（Pydantic）格式一致，呼叫端無感。
- **業務邏輯原封不動**：LLM 分類邏輯、各 handler（含 TODO 佔位）整段搬移，只改輸入輸出形狀（讀寫 state）。
- **局部更新原則**：每個節點只回傳自己變更的欄位。
- **驗證不能省略**：每個情境各一筆輸入實際跑過 `compiled_graph.invoke()`。

## 參考資料

- **[節點對照表](./references/mapping_rules.md)** — FastAPI → LangGraph 概念映射
- **[轉換步驟](./references/conversion_steps.md)** — state → router → 各節點 → graph → main
- **[新增情境](./references/add_scenario.md)** — 五步驟擴充指南
- **範例專案** — `before/`＝原 FastAPI（`MultiContextChatbot/`）、`after/`＝轉換後（`MultiContextChatbot_langgraph/`）

## 💡 觸發命令範例

> *"請幫我將這個 FastAPI 專案，轉換成 LangGraph Python 架構。"*

自動載入此 Skill，依對照表逐步完成轉換並驗證。
