Configurar um limite de sessão
Defina maxAiCredits como o limite flexível de Créditos de IA na janela de contabilização atual da sessão. O uso é verificado após o retorno de chamadas de modelo, portanto, uma resposta pode exceder o valor configurado antes que o runtime bloqueie a próxima chamada de modelo. O SDK encaminha esse valor para a CLI Copilot quando cria ou retoma a sessão.
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?;
Ver eventos orçamentários
Os aplicativos podem se inscrever em eventos da sessão para atualizar a interface do usuário quando o soft cap muda ou a sessão entra no fluxo de orçamento esgotado.
| Tipo de evento | Quando é emitido | Campos importantes |
|---|---|---|
session.session_limits_ | Os limites de sessões ativas foram alterados. Um null``session valor significa que nenhum limite está ativo. | session |
session.usage_checkpoint | O runtime registra o uso agregado persistente para retomada e contabilização. | |
totalNanoAiu, total | ||
session_limits_ | A sessão atingiu o fluxo de orçamento esgotado e precisa de uma decisão do usuário antes de continuar. | |
requestId, maxAiCredits, usedAiCredits | ||
session_limits_ | A mensagem de limite atingido foi corrigida. | |
requestId, response.action, , response.additional |
Use os tipos de evento gerados para o idioma do SDK que você está usando. Por exemplo, TypeScript restringe 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,
});
}
});