Configuración de un límite de sesión
Establezca maxAiCredits como el límite flexible de créditos de IA para la ventana de contabilidad actual de la sesión. El uso se comprueba después de que se devuelvan las llamadas del modelo, por lo que una respuesta puede superar el valor configurado antes de que el tiempo de ejecución bloquee la siguiente llamada al modelo. El SDK reenvía este valor a la CLI de Copilot cuando crea o reanuda la sesión.
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?;
Observar eventos presupuestarios
Las aplicaciones pueden suscribirse a eventos de sesión para actualizar la interfaz de usuario cuando cambia el límite temporal o la sesión alcanza el flujo de presupuesto agotado.
| Tipo de evento | Cuando se emite | Campos importantes |
|---|---|---|
session.session_limits_ | Se han cambiado los límites de sesión activos. Un null``session valor significa que no hay límites activos. | session |
session.usage_checkpoint | El entorno de ejecución registra el uso agregado persistente para la reanudación y la contabilización. | |
totalNanoAiu, total | ||
session_limits_ | La sesión ha llegado al flujo de presupuesto agotado y requiere una decisión del usuario antes de continuar. | |
requestId, , maxAiCredits, usedAiCredits | ||
session_limits_ | Se corrigió el aviso de límite alcanzado. | |
requestId, response.action, , response.additional, response.max |
Use los tipos de eventos generados para el lenguaje del SDK que usa. Por ejemplo, TypeScript limita por 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,
});
}
});