Configurer une limite de session
Définissez maxAiCredits la limite réversible des crédits IA pour la fenêtre de comptabilité actuelle de la session. L’utilisation est vérifiée après le retour des appels de modèle, de sorte qu’une réponse peut dépasser la valeur configurée avant que le runtime bloque l’appel de modèle suivant. Le Kit de développement logiciel (SDK) transfère cette valeur à l’interface CLI Copilot lorsqu’il crée ou reprend la session.
const session = await client.createSession({
onPermissionRequest: approveAll,
sessionLimits: {
maxAiCredits: 30,
},
});
const resumed = await client.resumeSession(session.sessionId, {
onPermissionRequest: approveAll,
sessionLimits: {
maxAiCredits: 30,
},
});
session = await client.create_session(
on_permission_request=PermissionHandler.approve_all,
session_limits={
"max_ai_credits": 30,
},
)
resumed = await client.resume_session(
session.session_id,
on_permission_request=PermissionHandler.approve_all,
session_limits={
"max_ai_credits": 30,
},
)
session, err := client.CreateSession(ctx, &copilot.SessionConfig{
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
SessionLimits: &rpc.SessionLimitsConfig{
MaxAiCredits: copilot.Float64(30),
},
})
resumed, err := client.ResumeSession(ctx, session.SessionID, &copilot.ResumeSessionConfig{
OnPermissionRequest: copilot.PermissionHandler.ApproveAll,
SessionLimits: &rpc.SessionLimitsConfig{
MaxAiCredits: copilot.Float64(30),
},
})
var session = await client.CreateSessionAsync(new SessionConfig
{
OnPermissionRequest = PermissionHandler.ApproveAll,
SessionLimits = new SessionLimitsConfig
{
MaxAiCredits = 30,
},
});
var resumed = await client.ResumeSessionAsync(session.SessionId, new ResumeSessionConfig
{
OnPermissionRequest = PermissionHandler.ApproveAll,
SessionLimits = new SessionLimitsConfig
{
MaxAiCredits = 30,
},
});
CopilotSession session = client
.createSession(new SessionConfig()
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
.setSessionLimits(new SessionLimitsConfig(30.0)))
.get();
CopilotSession resumed = client
.resumeSession(session.getSessionId(), new ResumeSessionConfig()
.setOnPermissionRequest(PermissionHandler.APPROVE_ALL)
.setSessionLimits(new SessionLimitsConfig(30.0)))
.get();
let limits = SessionLimitsConfig {
max_ai_credits: Some(30.0),
};
let session = client
.create_session(
SessionConfig::new()
.approve_all_permissions()
.with_session_limits(limits.clone()),
)
.await?;
let resumed = client
.resume_session(
ResumeSessionConfig::new(session.id().clone())
.approve_all_permissions()
.with_session_limits(limits),
)
.await?;
Observer les événements budgétaires
Les applications peuvent s’abonner aux événements de session pour mettre à jour l’interface utilisateur lorsque la limite réversible change ou que la session atteint le flux budgétaire épuisé.
| Type d’événement | Lorsqu’il est émis | Champs importants |
|---|---|---|
session.session_limits_ | Les limites de session actives ont changé. Une null``session valeur signifie qu’aucune limite n’est active. | session |
session.usage_checkpoint | L’environnement d’exécution enregistre de façon durable l’utilisation agrégée pour la reprise et la comptabilisation. | |
totalNanoAiu, total | ||
session_limits_ | La session a atteint le flux budgétaire épuisé et a besoin d’une décision de l’utilisateur avant de continuer. | |
requestId, maxAiCredits, usedAiCredits | ||
session_limits_ | Le message de limite atteinte a été corrigé. | |
requestId, response.action, response.additional, response.max |
Utilisez les types d’événements générés pour le langage sdk que vous utilisez. Par exemple, TypeScript réduit par event.type:
session.on((event) => {
if (event.type === "session_limits_exhausted.requested") {
showBudgetDialog({
requestId: event.data.requestId,
maxAiCredits: event.data.maxAiCredits,
usedAiCredits: event.data.usedAiCredits,
});
}
});