Skip to main content

세션 제한

세션 제한을 사용하면 애플리케이션이 Copilot 세션에 대한 AI 크레딧 예산을 설정할 수 있습니다. 세션을 생성하거나 재개할 때 현재 회계 기간의 소프트 캡을 설정하려면 sessionLimits를 사용합니다.

이 기사에서

세션 제한 구성

maxAiCredits를 세션의 현재 정산 기간에 대한 AI 크레딧 소프트 캡으로 설정하세요. 모델 호출이 반환된 후 사용량이 확인되므로 런타임이 다음 모델 호출을 차단하기 전에 하나의 응답이 구성된 값을 초과할 수 있습니다. 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,
    },
});

예산 이벤트 관찰

애플리케이션은 세션 이벤트를 구독하여 소프트 캡이 변경되거나 세션이 고갈된 예산 흐름에 도달할 때 UI를 업데이트할 수 있습니다.

이벤트 유형방출될 때중요 필드
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,
        });
    }
});