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
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
{
"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 :
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
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"}STOPExé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 :
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 ?"
}'