No description
  • HTML 70.7%
  • Python 28.5%
  • Dockerfile 0.8%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Marcel Wasilewski 9980540965 PIN auf 1337, Numpad responsiver, robustes Parsen langer KI-Antworten
- Standard-PIN von 13337 auf 1337 geändert (EXTRACT_PIN).
- Numpad reagiert jetzt auf pointerdown statt click (kein Tap-Delay),
  touch-action: manipulation und direktes :active-Feedback.
- Lange Zutatenlisten/Screenshots: num_predict auf 8192 erhöht und
  parse_model_json tolerant gemacht — Fences mit Text drumherum,
  und bei abgeschnittenen Antworten werden alle vollständigen
  Zutaten-Objekte gerettet statt mit 502 zu scheitern.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-19 23:38:30 +02:00
app PIN auf 1337, Numpad responsiver, robustes Parsen langer KI-Antworten 2026-08-19 23:38:30 +02:00
.env.example PIN auf 1337, Numpad responsiver, robustes Parsen langer KI-Antworten 2026-08-19 23:38:30 +02:00
.gitignore Foto-Upload und PIN-Schutz für die Zutaten-Extraktion 2026-08-19 19:05:20 +02:00
docker-compose.prod.yml Initial commit: Bring AI app with prod compose config 2026-08-19 18:50:08 +02:00
docker-compose.yml Initial commit: Bring AI app with prod compose config 2026-08-19 18:50:08 +02:00
Dockerfile Initial commit: Bring AI app with prod compose config 2026-08-19 18:50:08 +02:00
README.md PIN auf 1337, Numpad responsiver, robustes Parsen langer KI-Antworten 2026-08-19 23:38:30 +02:00
requirements.txt Initial commit: Bring AI app with prod compose config 2026-08-19 18:50:08 +02:00

Bring AI 🛒

Rezept reinpasten oder Foto hochladen → KI (Gemma 4 über Ollama Cloud) extrahiert die Zutaten → ab in die Bring!-Einkaufsliste.

  • Foto: wird im Browser auf max. 1280px verkleinert und nur für den einen KI-Request durchgereicht — der Server speichert nichts, nach der Extraktion wird es auch im Browser verworfen.
  • Code-Schutz: vor jeder Extraktion erscheint ein Nummern-Pad; der Code wird serverseitig geprüft (EXTRACT_PIN in der .env, Standard 1337).

Setup

  1. In der .env deine Bring!-Zugangsdaten eintragen (BRING_EMAIL, BRING_PASSWORD).

  2. Starten:

    docker compose up --build -d
    
  3. http://localhost:8000 öffnen, Rezept einfügen, Zutaten prüfen, hinzufügen.

Deployment (bring.wasilewski.io)

docker compose -f docker-compose.prod.yml up -d --build

Keine published Ports — der Container hängt im externen reverse-proxy-hosts-Netz; im Nginx Proxy Manager zeigt der Host bring.wasilewski.io auf Container bring-ai, Port 8000.

Wie es funktioniert

  • Backend: FastAPI (app/main.py)
  • Zutaten-Extraktion: Ollama Cloud (/api/chat) mit strukturiertem JSON-Output, Modell per OLLAMA_MODEL konfigurierbar (Standard: gemma4:31b)
  • Bring!: bring-api (inoffizielle Python-Library, gleiche wie in Home Assistant)

API

Endpoint Beschreibung
GET /api/lists Deine Bring!-Listen
POST /api/extract {"text": "..."} → extrahierte Zutaten
POST /api/add {"list_uuid": "...", "items": [{"name": "...", "spec": "..."}]}