Sessions à plusieurs tours et entrée en continu¶
Cette rubrique décrit les principaux moyens d’envoyer des invites au SDK Cortex Code Agent : requêtes à invite unique quand vous voulez que query() gère le cycle de vie de la session pour vous, entrée diffusée pour la livraison incrémentielle des invites, et les sessions à plusieurs tours pour les conversations interactives qui préservent le contexte à travers les échanges.
Modèles d’entrée¶
Le SDK fournit trois modèles d’entrée :
Mode |
Quand utiliser |
API |
|---|---|---|
Saisie d’une invite unique |
Envoyez une invite avec |
|
Entrée diffusée |
Envoyer des messages utilisateur de manière incrémentielle à partir d’un itérable asynchrone au lieu d’une seule chaîne d’invite |
|
Session à plusieurs tours |
Conversations interactives : envoyer plusieurs invites, conserver le contexte, contrôler le cycle de vie de la session |
|
Requêtes à invite unique¶
La fonction query() est le moyen le plus simple d’utiliser un SDK. Elle peut envoyer soit une chaîne à invite unique, soit un itérable asynchrone des messages utilisateur du SDK, et elle renvoie les événements jusqu’à ce que l’agent produise un ResultMessage. Dans ce mode, « invite unique » fait référence au modèle d’entrée : la sortie continue normalement.
La fonction query() gère le cycle de vie complet de la session pour vous : elle crée une session, envoie l’invite, produit des événements et ferme la session lorsque le résultat arrive ou que l’itérateur est épuisé.
Ceci est différent des maxTurns/max_turns. Une requête à invite unique permet toujours à l’agent de prendre autant de tours internes que nécessaire, sous réserve de la limite de tours configurée. Le paramètre maxTurns: 1 ou max_turns=1 est une contrainte séparée qui limite l’agent à un tour interne et peut produire un résultat error_max_turns.
Sessions à plusieurs tours¶
Pour les conversations qui nécessitent plusieurs échanges, utilisez une session. L’agent conserve le contexte entre les tours, de sorte que les invites ultérieures puissent faire référence aux fichiers lus, aux analyses effectuées et aux sujets abordés dans les tours précédents.
Cycle de vie de la session¶
Appelez
createCortexCodeSession(options)pour démarrer une session. Cela génère le processus CLI.Appelez
session.send(prompt)pour envoyer un message utilisateur.Itérez
session.stream()pour recevoir des réponses. Arrêtez l’itération lorsque vous voyez un événementresult.Répétez les étapes 2-3 pour des tours supplémentaires.
Appelez
session.close()pour terminer la session et nettoyer le processus.
Créez un
CortexCodeSDKClientet appelezconnect()(ou utilisezasync with).Appelez
client.query(prompt)pour envoyer un message utilisateur.Itérez
client.receive_response()pour recevoir des messages jusqu’à unResultMessage(inclus).Répétez les étapes 2-3 pour des tours supplémentaires.
Appelez
client.disconnect()(ou laissez le blocasync withquitter).
Poursuivre une session précédente¶
Vous pouvez reprendre une conversation à partir d’une session précédente. L’agent charge l’historique de la conversation précédente et reprend là où il s’est arrêté.
Vous pouvez également reprendre une session spécifique par ID :
Faire un fork de session¶
Le fork crée une nouvelle session qui commence par l’historique complet de la conversation d’une session existante. La session originale n’est pas modifiée. Ceci est utile pour explorer des approches alternatives sans perdre la conversation initiale.
Interrompre un tour¶
Votre application peut demander une interruption pendant que l’agent traite un tour. Cela a le même effet que d’appuyer sur Esc dans la CLI. La session reste active pour d’autres invites.
Appel d’interruption direct¶
Appelez la méthode interrupt() pour envoyer directement une requête d’interruption :
Contrôleur d’annulation/événement d’annulation¶
Vous pouvez également envoyer un signal d’annulation au moment de la création de la session. Lorsque le signal se déclenche, le SDK envoie automatiquement la même requête d’interruption.
Note
Dans TypeScript, transmettez un``AbortController`` dont la méthode abort() déclenche la requête d’interruption. En Python, transmettez un asyncio.Event dont la méthode set() déclenche la requête d’interruption. Dans les deux cas, la session reste en active après l’interruption.
Avis juridiques¶
Lorsque votre configuration de Cortex Code utilise un modèle fourni conformément aux Conditions de répercussion relatives aux modèles et aux services, votre utilisation de ce modèle est en outre soumise aux conditions de ce modèle sur cette page.
La classification des données d’entrées et de sorties est présentée dans la table suivante.
Classification des données d’entrée |
Classification des données de sortie |
Désignation |
|---|---|---|
Usage Data |
Données sur les clients |
Fonctionnalités AI couvertes [1] |
Pour plus d’informations, reportez-vous à Snowflake AI et ML.