Aller au contenu

Retrieval (RETRIEVE)

Le retrieval est une source de relation au sein d’OSL-SQL : la fonction de table RETRIEVE(...). Il n’y a plus d’endpoint /osl/retrieve séparé — vous faites un SELECT sur RETRIEVE(...) dans un body POST /osl/query.

SELECT text, score, customer_id
FROM RETRIEVE(facet => 'meeting_transcripts',
query => 'european equity exposure',
top_k => 5)
  • facet — une UnstructuredFacet déclarée.
  • query — texte naturel ; le moteur l’embed avec le modèle déclaré dans la facette.
  • top_k — doit satisfaire ≤ facet.retrieval.max_top_k.
  • Les filtres de metadata sont appliqués par le store gouverné (prédicats de lignes par sujet) avant le trim d’overfetch de l’ACL.

Chaque passage renvoyé porte un bloc cite (source · doc · chunk) et sa clé d’entité dénormalisée, pour que les résultats puissent être attribués et corrélés.

{
"text": "Anna wants to increase EU equity exposure […]",
"score": 0.91,
"customer_id": "9c1e…f04a",
"cite": { "source": "gong://…", "doc_id": "meet-2026-05-08-7a3c", "chunk_id": "chk-…" },
"redacted_fields": []
}
  • Version de caviardage. La facette est servie à la version de caviardage requise du sujet — exact-or-deny. Les champs de metadata caviardés sont listés dans redacted_fields.
  • ACL row-level. Deny-by-default : un actor sans grant obtient zéro passage.
  • Isolation. La query n’ouvre que la table Lance de la version sélectionnée — pas de side-channel vers des vecteurs moins caviardés.