POST /v2/retrieve accepte dans sources et exclude_sources.
docs compte les documents courants de l’éditeur : c’est ce qui dit si
restreindre une question à cette source rendra quelque chose. Un éditeur dont
plus aucun document n’est actif n’est pas listé — le publier ferait accepter
une restriction qui ne peut répondre que vide.
Restreindre une question
« has » vaut HAS), mais rien
de plus : pas de correspondance approchée, pas de recherche sur le nom complet.
Une source inconnue est refusée en 400 (UNKNOWN_SOURCE), avec la liste de
celles qui existent — servir une réponse vide ferait lire une faute de frappe
comme un trou du corpus.
Une liste vide est refusée elle aussi : « aucune source cochée » et « toutes
les sources » sont deux intentions opposées, et les confondre servirait le
corpus entier à un client qui croyait l’avoir restreint. Pour ne rien
restreindre, on omet le champ.
exclude_sources fait l’inverse — retirer un éditeur sans avoir à énumérer tous
les autres. La réponse porte source_scope, la restriction réellement appliquée
en identifiants canoniques.
Ce que la restriction couvre
Tous les chemins du graphe : extraits, tables de décision, unités citables retrouvées par concepts comme par vecteurs, et le voisinage entre unités — le seul chemin qui saute d’un document à l’autre, donc le seul par lequel un éditeur exclu pourrait revenir. La seconde lecture (deliberate) relance des
recherches : elles sont restreintes elles aussi.
Deux exceptions, délibérées :
- les concepts — un concept n’appartient à aucun document, c’est un terme du registre, partagé. Les unités citables qu’il ramène, elles, sont restreintes ;
- les médicaments — le sous-graph des RCP vient du référentiel ANSM, pas d’un éditeur de recommandations. Masquer une contre-indication parce qu’on a restreint le corpus de recommandations serait un mode d’erreur, pas une fonctionnalité.
Sur un éditeur très minoritaire, la recherche vectorielle peut rendre moins de
chunk_k extraits : l’index vectoriel classe sur tout le corpus et le filtre
s’applique ensuite. Le serveur sur-échantillonne pour compenser, mais la
troncature reste possible — mieux vaut le savoir que le découvrir.