diff options
| author | Michael Peter Christen <mc@yacy.net> | 2026-03-28 16:17:31 +0100 |
|---|---|---|
| committer | Michael Peter Christen <mc@yacy.net> | 2026-03-28 16:17:31 +0100 |
| commit | 31d6de21f4f64ef1f3075f3a4046758e13b2be35 (patch) | |
| tree | e0806dd088347b6aa89279f9c04570ddd59de3df | |
| parent | 9fff02688c195b550efac6a1e8d67bb190255a37 (diff) | |
better tldr handling
| -rw-r--r-- | source/net/yacy/ai/RAGAugmentor.java | 9 | ||||
| -rw-r--r-- | source/net/yacy/http/servlets/RAGProxyServlet.java | 2 |
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; |
