![]() |
VOOZH | about |
dotnet add package AICentral --version 0.21.6
NuGet\Install-Package AICentral -Version 0.21.6
<PackageReference Include="AICentral" Version="0.21.6" />
<PackageVersion Include="AICentral" Version="0.21.6" />Directory.Packages.props
<PackageReference Include="AICentral" />Project file
paket add AICentral --version 0.21.6
#r "nuget: AICentral, 0.21.6"
#:package AICentral@0.21.6
#addin nuget:?package=AICentral&version=0.21.6Install as a Cake Addin
#tool nuget:?package=AICentral&version=0.21.6Install as a Cake Tool
AI Central gives you control over your AI services.
graemefoster/aicentral.logging.piistrippinggraemefoster/aicentral.ratelimiting.distributedredisgraemefoster/aicentral.azureaisearchvectorizerSee docs on Github for more details.
This sample produces a AI-Central proxy that
{
"AICentral": {
"Endpoints": [
{
"Type": "AzureOpenAIEndpoint",
"Name": "openai-1",
"Properties": {
"LanguageEndpoint": "https://<my-ai>.openai.azure.com",
"AuthenticationType": "ApiKey",
"ApiKey": "<key>"
}
}
],
"EndpointSelectors": [
{
"Type": "SingleEndpoint",
"Name": "default",
"Properties": {
"Endpoint": "openai-1"
}
}
],
"AuthProviders": [
{
"Type": "ApiKey",
"Name": "apikey",
"Properties": {
"Clients": [
{
"ClientName": "Consumer-1",
"Key1": "<random-key>",
"Key2": "<random-key>"
}
]
}
}
],
"Pipelines": [
{
"Name": "OpenAIPipeline",
"Host": "mypipeline.mydomain.com",
"EndpointSelector": "default",
"AuthProvider": "apikey",
"OpenTelemetryConfig": {
"AddClientNameTag": true,
"Transmit": true
}
}
]
}
}
This pipeline will:
{
"AICentral": {
"Endpoints": [
{
"Type": "AzureOpenAIEndpoint",
"Name": "openai-priority",
"Properties": {
"LanguageEndpoint": "https://<my-ai>.openai.azure.com",
"AuthenticationType": "Entra|EntraPassThrough|ApiKey",
"MaxConcurrency": 10,
"ModelMappings": {
"Gpt35Turbo0613": "MyGptModel"
}
}
},
{
"Type": "OpenAIEndpoint",
"Name": "openai-fallback",
"Properties": {
"LanguageEndpoint": "https://api.openai.com",
"ModelMappings": {
"Gpt35Turbo0613": "gpt-3.5-turbo",
"Ada002Embedding": "text-embedding-ada-002"
},
"ApiKey": "<my-api-key>",
"Organization": "<optional-organisation>"
}
}
],
"AuthProviders": [
{
"Type": "Entra",
"Name": "simple-aad",
"Properties": {
"Entra": {
"ClientId": "<my-client-id>",
"TenantId": "<my-tenant-id>",
"Instance": "https://login.microsoftonline.com/",
"Audience": "<custom-audience>"
}
}
}
],
"EndpointSelectors": [
{
"Type": "Prioritised",
"Name": "my-endpoint-selector",
"Properties": {
"PriorityEndpoints": ["openai-1"],
"FallbackEndpoints": ["openai-fallback"]
}
}
],
"GenericSteps": [
{
"Type": "AspNetCoreFixedWindowRateLimiting",
"Name": "token-rate-limiter",
"Properties": {
"LimitType": "PerConsumer|PerAICentralEndpoint",
"MetricType": "Tokens",
"Options": {
"Window": "00:01:00",
"PermitLimit": 1000
}
}
},
{
"Type": "AspNetCoreFixedWindowRateLimiting",
"Name": "window-rate-limiter",
"Properties": {
"LimitType": "PerConsumer|PerAICentralEndpoint",
"MetricType": "Requests",
"Options": {
"Window": "00:00:10",
"PermitLimit": 100
}
}
},
{
"Type": "AzureMonitorLogger",
"Name": "azure-monitor-logger",
"Properties": {
"WorkspaceId": "<workspace-id>",
"Key": "<key>",
"LogPrompt": true,
"LogResponse": false,
"LogClient": true
}
},
{
"Type": "BulkHead",
"Name": "bulk-head",
"Properties": {
"MaxConcurrency": 20
}
}
],
"Pipelines": [
{
"Name": "MyPipeline",
"Host": "prioritypipeline.mydomain.com",
"EndpointSelector": "my-endpoint-selector",
"AuthProvider": "simple-aad",
"Steps": [
"window-rate-limiter",
"bulk-head",
"azure-monitor-logger"
],
"OpenTelemetryConfig": {
"AddClientNameTag": true,
"Transmit": true
}
}
]
}
}
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 net8.0 is compatible. net8.0-android net8.0-android was computed. net8.0-browser net8.0-browser was computed. net8.0-ios net8.0-ios was computed. net8.0-maccatalyst net8.0-maccatalyst was computed. net8.0-macos net8.0-macos was computed. net8.0-tvos net8.0-tvos was computed. net8.0-windows net8.0-windows was computed. net9.0 net9.0 was computed. net9.0-android net9.0-android was computed. net9.0-browser net9.0-browser was computed. net9.0-ios net9.0-ios was computed. net9.0-maccatalyst net9.0-maccatalyst was computed. net9.0-macos net9.0-macos was computed. net9.0-tvos net9.0-tvos was computed. net9.0-windows net9.0-windows was computed. net10.0 net10.0 was computed. net10.0-android net10.0-android was computed. net10.0-browser net10.0-browser was computed. net10.0-ios net10.0-ios was computed. net10.0-maccatalyst net10.0-maccatalyst was computed. net10.0-macos net10.0-macos was computed. net10.0-tvos net10.0-tvos was computed. net10.0-windows net10.0-windows was computed. |
This package is not used by any NuGet packages.
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.21.6 | 8,769 | 9/9/2025 |
| 0.21.6-pullrequest0161-0009 | 188 | 9/9/2025 |
| 0.21.6-pullrequest0161-0006 | 176 | 9/9/2025 |
| 0.21.6-pullrequest0161-0005 | 190 | 9/9/2025 |
| 0.21.6-pullrequest0161-0004 | 188 | 9/9/2025 |
| 0.21.5 | 202 | 7/18/2025 |
| 0.21.4 | 2,804 | 2/21/2025 |
| 0.21.4-pullrequest0155-0003 | 132 | 2/21/2025 |
| 0.21.3 | 171 | 2/21/2025 |
| 0.21.3-pullrequest0155-0002 | 128 | 1/30/2025 |
| 0.21.1 | 698 | 1/14/2025 |
| 0.21.1-pullrequest0153-0003 | 123 | 1/14/2025 |
| 0.21.0 | 481 | 12/9/2024 |
| 0.21.0-pullrequest0152-0005 | 135 | 12/9/2024 |
| 0.21.0-pullrequest0152-0004 | 129 | 12/9/2024 |
| 0.21.0-pullrequest0152-0003 | 125 | 12/9/2024 |
| 0.21.0-pullrequest0152-0002 | 140 | 12/9/2024 |
| 0.20.7 | 329 | 11/26/2024 |
| 0.20.7-pullrequest0151-0002 | 130 | 11/26/2024 |
| 0.20.6 | 473 | 11/1/2024 |
releasenotes.md