Konfigurieren eines Sitzungslimits
Setzt maxAiCredits auf den Softcap für AI Credits für den aktuellen Abrechnungszeitraum der Sitzung. Die Verwendung wird nach der Rückgabe von Modellaufrufen überprüft, sodass eine Antwort den konfigurierten Wert überschreiten kann, bevor die Laufzeit den nächsten Modellaufruf blockiert. Das SDK leitet diesen Wert beim Erstellen oder Fortsetzen der Sitzung an die Copilot CLI weiter.
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?;
Budgetereignisse überwachen
Anwendungen können Session-Ereignisse abonnieren, um die UI zu aktualisieren, wenn sich die Softcap ändert oder die Session in den Ablauf für ausgeschöpftes Budget eintritt.
| Ereignistyp | Wenn sie ausgegeben wird | Wichtige Felder |
|---|---|---|
session.session_limits_ | Die Grenzwerte für aktive Sitzungen wurden geändert. Ein null``session Wert bedeutet, dass keine Grenzwerte aktiv sind. | session |
session.usage_checkpoint | Die Laufzeit zeichnet aggregierte Nutzungsdaten zur Wiederaufnahme und Abrechnung dauerhaft auf. | |
totalNanoAiu, total | ||
session_limits_ | Die Sitzung hat den Ablauf bei ausgeschöpftem Budget erreicht und erfordert eine Entscheidung des Benutzers, bevor sie fortgesetzt werden kann. | |
requestId, max | ||
session_limits_ | Die Meldung zum erreichten Limit wurde behoben. | |
requestId, response.action, response.additional, response.max |
Verwenden Sie die generierten Ereignistypen für die verwendete SDK-Sprache. Beispielsweise grenzt TypeScript mithilfe von event.type ein:
session.on((event) => {
if (event.type === "session_limits_exhausted.requested") {
showBudgetDialog({
requestId: event.data.requestId,
maxAiCredits: event.data.maxAiCredits,
usedAiCredits: event.data.usedAiCredits,
});
}
});