Skip to main content

Limites de sessão

Os limites de sessão permitem que um aplicativo defina um orçamento de Créditos de IA para uma sessão de Copilot. Use sessionLimits ao criar ou retomar uma sessão para definir um limite flexível para a janela de contabilidade atual.

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.

Idiomas de código navigation

TypeScript
const session = await client.createSession({
    onPermissionRequest: approveAll,
    sessionLimits: {
        maxAiCredits: 30,
    },
});

const resumed = await client.resumeSession(session.sessionId, {
    onPermissionRequest: approveAll,
    sessionLimits: {
        maxAiCredits: 30,
    },
});

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 eventoQuando é emitidoCampos importantes
session.session_limits_changedOs limites de sessões ativas foram alterados. Um null``sessionLimits valor significa que nenhum limite está ativo.sessionLimits.maxAiCredits?
session.usage_checkpointO runtime registra o uso agregado persistente para retomada e contabilização.
totalNanoAiu, totalPremiumRequests?
session_limits_exhausted.requestedA 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_exhausted.completedA mensagem de limite atingido foi corrigida.
requestId, response.action, , response.additionalAiCredits?``response.maxAiCredits?

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,
        });
    }
});