From 6beb28511d91197ebf1f8c041706686ca18b9cc8 Mon Sep 17 00:00:00 2001 From: M66B Date: Tue, 25 Jun 2024 10:03:30 +0200 Subject: [PATCH] Handle empty summaries --- app/src/main/java/eu/faircode/email/AI.java | 8 +++++--- app/src/main/java/eu/faircode/email/EntityRule.java | 3 ++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/AI.java b/app/src/main/java/eu/faircode/email/AI.java index 17746b25df..376e1d1e01 100644 --- a/app/src/main/java/eu/faircode/email/AI.java +++ b/app/src/main/java/eu/faircode/email/AI.java @@ -190,6 +190,10 @@ public class AI { HtmlHelper.truncate(d, MAX_SUMMARIZE_TEXT_SIZE); + String body = d.body().text().trim(); + if (TextUtils.isEmpty(body)) + return null; + String templatePrompt = null; if (template > 0L) { DB db = DB.getInstance(context); @@ -218,7 +222,7 @@ public class AI { OpenAI.Content.get(ssb, message.id, context))); } else input.add(new OpenAI.Message(OpenAI.USER, new OpenAI.Content[]{ - new OpenAI.Content(OpenAI.CONTENT_TEXT, d.text())})); + new OpenAI.Content(OpenAI.CONTENT_TEXT, body)})); OpenAI.Message[] completions = OpenAI.completeChat(context, model, input.toArray(new OpenAI.Message[0]), temperature, 1); @@ -235,8 +239,6 @@ public class AI { float temperature = prefs.getFloat("gemini_temperature", Gemini.DEFAULT_TEMPERATURE); String defaultPrompt = prefs.getString("gemini_summarize", Gemini.DEFAULT_SUMMARY_PROMPT); - String body = d.text(); - List texts = new ArrayList<>(); texts.add(templatePrompt == null ? defaultPrompt : templatePrompt); if (!TextUtils.isEmpty(body)) diff --git a/app/src/main/java/eu/faircode/email/EntityRule.java b/app/src/main/java/eu/faircode/email/EntityRule.java index 905f4e8db0..9456338f0b 100644 --- a/app/src/main/java/eu/faircode/email/EntityRule.java +++ b/app/src/main/java/eu/faircode/email/EntityRule.java @@ -1584,7 +1584,8 @@ public class EntityRule { try { Spanned summary = AI.getSummaryText(context, message, -1L); - message.preview = (summary == null ? null : summary.toString().trim()); + if (summary != null) + message.preview = summary.toString().trim(); } catch (Throwable ex) { message.error = Log.formatThrowable(ex); db.message().setMessageError(message.id, message.error);