Mise en place de la sélection des source que l'on souhaite que ce soit la partie RAG ou la partie analyse approfondie : on est plus obligé d'envoyer tous les PDFs qu'on a dans la partie atelier PDF + IA.
Les réponses ne ce baseront que sur les sources que l'on aura cocher au préalable
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
<groupId>com.loremind</groupId>
|
||||
<artifactId>loremind-core</artifactId>
|
||||
<version>0.12.4-beta</version>
|
||||
<version>0.12.5-beta</version>
|
||||
<name>LoreMind Core</name>
|
||||
<description>Backend Core - Architecture Hexagonale</description>
|
||||
|
||||
|
||||
@@ -125,6 +125,13 @@ public class NotebookController {
|
||||
.map(m -> new NotebookChatStreamer.Msg(m.getRole(), m.getContent()))
|
||||
.toList();
|
||||
List<String> sourceIds = service.readySourceIds(id);
|
||||
if (req.sourceIds() != null) {
|
||||
// Sélection de l'UI (cases cochées) : on ne garde que les sources qui
|
||||
// appartiennent bien à CE notebook et sont prêtes — un id étranger est
|
||||
// ignoré. Limite le coût (ex. analyse approfondie sur 1 PDF au lieu de 5).
|
||||
var wanted = new java.util.HashSet<>(req.sourceIds());
|
||||
sourceIds = sourceIds.stream().filter(wanted::contains).toList();
|
||||
}
|
||||
String context = service.buildContext(nb.getCampaignId());
|
||||
|
||||
boolean deep = req.deep() != null && req.deep();
|
||||
@@ -220,5 +227,10 @@ public class NotebookController {
|
||||
|
||||
public record CreateRequest(String campaignId, String name) {}
|
||||
public record RenameRequest(String name) {}
|
||||
public record ChatRequest(String message, Boolean deep) {}
|
||||
/**
|
||||
* @param sourceIds Optionnel : sous-ensemble de sources à utiliser pour ce tour
|
||||
* (cases cochées dans l'UI). Null = toutes les sources prêtes.
|
||||
* Toujours intersecté avec les sources du notebook (sécurité).
|
||||
*/
|
||||
public record ChatRequest(String message, Boolean deep, List<String> sourceIds) {}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user