kiwi/app
pyr0ball b4624fba84 feat(ask): add POST /recipes/ask endpoint for natural-language recipe search
Free tier: keyword extraction + FTS ingredient search + title probe search.
Paid tier / BYOK: same search, then LLM synthesis of a conversational answer
(8s timeout so an unresponsive model degrades gracefully to recipe list only).

- AskRequest / AskRecipeHit / AskResponse schemas in recipe.py
- _extract_ask_keywords(): tokenize question, strip stopwords
- _ask_in_thread(): two-pronged search (ingredient FTS + title LIKE)
  merges by ID, computes pantry match_pct when pantry_items provided
- Endpoint registered before /{recipe_id} to avoid integer coercion on /ask
- LLM synthesis gated to paid/premium/ultra only (not "local" dev tier)

Closes #134 (backend)
2026-05-11 13:07:53 -07:00
..
api feat(ask): add POST /recipes/ask endpoint for natural-language recipe search 2026-05-11 13:07:53 -07:00
core feat: corrections router (#73) + Magpie flywheel hook (#28) 2026-04-25 23:31:20 -07:00
db feat: recipe scanner — photo to structured recipe (kiwi#9) 2026-04-27 08:23:01 -07:00
mcp feat(mcp): add Kiwi MCP server for corpus DB access (closes #124) 2026-05-11 11:32:40 -07:00
models feat(ask): add POST /recipes/ask endpoint for natural-language recipe search 2026-05-11 13:07:53 -07:00
services feat(streaming): add native SSE fallback for L3/L4 recipe generation (closes #126) 2026-05-11 11:32:54 -07:00
staples fix: staple library — consistent tofu_firm slug, load error handling, typed yield_formats, expanded test coverage 2026-03-30 23:10:51 -07:00
static chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
styles feat: recipe engine Phase 3 — StyleAdapter, LLM levels 3-4, user settings 2026-03-31 14:15:18 -07:00
tasks feat(scheduler): auto-detect OrchestratedScheduler when cf-orch is installed 2026-04-19 22:12:44 -07:00
utils chore: initial commit — kiwi Phase 2 complete 2026-03-30 22:20:48 -07:00
__init__.py chore: bump version to 0.2.0 2026-04-08 22:10:36 -07:00
cloud_session.py refactor: replace hand-rolled JWT+Heimdall with cf-core CloudSessionFactory 2026-04-25 16:35:56 -07:00
main.py feat(browse-counts): add pre-computed FTS counts cache with nightly refresh 2026-04-21 15:04:23 -07:00
tiers.py feat: recipe scanner — photo to structured recipe (kiwi#9) 2026-04-27 08:23:01 -07:00