Micro service pour exposer des fonctionnalités de Retrieval d’un Vector Store.
Base path : /zia-rag/api/v1/retrieval
| Méthode | Chemin | Description |
|---|---|---|
POST |
/documents |
Retourne les Document (objets Spring AI) les plus pertinents pour une question. |
GET |
/sources |
Liste les valeurs distinctes de la métadonnée source. |
{
"question": "Comment réinitialiser mon mot de passe ?",
"config": {
"topK": 10,
"useReranker": false,
"useBm25": false,
"sources": ["handbook", "faq"]
}
}topK: nombre maximum de documents retournés (défaut : 10).useReranker: active le reranking distant.useBm25: ajoute une recherche plein-texte BM25 (extension PGpg_textsearch, indexidx_vector_store_content_bm25) à la recherche vectorielle classique. Comme les scores des deux retrievers ne sont pas comparables, activeruseBm25force l'utilisation du reranker. Les résultats sont alors unis puis dédupliqués par identifiant de document avant reranking.sources: filtre optionnel sur la métadonnéesource(vide = pas de filtre).
Note : seuls les documents publics sont retournés. Un document est considéré public lorsque sa métadonnée
user_uuidest absente ou vide ; les documents rattachés à un utilisateur (user_uuidnon vide) sont systématiquement exclus du retrieval.
L'API est documentée via springdoc-openapi :
- UI :
/zia-rag/swagger-ui.html - Spécification OpenAPI :
/zia-rag/v3/api-docs
Variables d'environnement principales (voir application.yml) :
| Variable | Description |
|---|---|
DS_URL, DS_USERNAME, DS_PASSWORD |
Datasource PostgreSQL (pgvector + pg_textsearch). |
PGVECTOR_SCHEMA_NAME, PGVECTOR_TABLE_NAME |
Schéma / table du vector store. |
ZIA_EMBEDDING_* |
Modèle d'embedding (base-url, api-key, model, dimensions). |
ZIA_RERANK_BASE_URL, ZIA_RERANK_API_KEY, ZIA_RERANK_MODEL |
Service de reranking distant. |
GATEWAY_PUBLIC_KEY |
Clé publique (Base64) de la gateway pour valider le jeton bleu (profil internal). |
ZIA_LOGGING_CALLER_ENABLED |
Active le log de l'appelant (username + authorities) pour chaque requête (défaut : false). |
Spring Security est toujours présent. La validation du jeton bleu (header Blue) est fournie par
la librairie interne zas-common-security-starter, ajoutée uniquement via le profil Maven internal
(utilisé par le Jenkinsfile, non disponible sur GitHub) :
mvn clean verify -Pinternal- Avec le profil
internal: un jeton bleu valide est requis, sauf pour/actuator/**,/swagger-ui.html,/swagger-ui/**et/v3/api-docs/**. - Sans le profil : toutes les requêtes sont autorisées (développement local, CI GitHub).