summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Peter Christen <mc@yacy.net>2026-03-28 16:17:31 +0100
committerMichael Peter Christen <mc@yacy.net>2026-03-28 16:17:31 +0100
commit31d6de21f4f64ef1f3075f3a4046758e13b2be35 (patch)
treee0806dd088347b6aa89279f9c04570ddd59de3df
parent9fff02688c195b550efac6a1e8d67bb190255a37 (diff)
better tldr handling
-rw-r--r--source/net/yacy/ai/RAGAugmentor.java9
-rw-r--r--source/net/yacy/http/servlets/RAGProxyServlet.java2
2 files changed, 7 insertions, 4 deletions
diff --git a/source/net/yacy/ai/RAGAugmentor.java b/source/net/yacy/ai/RAGAugmentor.java
index 1b5723c3f..bd8b979cc 100644
--- a/source/net/yacy/ai/RAGAugmentor.java
+++ b/source/net/yacy/ai/RAGAugmentor.java
@@ -276,11 +276,14 @@ public final class RAGAugmentor {
* @param prompt user prompt to analyze
* @return space-separated lowercase term list or {@code null} on failure
*/
- public static String searchWordsForPrompt(LLM llm, String model, String prompt) {
- final String question = prompt == null ? "" : prompt;
+ public static String searchWordsForPrompt(final LLM llm, final String model, final String prompt, final String systemPrompt) {
+ final String question = prompt == null ? "" : prompt.trim();
+ final String instruction = systemPrompt == null || systemPrompt.trim().isEmpty()
+ ? "Compress the user prompt into a short search description. Return only a JSON array of concise, discriminative search terms in lowercase."
+ : systemPrompt.trim();
if (llm == null || model == null || model.isEmpty()) return null;
try {
- LLM.Context context = new LLM.Context("\n\nYou may receive additional expert knowledge in the user prompt after a 'Additional Information' headline to enhance your knowledge. Use it only if applicable.");
+ LLM.Context context = new LLM.Context(instruction);
context.addPrompt(question);
Set<String> singlewords = new LinkedHashSet<>();
String[] a = LLM.stringsFromChat(llm.chat(model, context, LLM.listSchema, 200));
diff --git a/source/net/yacy/http/servlets/RAGProxyServlet.java b/source/net/yacy/http/servlets/RAGProxyServlet.java
index 4b79153ba..bc9d8aade 100644
--- a/source/net/yacy/http/servlets/RAGProxyServlet.java
+++ b/source/net/yacy/http/servlets/RAGProxyServlet.java
@@ -195,7 +195,7 @@ public class RAGProxyServlet extends HttpServlet {
if (countWords(user) <= DIRECT_SEARCH_WORD_LIMIT) {
searchResultQuery = user;
} else {
- searchResultQuery = RAGAugmentor.searchWordsForPrompt(llm4tldr.llm, llm4tldr.model, queryPrefix + user); // might return null in case any error occurred
+ searchResultQuery = RAGAugmentor.searchWordsForPrompt(llm4tldr.llm, llm4tldr.model, user, queryPrefix); // might return null in case any error occurred
if (searchResultQuery == null || searchResultQuery.length() == 0) searchResultQuery = user; // in case there is an error we simply search with the prompt
}
final long queryElapsed = System.currentTimeMillis() - queryStart;