Skip to main content
POST
GraphRAG retrieving (MKF 0.1.3, LangGraph 2-paths)

Authorizations

Authorization
string
header
required

Locus API key — paste the raw lsk_… value (no 'Bearer ' prefix).

Headers

accept
string
default:application/json

Body

application/json
query
string
required
patient_ehr
string | null

Dossier patient libre (EHR)

history
RetrieveTurn · object[]

Tours précédents, du plus ancien au plus récent. Sert UNIQUEMENT au query-maker, pour qualifier ce que le dernier message apporte : une nouvelle question, une précision, ou un fait patient. Les réponses antérieures ne sont jamais données au modèle de rédaction — elles n'ont pas de règle derrière elles et ne peuvent pas faire source.

concept_k
integer
default:5
Required range: 1 <= x <= 20
chunk_k
integer
default:10

0 = pas de chemin documentaire

Required range: 0 <= x <= 50
mku_k
integer
default:12

Top-k MKU vectoriel ; 0 = pas de chemin MKU

Required range: 0 <= x <= 50
mku_weight
number
default:0.75

Pondération hybride d'accès aux MKU : 0 = concepts seuls (un MKU n'est atteignable que par les termes de son propre verbatim), 1 = vecteurs seuls (sur l'embedding contextualisé doc+section), 0.5 = les deux. Défaut 0.75 : la config PROMUE par l'ajustement (run #50, hybrid·w0.75·x1·c10·m12·k5·t5). Voir REFERENCE_CONFIG.

Required range: 0 <= x <= 1
table_k
integer
default:5

Top-k tables de décision (vecteur) ; 0 = pas de tables directes

Required range: 0 <= x <= 20
deliberate
boolean
default:false

Seconde lecture : confronte les critères des règles au dossier, va chercher une définition manquante, et ne pose une question qu'en dernier recours. Hors du point de fonctionnement de référence — l'activer change le coût et n'est pas encore mesuré par les évals.

use_cross_refs
boolean
default:false

Étendre le résultat aux MKU voisins par CROSS_REF. Défaut False : les arêtes du corpus portent trop de liens superflus et d'erreurs pour qu'on serve ce signal (2 septembre 2026). Passer à true réactive l'expansion — utile pour mesurer ce que la coupure coûte une fois la passe de cross-ref assainie.

concept_mku_k
integer
default:60

Top-k MKU du chemin CONCEPTUEL, classés par nombre de concepts touchés.

Required range: 1 <= x <= 400
cross_ref_hops
integer
default:1

Profondeur du voisinage CROSS_REF. Coût EXPONENTIEL : l'expansion énumère des chemins. 3 était le défaut servi, et c'est lui qui a bloqué la prod quand le graphe a grossi.

Required range: 1 <= x <= 3
cross_ref_seeds
integer
default:40

MKU primaires (les mieux classés) semant l'expansion CROSS_REF.

Required range: 1 <= x <= 200
cross_ref_k
integer
default:400

Arêtes CROSS_REF rendues au plus ; celles entre primaires d'abord.

Required range: 1 <= x <= 2000
app_version
string | null

Version publiée de l'app appelante (p.ex. 1.4.2).

Maximum string length: 64
app_build
string | null

Le build EXACT : SHA git court sur le web, numéro de build natif sur iOS/Android. C'est lui qui distingue deux binaires d'une même version publiée — sans lui, 1.4.2 désigne plusieurs binaires et un bug n'est pas rejouable.

Maximum string length: 64
app_platform
string | null

web | ios | android.

Maximum string length: 32

Response

Successful Response

query
string
required
trace_id
string
default:""

L'identifiant de CETTE réponse, frappé par le serveur avant de la rendre. C'est la clé à renvoyer à POST /v2/feedback pour attacher un retour utilisateur — sans lui, un pouce levé ne désigne rien.

Vide quand la journalisation des traces est coupée (LOCUS_TRACES_ENABLED=false) : le client doit alors simplement ne pas proposer le retour, plutôt que de poster dans le vide.

core_version
string
default:""

La version du core qui a produit cette réponse, lisible : 0.2.0+a1b2c3d (r:4f9e2b71) — version applicative, commit déployé, empreinte du chemin de lecture. Rendue AUSSI dans la payload (et pas seulement écrite en base) pour qu'un client puisse l'afficher dans un rapport de bug sans avoir à interroger /health.

reformulated
string
default:""
ehr_summary
string
default:""
turn_kind
string
default:""

nouvelle_question | precision_question | fait_patient

ehr_additions
string
default:""

Le fait clinique nouveau apporté par ce tour. À APPENDRE au dossier côté client : c'est là qu'il sera confronté aux critères des règles. Un fait resté dans la question ne change aucune recommandation.

answer
string
default:""

Réponse rédigée, en Markdown (titres, listes, tableaux, citations). En JSON les sauts de ligne sont échappés en \n : lire avec jq -r '.answer', ou demander Accept: text/markdown pour recevoir le Markdown brut, ou Accept: text/html pour une page lisible.

answer_short
string
default:""

La conduite à tenir en une phrase, DÉRIVÉE de answer (son titre de niveau 1). Champ de confort : answer reste le Markdown complet, titre compris, donc rien ne casse pour un client qui l'ignore.

answer_format
string
default:markdown

Format de answer. Déclaré pour qu'un client sache le rendre.

mkus
RetrieveMku · object[]
chunks
RetrieveChunk · object[]
tables
RetrieveTable · object[]
docs
RetrieveDoc · object[]

Documents mobilisés, dédupliqués — métadonnées et lien profond.

drugs
RetrieveDrug · object[]

Médicaments rattachés aux règles citées — lane SÉPARÉE des MKU (contrat C4) : une rubrique de RCP n'est jamais promue en unité citable, et n'entre pas dans le contexte de rédaction.

cross_refs
RetrieveCrossRef · object[]
concepts
RetrieveConcept · object[]
deliberation
RetrieveDeliberation · object | null

Présent uniquement si deliberate était demandé.