Faktenkompass: UI-Rebrand, Admin-Assistent und Produktions-Setup.
Modernisiert die öffentliche Oberfläche mit Inter, Dark Mode und Live-Suche, ergänzt KI-gestützte Entwürfe im Admin mit Nachweis-Uploads und dokumentiert Daphne/Nginx für den Serverbetrieb. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
from claims.models import ClaimDraft
|
||||
from claims.services.ai_assistant import (
|
||||
AIAssistantError,
|
||||
apply_payload_to_draft,
|
||||
generate_draft_payload,
|
||||
)
|
||||
from claims.services.article_fetcher import ArticleFetchError, fetch_article_text
|
||||
|
||||
|
||||
def process_claim_draft(draft, *, refinement=''):
|
||||
draft.error_message = ''
|
||||
draft.status = ClaimDraft.DraftStatus.PROCESSING
|
||||
draft.save(update_fields=['error_message', 'status', 'updated_at'])
|
||||
|
||||
user_message_parts = []
|
||||
if draft.article_url:
|
||||
user_message_parts.append(f'Link: {draft.article_url}')
|
||||
if draft.user_notes:
|
||||
user_message_parts.append(draft.user_notes)
|
||||
if draft.uploaded_file:
|
||||
user_message_parts.append(f'Datei: {draft.uploaded_file.name}')
|
||||
if refinement:
|
||||
user_message_parts.append(f'Überarbeitung: {refinement}')
|
||||
|
||||
draft.add_message('user', '\n'.join(user_message_parts) or 'Neuer Entwurf')
|
||||
draft.save(update_fields=['conversation', 'updated_at'])
|
||||
|
||||
try:
|
||||
article_text = draft.article_text
|
||||
if draft.article_url and not refinement:
|
||||
article_text = fetch_article_text(draft.article_url)
|
||||
draft.article_text = article_text
|
||||
draft.save(update_fields=['article_text', 'updated_at'])
|
||||
|
||||
payload = generate_draft_payload(
|
||||
article_url=draft.article_url,
|
||||
article_text=article_text,
|
||||
user_notes=draft.user_notes,
|
||||
uploaded_file=draft.uploaded_file if draft.uploaded_file else None,
|
||||
refinement=refinement,
|
||||
previous_payload=draft.ai_raw_response if refinement else None,
|
||||
)
|
||||
apply_payload_to_draft(draft, payload)
|
||||
draft.status = ClaimDraft.DraftStatus.REVIEW
|
||||
draft.save()
|
||||
return draft
|
||||
except (ArticleFetchError, AIAssistantError) as exc:
|
||||
draft.status = ClaimDraft.DraftStatus.FAILED
|
||||
draft.error_message = str(exc)
|
||||
draft.add_message('assistant', f'Fehler: {exc}')
|
||||
draft.save()
|
||||
raise
|
||||
Reference in New Issue
Block a user