AI improvements

master
M66B 2 months ago
parent 3f0702fb1e
commit 6abb6dd47d

@ -53,9 +53,9 @@ public class AI {
boolean multimodal = prefs.getBoolean("openai_multimodal", false);
OpenAI.Message message;
if (body instanceof Spannable)
if (body instanceof Spannable && multimodal)
message = new OpenAI.Message(OpenAI.USER,
OpenAI.Content.get((Spannable) body, id, multimodal, context));
OpenAI.Content.get((Spannable) body, id, context));
else
message = new OpenAI.Message(OpenAI.USER, new OpenAI.Content[]{
new OpenAI.Content(OpenAI.CONTENT_TEXT, body.toString())});
@ -139,9 +139,13 @@ public class AI {
input.add(new OpenAI.Message(OpenAI.USER,
new OpenAI.Content[]{new OpenAI.Content(OpenAI.CONTENT_TEXT, message.subject)}));
if (multimodal) {
SpannableStringBuilder ssb = HtmlHelper.fromDocument(context, d, null, null);
input.add(new OpenAI.Message(OpenAI.USER,
OpenAI.Content.get(ssb, message.id, multimodal, context)));
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())}));
OpenAI.Message[] completions =
OpenAI.completeChat(context, model, input.toArray(new OpenAI.Message[0]), temperature, 1);
@ -160,10 +164,15 @@ public class AI {
float temperature = prefs.getFloat("gemini_temperature", Gemini.DEFAULT_TEMPERATURE);
String prompt = prefs.getString("gemini_summarize", Gemini.DEFAULT_SUMMARY_PROMPT);
String text = d.text();
if (TextUtils.isEmpty(text))
return null;
Gemini.Message content = new Gemini.Message(Gemini.USER, new String[]{prompt, text});
String body = d.text();
List<String> texts = new ArrayList<>();
texts.add(prompt);
if (!TextUtils.isEmpty(message.subject))
texts.add(message.subject);
if (!TextUtils.isEmpty(body))
texts.add(body);
Gemini.Message content = new Gemini.Message(Gemini.USER, texts.toArray(new String[0]));
Gemini.Message[] completions =
Gemini.generate(context, model, new Gemini.Message[]{content}, temperature, 1);

@ -277,7 +277,7 @@ public class OpenAI {
return this.content;
}
static Content[] get(Spannable ssb, long id, boolean multimodal, Context context) {
static Content[] get(Spannable ssb, long id, Context context) {
DB db = DB.getInstance(context);
List<OpenAI.Content> contents = new ArrayList<>();
int start = 0;
@ -298,7 +298,7 @@ public class OpenAI {
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);
@ -320,7 +320,7 @@ public class OpenAI {
url = src;
if (url != null)
contents.add(new OpenAI.Content(OpenAI.CONTENT_IMAGE, url));
}
end = e;
}
}

Loading…
Cancel
Save