Copilot Credits finansierer agent- og Copilot-forbrug, som du opbygger med Copilot Studio på tværs af dine Power Platform-miljøer. Som administrator tildeler du kreditter til de miljøer, der har brug for dem, og beslutter, hvad der sker, når et miljø løber tør for sine tildelte kreditter. Ud over oplevelsen med Power Platform Administration kan du administrere Copilot kreditallokeringer med kode ved hjælp af Power Platform API og ADMINISTRATIONS-SDK'erne. Automatisering af kreditallokering er nyttig, når du distribuerer kapacitet på tværs af mange miljøer, standardiserer funktionsmåden for overage eller administrerer allokeringer som en del af en udrulningspipeline.
I dette selvstudium lærer du, hvordan du kan:
- Administrer Copilot kreditter i Power Platform Administration.
- Godkend ved hjælp af Power Platform API.
- Få vist de Copilot kreditter, der kan tildeles.
- Allokere Copilot kreditter til et miljø.
- Angiv, om et miljø bruger tenantkapacitet.
Copilot Kreditter repræsenteres af berettigelses-id'et MCSMessages og administreres via handlingerne licensing/allocationsV2 i Power Platform-API'en. Handlingen allocationsV2/availability rapporterer, hvor meget kapacitet der er tilgængelig at allokere, og handlingen allocationsV2 skriver et miljøs allokering. Alle programmatiske eksempler i denne artikel bruger API-version 2024-10-01.
Hver miljøallokering indeholder et sæt håndhævelsesregler , der bestemmer, hvad der sker, når miljøet bruger sine tildelte kreditter. Indstillingen Brug den tilgængelige kapacitet i min lejer i administrationscenteret svarer til reglen om håndhævelse TenantPool: Når den er aktiveret, fortsætter miljøet med at trække på ikke-allokeret lejerkapacitet, efter at dets egen tildeling er opbrugt; når den er deaktiveret, er miljøet begrænset til sin tildeling.
Advarsel!
Hvis en udgivet regel for miljøgruppe gælder for Brug den tilgængelige kapacitet i min tenant, kan du ikke tilsidesætte indstillingen for et bestemt miljø. Opdateringer via Power Platform Administration, Power Platform API eller SDK'er til administration afvises med TenantPoolLockedByPolicy fejlen. Rediger og udgiv reglen for miljøgruppen igen, eller fjern miljøet fra gruppen for at administrere indstillingen uafhængigt af hinanden. Efter fjernelsen bevarer miljøet den værdi, der sidst blev anvendt af gruppen, men indstillingen kan redigeres. Du kan få flere oplysninger om tilgængelige grupperegler under Regler for miljøgrupper.
Prerequisites
En appregistrering, der er konfigureret til Power Platform API. Bemærk appregistreringens program-id (klient) og mappe-id (lejer).
Tilladelse til at administrere licenser og kapacitet. Log på som bruger med rollen Power Platform-administrator eller global administrator eller en tilsvarende rolle, der kan administrere licenser og kapacitet.
I SDK-eksemplerne skal du installere det SDK, der sendes månedligt, i det offentlige galleri:
dotnet add package Microsoft.PowerPlatform.Management
pip install powerplatform-management
Administrer Copilot kreditallokeringer
I dette afsnit vises det samme flow fra slutpunkt til slutpunkt – kontrollér, hvad der er tilgængeligt, allokerer kreditter til et miljø og styrer, om miljøet trækker på lejerkapacitet – i Power Platform Administration og i hvert SDK. Brug fanerne til at skifte mellem Administration og dit foretrukne sprog.
Log på Power Platform-administrationscenteret.
Vælg Licenser i navigationsruden.
Under Produkter skal du vælge Copilot Studio og derefter vælge Administrer Copilot Kreditter.
Vælg det miljø, du vil administrere. Brug søgefeltet til at finde et miljø efter navn.
Under Allokere kapacitet skal du angive antallet af Copilot kreditter, der skal allokeres til miljøet. Ruden viser, hvor mange kreditter der forbruges, hvor mange der allerede er allokeret, og hvor mange der er tilgængelige, der kan tildeles fra din lejer.
Under Kapacitetsovertagelser skal du vælge eller fjerne markeringen Aftræk fra den tilgængelige kapacitet i min lejer for at styre, hvad der sker, når miljøet udtømmer tildelingen:
-
Valgt: Når miljøets tildelte kreditter er forbrugt, trækker det fortsat fra din lejers ikke-tildelte kapacitet.
-
Ryddet: Miljøet er begrænset ved sin allokering og holder op med at bruge, når allokeringen er opbrugt.
Vælg Gem.
Følgende eksempel logger på interaktivt som den nuværende bruger, læser de Copilot-kreditter, der er tilgængelige til tildeling, tildeler kreditter til et miljø og slår Træk fra den tilgængelige kapacitet i min lejer fra, så miljøet er begrænset til sin tildeling.
# Requires the MSAL.PS module: Install-Module MSAL.PS -Scope CurrentUser
Import-Module "MSAL.PS"
$clientId = "<application (client) ID of your app registration>"
$tenantId = "<directory (tenant) ID>"
$environmentId = "<environment ID>"
$apiBaseUrl = "https://api.powerplatform.com"
$apiVersion = "2024-10-01"
# Sign in interactively and request a token for the Power Platform API
$auth = Get-MsalToken -ClientId $clientId -TenantId $tenantId -Scope "https://api.powerplatform.com/.default" -Interactive
$headers = @{ Authorization = "Bearer $($auth.AccessToken)" }
# 1. View the Copilot Credits available to allocate for the environment
$filter = [uri]::EscapeDataString("environmentId eq '$environmentId' and EntitlementId in ('MCSMessages')")
$availability = Invoke-RestMethod -Method Get `
-Uri "$apiBaseUrl/licensing/allocationsV2/availability?api-version=$apiVersion&`$filter=$filter" `
-Headers $headers
$availability.entitlementAllocationsAvailable |
ForEach-Object { Write-Host "$($_.entitlementId): $($_.availableQuantity) available" }
# 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
$allocationBody = @{
scope = @{ environmentId = $environmentId }
allocatedEntitlements = @(
@{
entitlementId = "MCSMessages"
allocation = @{ quantity = 5000 }
enforcementRules = @(
# Disable TenantPool so the environment is capped at its allocation.
# Set enabled = $true to let the environment draw from tenant capacity.
@{ ruleType = "TenantPool"; enabled = $false }
)
}
)
} | ConvertTo-Json -Depth 10
Invoke-RestMethod -Method Put `
-Uri "$apiBaseUrl/licensing/allocationsV2?api-version=$apiVersion" `
-Headers $headers -ContentType "application/json" -Body $allocationBody
Write-Host "Updated Copilot credit allocation for environment $environmentId"
Følgende eksempel logger interaktivt på ved hjælp af klient-id'et for din appregistrering, læser de Copilot kreditter, der er tilgængelige til tildeling, tildeler kreditter til et miljø og slår Draw fra fra den tilgængelige kapacitet i min lejer, så miljøet er begrænset ved tildelingen.
using Microsoft.PowerPlatform.Management;
using Microsoft.PowerPlatform.Management.Models;
// Create an interactive client using your app registration's client ID.
// A browser window opens for sign-in.
var factory = new ServiceClientFactory();
var client = factory.Create("YOUR_CLIENT_ID");
var environmentId = "<environment ID>";
var apiVersion = "2024-10-01";
// 1. View the Copilot Credits available to allocate for the environment
var availability = await client.Licensing.AllocationsV2.Availability.GetAsync(config =>
{
config.QueryParameters.ApiVersion = apiVersion;
config.QueryParameters.Filter =
$"environmentId eq '{environmentId}' and EntitlementId in (MCSMessages)";
});
foreach (var entitlement in availability.EntitlementAllocationsAvailable)
{
Console.WriteLine($"{entitlement.EntitlementId}: {entitlement.AvailableQuantity} available");
}
// 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
var request = new AllocationPutRequestModel
{
Scope = new ScopeModel { EnvironmentId = environmentId },
AllocatedEntitlements = new List<EntitlementAllocationModel>
{
new EntitlementAllocationModel
{
EntitlementId = "MCSMessages",
Allocation = new AllocationModel { Quantity = 5000 },
EnforcementRules = new List<AllocationEnforcementRule>
{
// Disable TenantPool so the environment is capped at its allocation.
// Set Enabled = true to let the environment draw from tenant capacity.
new AllocationEnforcementRule
{
RuleType = AllocationEnforcementRuleTypes.TenantPool,
Enabled = false
}
}
}
}
};
await client.Licensing.AllocationsV2.PutAsync(request, config =>
{
config.QueryParameters.ApiVersion = apiVersion;
});
Console.WriteLine($"Updated Copilot credit allocation for environment {environmentId}");
Følgende eksempel logger interaktivt på ved hjælp af klient-id'et for din appregistrering, læser de Copilot kreditter, der er tilgængelige til tildeling, tildeler kreditter til et miljø og slår Draw fra fra den tilgængelige kapacitet i min lejer, så miljøet er begrænset ved tildelingen.
import asyncio
from azure.identity import InteractiveBrowserCredential
from kiota_abstractions.base_request_configuration import RequestConfiguration
from kiota_authentication_azure.azure_identity_authentication_provider import (
AzureIdentityAuthenticationProvider,
)
from kiota_http.httpx_request_adapter import HttpxRequestAdapter
from mspp_management.service_client_base import ServiceClientBase
from mspp_management.licensing.allocations_v2.allocations_v2_request_builder import (
AllocationsV2RequestBuilder,
)
from mspp_management.licensing.allocations_v2.availability.availability_request_builder import (
AvailabilityRequestBuilder,
)
from mspp_management.models.allocation_put_request_model import AllocationPutRequestModel
from mspp_management.models.scope_model import ScopeModel
from mspp_management.models.entitlement_allocation_model import EntitlementAllocationModel
from mspp_management.models.allocation_model import AllocationModel
from mspp_management.models.allocation_enforcement_rule import AllocationEnforcementRule
from mspp_management.models.allocation_enforcement_rule_types import (
AllocationEnforcementRuleTypes,
)
API_VERSION = "2024-10-01"
async def manage_copilot_credits(client: ServiceClientBase, environment_id: str):
# 1. View the Copilot Credits available to allocate for the environment
query_params = AvailabilityRequestBuilder.AvailabilityRequestBuilderGetQueryParameters(
api_version=API_VERSION,
filter=f"environmentId eq '{environment_id}' and EntitlementId in (MCSMessages)",
)
availability = await client.licensing.allocations_v2.availability.get(
request_configuration=RequestConfiguration(query_parameters=query_params)
)
for entitlement in availability.entitlement_allocations_available:
print(f"{entitlement.entitlement_id}: {entitlement.available_quantity} available")
# 2. Allocate Copilot Credits to the environment and turn off tenant capacity draw
# Disable TenantPool so the environment is capped at its allocation.
# Set enabled = True to let the environment draw from tenant capacity.
tenant_pool_rule = AllocationEnforcementRule()
tenant_pool_rule.rule_type = AllocationEnforcementRuleTypes.TenantPool
tenant_pool_rule.enabled = False
entitlement = EntitlementAllocationModel()
entitlement.entitlement_id = "MCSMessages"
entitlement.allocation = AllocationModel()
entitlement.allocation.quantity = 5000
entitlement.enforcement_rules = [tenant_pool_rule]
request = AllocationPutRequestModel()
request.scope = ScopeModel()
request.scope.environment_id = environment_id
request.allocated_entitlements = [entitlement]
put_params = AllocationsV2RequestBuilder.AllocationsV2RequestBuilderPutQueryParameters(
api_version=API_VERSION,
)
await client.licensing.allocations_v2.put(
request, request_configuration=RequestConfiguration(query_parameters=put_params)
)
print(f"Updated Copilot credit allocation for environment {environment_id}")
async def main():
# Sign in interactively using your app registration's client ID.
credential = InteractiveBrowserCredential(client_id="YOUR_CLIENT_ID")
auth_provider = AzureIdentityAuthenticationProvider(
credentials=credential,
scopes=["https://api.powerplatform.com/.default"],
)
adapter = HttpxRequestAdapter(authentication_provider=auth_provider)
client = ServiceClientBase(adapter)
await manage_copilot_credits(client, environment_id="<environment ID>")
asyncio.run(main())