Aller au contenu

Tape un mot pour chercher dans les pages.

↑↓ Choisir↵ OuvrirÉchap Fermer

Référence

La requête que le widget envoie à l'assistant, la réponse, les règles de validation et les codes d'erreur.

Le widget de ton site appelle une seule route. Tu peux l’appeler toi-même, depuis une page servie par une adresse déclarée dans la console, pour intégrer l’assistant ailleurs.

POST https://docs.hgdc.ch/api/v1/ask
Content-Type: application/json
Origin: https://docs.acme.ch

Requête

{
"project": "k57a8m2x9q4n1b3c5d7e9f0g2h4j6k8m",
"question": "Comment publier ma doc ?",
"page": "/guides/publier/",
"previous": ["j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m"]
}
ChampObligatoireRègle
projectouiIdentifiant du projet, 8 à 64 caractères, lettres minuscules et chiffres.
questionouiEntre 2 et 1 000 caractères, espaces de début et de fin retirés.
pagenonChemin de la page ouverte, qui commence par /. 512 caractères au plus. Les passages de cette page sont légèrement favorisés.
previousnonLes id des réponses précédentes de la conversation, 3 au plus.

Le corps de la requête fait 32 Ko au plus.

L’en-tête Origin doit être l’adresse du site ou une des autres adresses déclarées dans Réglages. Sans cet en-tête, ou avec une autre origine, la requête est refusée. Voir Adresse du site et domaines.

Le champ previous

L’assistant relit lui-même ce qu’il a répondu : tu ne fournis pas le texte des réponses précédentes, seulement leurs id. Seules les réponses answered du même projet, datées de moins de deux heures, sont reprises. Un id inconnu ou plus ancien est ignoré sans erreur.

Réponse

{
"id": "j97f2k8m1q4n6b3c5d7e9f0g2h4j6k8m",
"status": "answered",
"answer": "Importe le dépôt dans Host[^1], puis synchronise le projet dans la console[^2].",
"sources": [
{ "n": 1, "title": "Publier avec Host", "section": "Avec Host", "url": "https://docs.acme.ch/guides/publier/#avec-host" },
{ "n": 2, "title": "Publier avec Host", "section": "Relier la console", "url": "https://docs.acme.ch/guides/publier/#relier-la-console" }
]
}
ChampContenu
idIdentifiant de la réponse. Transmets-le dans previous pour la question suivante.
statusanswered si la doc répond, no_answer sinon.
answerMarkdown simple. [^n] renvoie à la source n.
sourcesLes passages réellement cités : n, title, section (ou null), url. Vide quand status vaut no_answer.

Quand status vaut no_answer, answer dit que la doc ne répond pas et propose de reformuler. Une réponse sans source valide est traitée de la même façon.

Erreurs

Chaque erreur a le même format :

{ "error": { "code": "rate_limited", "message": "Trop de questions d'un coup. Réessaie dans une minute." } }
Code HTTPerror.codeQuand
400invalid_requestCorps illisible, trop volumineux, ou champ hors règle.
404project_not_foundIdentifiant de projet inconnu.
403assistant_disabledL’assistant est coupé dans la console.
403origin_not_allowedL’origine n’est pas une adresse du projet, ou l’en-tête manque.
409not_indexedLe site n’est pas encore indexé.
429rate_limitedTrop de questions dans la minute, ou pour ce visiteur ou cette doc aujourd’hui. Le message dit quand réessayer.
429quota_exceededLe quota mensuel de l’organisation est atteint.
503unavailableLe modèle ne répond pas. Réessaie dans un moment.

Le champ error.message est une phrase en français, à montrer telle quelle à l’utilisateur. Les seuils de chaque limite sont dans Limites.