# llm-classify ## 解決什麼問題 LLM 結構化輸出最常見場景:把自由文字分到固定 category。 claude_api 用 `_recipe_output_format: json` 自動 parse + validate 必填欄位。 ## 怎麼觸發 ```bash curl -X POST https://cypher.arcrun.dev/webhooks/named/llm_classify_example/trigger \ -H "X-Arcrun-API-Key: ak_xxx" \ -d '{"api_key":"ak_xxx","text":"How to deploy Cloudflare Workers in production?"}' ``` ## 預期結果 - claude 回 JSON `{category, confidence, reason}` - KBDB 寫一筆 block,tags_json 含 `category:tech` - response 回 `{success: true, data: {id, ...}}` ## 為什麼這 pattern 重要 - `_recipe_output_format: json` + `_recipe_output_required_fields` 是 claude_api 的 magic: Claude 回 JSON 後 cypher-executor 自動: 1. 剝 ```json fence 2. parse 3. 驗 required fields 存在 4. 把每個欄位(category / confidence / reason)放到 ctx 頂層,下游 `{{category}}` 直接用 - 不用寫 parse / validate / shape 邏輯,純 prompt + schema ## 改成你自己的 - prompt 改你的分類規則(category 清單可長可短) - 下游 save_with_tag 可換成 telegram 推播 / gmail / 等 - 若需要多步分類(先粗分後細分),鏈兩個 claude_api 節點即可 ## 注意 - claude_api 走 mira daemon (Phase A),會 paused 一陣子等 callback resume - 若 prompt 抽不出 required_fields,會 validation_failed 不寫 KBDB(safer than partial save)