From b0afe7cbe9f027df98fc9fa766a2e767c8cd8f59 Mon Sep 17 00:00:00 2001 From: Flatlogic Bot Date: Tue, 2 Dec 2025 16:09:33 +0000 Subject: [PATCH] Auto commit: 2025-12-02T16:09:33.054Z --- core/__pycache__/models.cpython-311.pyc | Bin 1847 -> 1916 bytes core/__pycache__/views.cpython-311.pyc | Bin 5671 -> 6372 bytes core/migrations/0003_reflection_feedback.py | 18 ++++++++++++++++++ .../0003_reflection_feedback.cpython-311.pyc | Bin 0 -> 805 bytes core/models.py | 1 + core/templates/core/reflection.html | 4 ++++ core/views.py | 14 ++++++++++++++ 7 files changed, 37 insertions(+) create mode 100644 core/migrations/0003_reflection_feedback.py create mode 100644 core/migrations/__pycache__/0003_reflection_feedback.cpython-311.pyc diff --git a/core/__pycache__/models.cpython-311.pyc b/core/__pycache__/models.cpython-311.pyc index 9f32394aa5e20b9f91817638d4675934c8a5656d..5d7d897c544cafd5edeef5cd5c792f4ef97ab36c 100644 GIT binary patch delta 200 zcmdna_lJ*nIWI340}vGP>SsRR$lK1$cxv)g=BCM?ndK(iF$zdBtzlWl$iT1~h#??~ zH-)u@A&PIZ70U%ik;&YwdW`&&tyt~3ZgHfgrluq%CTCBsWYuMyGI=?xpBTSE>?Ln+XC}|1>EqW=H%9@#&#JDTF8^y5I zOQAg$=FmeG0tIdHB%b;owDb~7pb{u}DDAPa)q_2CHffALm~X!Ky_s*`o1LNW!>%1c zZ~_`Hgm}&-?YW>JSvg17pCrZCz+eb;_{g+CnBU~5Fv)*1xw3;y*nDKtm1mpf1Y!`2 z1k|y~A|AQSj(o$_a()AlNb{=}w}R&GEuP3ifaguV%vw$lk$sy1V3)3DXkErR2Ow{? z(+HEle9r8c>ul8&JCdxN?74=8>n#-kk|50{b7tb%rgyBcH{a8_Sxyl0z8IYdM@5 zf>=qbMNMAFDGNhTRuD|9if(Adw2@oEFoQ9gm(z<-RiF%uI@Y2()NrPNXS%J3_a8=ci9xM50vKzQz16O4o%K9QkqcB
    o^VS-eKw z^<`B-%>sz;-&>c7o_SFFxdCF1r&;7^4U=K})v+PG_HT9%Pn^-Z{PXH(~N%o?8 z&iy${w~*($JavvAa~%UdES^|U=?vCgz#aZNBKCd}d&`dx#CTPV*8wNoXTC)e)ySR7 z_~b!ksv4Pk<*d4UD(;@6NU}kXNYERyMZH%BPY3rWyh*0p8tgsL2I!_mDg1SeEvcwj hz~kEN{#)NH)8Ee&nL4oWm;SsRS-N>iFE64%lG6V7F8YTvY=?o=|lNC5bCZFeHogBg2 z$JjghIj=u!N)7V@j>(1sqLTyoGAB3lYx0VNOo4zD-pM=p^~EJ%dK`?`+(B@`=I>yPe!U2qelkjVPu>9QCNow))kTE@&htl zKq4NKLqz5>vQGXaV#au5@-0z0Hf~l mPO4o|>+A@Zv^Zh_ohRt=q?dZ(Dk2d4Z@EjN=F+j*;KTG!gB~ zwMU#k5oaWdp!yE(jZ2;z@d%eq{0?*B^X$3(HV)CwI$1Q%Y}`XX8^?+LAx?(r$n((_ z_UymSx5?;(OGe$w+vezFqSA?F5FmX`VRA7G74(flmR8lti^2f?_7`KSHD_ygW;dEM zbAA8r)Lj3z`t$Lz+5Tm=r)ImTE4pz46i!7bWYttB&%{h_R`+aMO0M&P7xm&z-YM;u zrWZ=qL|IvTi_n?2wdmo)q)C+iSxDbdC}hSMsbkhL+`IY|>Izc}xEl72>Gh2hkvRQN Hw!HTor4Gyx literal 0 HcmV?d00001 diff --git a/core/models.py b/core/models.py index 3e7ed9c..00fbeb7 100644 --- a/core/models.py +++ b/core/models.py @@ -14,6 +14,7 @@ class Reflection(models.Model): user = models.ForeignKey(User, on_delete=models.CASCADE) question = models.TextField() answer = models.TextField(blank=True, null=True) + feedback = models.TextField(blank=True, null=True) created_at = models.DateTimeField(auto_now_add=True) def __str__(self): diff --git a/core/templates/core/reflection.html b/core/templates/core/reflection.html index 3e8fdbd..619606c 100644 --- a/core/templates/core/reflection.html +++ b/core/templates/core/reflection.html @@ -26,6 +26,10 @@
  • {{ reflection.question }}
    {{ reflection.answer }}
    + {% if reflection.feedback %} + Feedback:
    +

    {{ reflection.feedback }}

    + {% endif %} {{ reflection.created_at|date:"F d, Y" }}
  • {% endfor %} diff --git a/core/views.py b/core/views.py index 184fb79..1c8ac5f 100644 --- a/core/views.py +++ b/core/views.py @@ -86,6 +86,20 @@ def reflection_view(request): reflection = form.save(commit=False) reflection.user = request.user reflection.question = request.POST.get('question') # Get question from hidden input + + # AI-generated feedback + feedback_response = LocalAIApi.create_response({ + "input": [ + {"role": "system", "content": "You are a helpful assistant. Your task is to provide brief, encouraging, and constructive feedback on a user\'s reflection. The feedback should be no more than 50 words."}, + {"role": "user", "content": f"The user was asked: '{reflection.question}' and they responded: '{reflection.answer}'. Please provide some feedback."}, + ], + }) + + if feedback_response.get("success"): + reflection.feedback = LocalAIApi.extract_text(feedback_response) + else: + reflection.feedback = "Thank you for your reflection." # Fallback feedback + reflection.save() return redirect('reflection') else: