From edaedbfe7d5b243f79422e57b2c1567c227e69e8 Mon Sep 17 00:00:00 2001 From: M66B Date: Wed, 15 May 2024 08:14:28 +0200 Subject: [PATCH] OpenAI: added failsafe --- app/src/main/java/eu/faircode/email/OpenAI.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/OpenAI.java b/app/src/main/java/eu/faircode/email/OpenAI.java index 5c888080cb..cf6cac23ef 100644 --- a/app/src/main/java/eu/faircode/email/OpenAI.java +++ b/app/src/main/java/eu/faircode/email/OpenAI.java @@ -274,15 +274,17 @@ public class OpenAI { while (start < ssb.length()) { int end = ssb.nextSpanTransition(start, ssb.length(), ImageSpanEx.class); String text = ssb.subSequence(start, end).toString(); + Log.i("OpenAI content " + start + "..." + end + " text=" + text.replace('\n', '|')); contents.add(new OpenAI.Content(OpenAI.CONTENT_TEXT, text)); if (end < ssb.length()) { ImageSpanEx[] spans = ssb.getSpans(end, end, ImageSpanEx.class); - if (spans.length == 1) { + Log.i("OpenAI images=" + (spans == null ? null : spans.length)); + if (spans != null && spans.length == 1) { int e = ssb.getSpanEnd(spans[0]); - if (multimodal) { String url = null; String src = spans[0].getSource(); + Log.i("OpenAI image url=" + src); if (src != null && src.startsWith("cid:")) { String cid = '<' + src.substring(4) + '>'; EntityAttachment attachment = db.attachment().getAttachment(id, cid); @@ -299,15 +301,13 @@ public class OpenAI { } } else url = src; - if (url != null) contents.add(new OpenAI.Content(OpenAI.CONTENT_IMAGE, url)); } - end = e; } } - start = end; + start = (end > start ? end : start + 1); } return contents.toArray(new OpenAI.Content[0]);