Skip to main content

Ограничения сессий

Ограничения сессий позволяют приложению устанавливать бюджет AI-кредитов для сессии Copilot. При создании или возобновлении сессии используйте sessionLimits мягкий лимит для текущего бухгалтерского окна.

Настройте лимит сессий

Установите maxAiCredits софтлимит AI Credits для текущего бухгалтерского окна сессии. Использование проверяется после возвращения вызовов модели, поэтому один ответ может превысить заданное значение до того, как время выполнения блокирует следующий вызов модели. SDK пересылает это значение Copilot CLI при создании или возобновлении сессии.

Языки кода navigation

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

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

Наблюдайте за бюджетными событиями

Приложения могут подписываться на события сессий для обновления интерфейса, когда меняется мягкий лимит или сессия достигает исчерпанного бюджета.

Тип событияКогда он излучаетсяВажные области
session.session_limits_changedОграничения активных сессий изменились. Значение null``sessionLimits означает, что ограничения не активны.sessionLimits.maxAiCredits?
session.usage_checkpointВремя выполнения фиксирует устойчивое агрегированное использование для резюме и бухгалтерии.
totalNanoAiu, totalPremiumRequests?
session_limits_exhausted.requestedСессия достигла истощённого бюджета и требует решения пользователя перед продолжением.
requestId, maxAiCredits, usedAiCredits
session_limits_exhausted.completedВопрос о исчерпанном лимите был решен.
requestId, response.action, response.additionalAiCredits?, response.maxAiCredits?

Используйте сгенерированные типы событий для используемого вами языка SDK. Например, TypeScript сужает на 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,
        });
    }
});