feat(pos): add kiosk mode, AI vision, AI part classification, public chatbot (#19 #25 #30 #29)

- Kiosk mode: fullscreen, wake lock, auto-login, context menu block, PWA/Capacitor detection
- AI vision: camera photos analyzed by Gemma 3 27B vision model via OpenRouter
- AI part classification: auto-suggest name/brand/category when entering part number
- Public catalog chatbot: /api/chat endpoint with rate limiting, chat widget on catalog page

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-05 04:18:37 +00:00
parent 4cc2c66208
commit 5a88d7c7ff
13 changed files with 942 additions and 5 deletions

View File

@@ -38,8 +38,13 @@ def chat():
except Exception:
pass
# Call AI with inventory context
ai_response = ai_chat.chat(user_message, history, inventory_context=inventory_context)
# Check for image (base64) — use vision model if present
image_base64 = (body.get("image") or "").strip()
if image_base64:
ai_response = ai_chat.chat_with_image(user_message, image_base64, history, inventory_context=inventory_context)
else:
ai_response = ai_chat.chat(user_message, history, inventory_context=inventory_context)
search_results = []
vehicle_match = None