Add phase 4: AI cleanup and photo/text import via OpenAI
- recipes/ai.py: Chat Completions with strict JSON schema (Structured Outputs), Pydantic re-validation, plausibility clamping, prompt treats input as data only - "Mit KI aufbereiten" on create/edit form returns an editable draft - Import page: photo/screenshot (vision, downscaled JPEG, not stored) and pasted text; drafts pre-fill the recipe form with a preview - Clear UI messages for timeout, rate limit, quota, auth, model and connection errors; without OPENAI_API_KEY AI features show a notice - Optional per-user and global daily AI limits (default unlimited) - Tests for response parsing, schema strictness, error mapping, views Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
co-authored by
Claude Opus 5.5
parent
9256e94286
commit
1bf8ef8b65
+4
-1
@@ -1,12 +1,15 @@
|
||||
from django.urls import path
|
||||
|
||||
from . import views
|
||||
from . import import_views, views
|
||||
|
||||
app_name = "recipes"
|
||||
|
||||
urlpatterns = [
|
||||
path("", views.recipe_list, name="list"),
|
||||
path("rezepte/neu/", views.recipe_create, name="create"),
|
||||
path("rezepte/import/", import_views.import_start, name="import"),
|
||||
path("rezepte/import/foto/", import_views.import_photo, name="import_photo"),
|
||||
path("rezepte/import/text/", import_views.import_text, name="import_text"),
|
||||
path("rezepte/<int:pk>/", views.recipe_detail, name="detail"),
|
||||
path("rezepte/<int:pk>/bearbeiten/", views.recipe_edit, name="edit"),
|
||||
path("rezepte/<int:pk>/loeschen/", views.recipe_delete, name="delete"),
|
||||
|
||||
Reference in New Issue
Block a user