AppariementSimilaritéVecteur

Récupère, à partir du texte de requête, les fragments de connaissances (chunks) les plus pertinents dans les bases de connaissances rattachées à un Agent / Workflow, et renvoie le contenu du fragment, le document source et le score de similarité. Utile pour construire votre propre RAG, tester la qualité de la recherche et diagnostiquer le taux de couverture des connaissances.

Remarques

  • La recherche porte sur les bases de connaissances rattachées à la version publiée de l'Agent / Workflow.
  • Cet endpoint est en lecture seule : il ne modifie ni l'Agent, ni le Workflow, ni la base de connaissances.
  • Une requête peut spécifier au maximum 10 data_ids ; au-delà, le code d'erreur 40332 est renvoyé.

Méthode de requête

POST

Endpoint

https://api-${endpoint}.gptbots.ai/v1/vector/match

Authentification

Pour plus de détails, consultez les instructions sur la méthode d'authentification dans la Vue d'ensemble de l'API.

Requête

Exemple de requête

Exemple 1 : rechercher dans des bases de connaissances précises

curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/vector/match' \ -H 'Authorization: Bearer ${API Key}' \ -H 'Content-Type: application/json' \ -d '{ "prompt": "Quelle est la politique de retour ?", "group_ids": ["6616e3f3d9d5cf1d5b6c8a21"], "top_k": 5, "doc_correlation": 0.5 }'
                      
                      curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/vector/match' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
    "prompt": "Quelle est la politique de retour ?",
    "group_ids": ["6616e3f3d9d5cf1d5b6c8a21"],
    "top_k": 5,
    "doc_correlation": 0.5
}'

                    
Ce bloc de code dans la fenêtre flottante

Exemple 2 : limiter à des documents précis et activer le reranking

curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/vector/match' \ -H 'Authorization: Bearer ${API Key}' \ -H 'Content-Type: application/json' \ -d '{ "prompt": "Quelle est la politique de retour ?", "data_ids": ["6616e4a2d9d5cf1d5b6c8a35", "6616e4a2d9d5cf1d5b6c8a36"], "top_k": 3, "embedding_rate": 0.8, "rerank_version": "BGE-Rerank" }'
                      
                      curl -X POST 'https://api-${endpoint}.gptbots.ai/v1/vector/match' \
-H 'Authorization: Bearer ${API Key}' \
-H 'Content-Type: application/json' \
-d '{
    "prompt": "Quelle est la politique de retour ?",
    "data_ids": ["6616e4a2d9d5cf1d5b6c8a35", "6616e4a2d9d5cf1d5b6c8a36"],
    "top_k": 3,
    "embedding_rate": 0.8,
    "rerank_version": "BGE-Rerank"
}'

                    
Ce bloc de code dans la fenêtre flottante

En-têtes de requête

Champ Type Description
Authorization Bearer ${API Key} Utilisez Authorization: Bearer ${API Key} pour l'authentification. Obtenez la clé API depuis la page Clé API.
Content-Type application/json Type de données ; la valeur doit être application/json.

Paramètres de la requête

Champ Type Obligatoire Description
prompt string Oui Texte de requête ou mots-clés utilisés pour l'appariement par similarité de vecteurs avec le contenu de la base de connaissances.
top_k int Oui Retourne les K fragments ayant la similarité la plus élevée. Plage valide : [1,50].
group_ids array Non IDs de bases de connaissances qui limitent le périmètre de recherche.
  • Si un ou plusieurs IDs sont fournis, la recherche s'effectue dans leur union ;
  • Si null ou non fourni, toutes les bases de connaissances sont recherchées ;
  • Si [], aucune base de connaissances n'est recherchée.
  • data_ids array Non IDs de documents qui limitent le périmètre de recherche, 10 au maximum par requête ; au-delà, le code d'erreur 40332 est renvoyé.
  • Si un ou plusieurs IDs sont fournis, la recherche s'effectue dans leur union ;
  • Si null ou non fourni, aucune restriction par document n'est appliquée ;
  • Si [], aucun document n'est recherché ;
  • Les IDs de documents s'obtiennent via l'endpoint Obtenir la liste des documents. Seuls les documents à l'état AVAILABLE peuvent être recherchés.
  • embedding_rate float Non Ratio de pondération entre la recherche par mots-clés et la recherche sémantique. Plage : [0,1], valeur par défaut 1.
  • 0 = uniquement mots-clés ;
  • 1 = uniquement sémantique ;
  • 0.4 = 40 % mots-clés, 60 % sémantique.
  • doc_correlation float Non Seuil de pertinence des connaissances. Les fragments dont le score est inférieur ne sont pas retournés. Un score élevé indique une plus grande pertinence, mais un seuil trop élevé peut ne laisser aucun fragment exploitable. Plage valide : [0.1,0.95].
    rerank_version string Non Nom du modèle de reranking. Le renseigner active le reranking, qui réordonne les fragments candidats pour une recherche plus précise. Options : BGE-Rerank, Jina-reranker-v2-base-multilingual, Jina-colbert-v2, BCE-Rerank.

    Combinaison de group_ids et data_ids

    group_ids data_ids Périmètre de recherche
    Non fourni / null Non fourni / null Toutes les bases de connaissances
    Spécifié Non fourni / null Tous les documents des bases spécifiées
    Non fourni / null Spécifié Les documents spécifiés
    Spécifié Spécifié L'union des deux
    [] [] Aucun résultat

    Utilisation recommandée

    • Recherche RAG sur une base de connaissances entière : ne transmettez que group_ids et omettez data_ids.
    • Pour limiter à des documents précis : envoyez data_ids par lots de 10 au maximum.
    • N'utilisez pas [] pour signifier « tout » : [] signifie « ne rien rechercher ».

    Réponse

    Exemple de réponse

    { "total": 2, "list": [ { "content": "Les articles non ouverts peuvent être retournés sans motif dans les 7 jours suivant la réception…", "data_id": "6616e4a2d9d5cf1d5b6c8a35", "document_name": "Politique de service après-vente.pdf", "score": 0.87 }, { "content": "Les frais de retour sont à la charge de l'acheteur, sauf en cas de défaut de qualité…", "data_id": "6616e4a2d9d5cf1d5b6c8a35", "document_name": "Politique de service après-vente.pdf", "score": 0.79 } ] }
                          
                          {
      "total": 2,
      "list": [
        {
          "content": "Les articles non ouverts peuvent être retournés sans motif dans les 7 jours suivant la réception…",
          "data_id": "6616e4a2d9d5cf1d5b6c8a35",
          "document_name": "Politique de service après-vente.pdf",
          "score": 0.87
        },
        {
          "content": "Les frais de retour sont à la charge de l'acheteur, sauf en cas de défaut de qualité…",
          "data_id": "6616e4a2d9d5cf1d5b6c8a35",
          "document_name": "Politique de service après-vente.pdf",
          "score": 0.79
        }
      ]
    }
    
                        
    Ce bloc de code dans la fenêtre flottante

    Réponse en cas de succès

    Champ Type Description
    total int Nombre de fragments retournés.
    list Tableau JSON Liste des fragments, du plus similaire au moins similaire.
    content string Contenu du fragment.
    data_id string ID du document auquel appartient le fragment.
    document_name string Nom du document auquel appartient le fragment.
    score float Score de similarité ; plus il est élevé, plus le fragment est pertinent.

    Réponse en cas d'échec

    Champ Type Description
    code int Code d'erreur.
    message string Détails de l'erreur.

    Codes d'erreur

    Statut HTTP Code Message Action recommandée
    400 40000 Erreur de paramètre Vérifiez les paramètres obligatoires et leurs plages (top_k [1,50], embedding_rate [0,1], doc_correlation [0.1,0.95]).
    401 40127 Échec de l'authentification du développeur Vérifiez que la clé API est correcte et appartient bien à cet Agent / Workflow.
    403 40332 Plus de 10 data_ids Une requête ne peut pas dépasser 10 data_ids. Découpez la requête en lots ou utilisez group_ids.
    — 20059 Agent/Workflow supprimé Vérifiez que l'Agent / Workflow ciblé existe toujours.

    Questions fréquentes

    Q1: Les endpoints « Obtenir la liste des bases de connaissances » et « Obtenir la liste des documents » fonctionnent : pourquoi celui-ci renvoie-t-il 403 ?

    A: Le plus souvent, plus de 10 data_ids ont été transmis (code d'erreur 40332). Les endpoints de listage n'ont pas cette limite, celui-ci l'a. Réduisez le nombre de data_ids ou utilisez group_ids.

    Q2: Le résultat est vide (total à 0). Comment diagnostiquer ?

    A: Vérifiez dans l'ordre : si group_ids ou data_ids a été transmis comme tableau vide [] ; si le seuil doc_correlation est trop élevé ; si les documents ciblés sont à l'état AVAILABLE ; et si la base de connaissances est rattachée à la version publiée de l'Agent / Workflow.