Skip to content

Exécution de requêtes App LLM

L’App LLM est le concept centrale de la solution. Elle est en charge de l’orchestration des Grands Modèles de Langage (LLM) et des outils en lien (par exemple la recherche sémantique de fragments de document).

Les Apps LLM de type Question-Réponse ont des Sources de données pour extraire les éléments de réponses à destination des utilisateurs.

Authentification et autorisation

Une clé d’API est nécessaire pour l’invocation de l’API d’exécution de requêtes.

Cette clé est à positionner dans une entête HTTP wikit-semantics-api-key.

Elle est mise à disposition par Wikit.

Exécution de requête

POST /semantics/apps/{llm_app_id}/query-executions

bash
curl "https://apis.wikit.ai/semantics/apps/$SEMANTICS_APP_ID/query-executions" \
-H "Content-Type: application/json" \
-H "Wikit-Semantics-API-Key: $SEMANTICS_API_KEY" \
-H "X-Wikit-Response-Format: json" \
-H "X-Wikit-Organization-Id: $SEMANTICS_ORG_ID" \
-d '{
  "query": "Combien de jours de congés exceptionnels ai-je droit pour mon mariage ?"
}'

Réponse

jsx
{
    "answer": "En France, vous avez droit à 4 jours de congé exceptionnel pour votre mariage ou votre PACS, selon le Code du travail (article L3142-1).",
    "queryId": "67c5646e05d2ed84ac20495d",
    "conversation_id": "67c5646e05d2ed84ac20495c",
    "metadata": null
}

Exécution de requête avec streaming

POST /semantics/apps/{llm_app_id}/query-executions?is_stream_mode=true

Le streaming de réponse est le fonctionnement habituel de la génération token par token des LLM.

Pour l’activer, il suffit de positionner le paramètre is_stream_mode à true dans la partie query de l’URL :

bash
curl "https://apis.wikit.ai/semantics/apps/$SEMANTICS_APP_ID/query-executions?is_stream_mode=true" \
-H 'Content-Type: application/json' \
-H "Wikit-Semantics-API-Key: $SEMANTICS_API_KEY" \
-H "X-Wikit-Response-Format: json" \
-H "X-Wikit-Organization-Id: $SEMANTICS_ORG_ID" \
-d '{
  "query": "Combien de jours de congés exceptionnels ai-je droit pour mon mariage ?"
}'

Réponse

jsx
data: {"queryId": "67c565542c8f2bb8fb52d43a", "chunk":"En "}STOP

data: {"queryId": "67c565542c8f2bb8fb52d43a", "chunk":"Fra"}STOP

data: {"queryId": "67c565542c8f2bb8fb52d43a", "chunk":" ce"}STOP

data: {"queryId": "67c565542c8f2bb8fb52d43a", "chunk":" vous "}STOP

data: {"queryId": "67c565542c8f2bb8fb52d43a", "chunk":" avec"}STOP

Exécution de requête dans une conversation existante

Avec le type d’app LLM Question-Réponse conversationnelle, une conversation est créée à la première exécution de requête via le point de terminaison /semantics/apps/{llm_app_id}/query-executions. L’ID de conversation est renvoyé dans la sortie JSON ou dans les Headers de la réponse en mode streaming (X-wikit-Conversation-Id) : il doit être exploité dans les exécutions de requête suivantes pour poursuivre la conversation, via l’entête HTTP X-Wikit-Conversation-Id :

json
curl "https://apis.wikit.ai/semantics/apps/$SEMANTICS_APP_ID/query-executions?is_stream_mode=true" \
-H 'Content-Type: application/json' \
-H "Wikit-Semantics-API-Key: $SEMANTICS_API_KEY" \
-H "X-Wikit-Response-Format: json" \
-H "X-Wikit-Organization-Id: $SEMANTICS_ORG_ID" \
-H "X-Wikit-Conversation-Id: $SEMANTICS_CONVERSATION_ID" \
-d '{
  "query": "Et pour la naissance de ma fille ?"
}'