Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -154,10 +154,11 @@ Covered by 183 end-to-end scenario files (496 cases) that run against real gatew
- **Anthropic Messages API** — `POST /v1/messages` as a first-class route, working against
**any** configured upstream: requests and responses (including streaming) are translated
both ways when a model points at a non-Anthropic provider.
- **Routing & failover** — virtual/routing models with six strategies: `round_robin`,
`weighted` (with sticky/canary hashing), `failover`, plus metric-based `least_cost`,
`least_latency`, and `least_busy`. Retry budgets, cooldowns, tag-conditional targets,
and per-attempt timeouts.
- **Routing & failover** — virtual/routing models with six strategies: `round_robin`
(smooth weighted round-robin), `consistent_hash` (session affinity keyed by header /
cookie / API key / client IP), `failover`, plus metric-based `least_cost`,
`least_latency`, and `least_busy`. Per-target `priority` tiers (active/backup pools),
retry budgets, cooldowns, tag-conditional targets, and per-attempt timeouts.
- **Ensemble models** — fan one request out to a panel of models concurrently, then have a
judge model synthesize a single answer, with a minimum-successful-responses threshold.
- **Semantic routing** — one virtual model that dispatches by the *meaning* of each
Expand Down
6 changes: 5 additions & 1 deletion crates/aisix-admin/src/openapi.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2234,13 +2234,17 @@ fn add_variant_titles(doc: &mut Value) {
"/components/schemas/RoutingStrategy/oneOf",
&[
"Round robin",
"Weighted",
"Consistent hash",
"Failover",
"Least cost",
"Least latency",
"Least busy",
],
),
(
"/components/schemas/HashOnType/oneOf",
&["Header", "Cookie", "API key", "Client IP"],
),
(
"/components/schemas/SlsContentMode/oneOf",
&["Metadata only", "Full content"],
Expand Down
13 changes: 7 additions & 6 deletions crates/aisix-core/src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -47,12 +47,13 @@ pub use models::{
validate_rate_limit_policy, A2aAgent, A2aAuthType, A2aProtocolVersion, Adapter, AisixSnapshot,
ApiKey, AppliedGuardrail, CachePolicy, CooldownConfig, ExporterKind, Guardrail,
GuardrailExecution, GuardrailHookPoint, GuardrailKind, GuardrailMetricsSink,
GuardrailMonitorHit, KeywordConfig, KeywordPattern, McpAuthType, McpProtocolVersion,
McpRateLimit, McpServer, McpServerType, McpTransport, Model, ObservabilityExporter,
ParamConstraints, PassthroughAuthMode, PassthroughCredentialMode, PassthroughRoute,
PolicyScope, PolicyWindow, ProviderKey, RateLimit, RateLimitPolicy, RequestOverrides,
ResponseOverrides, Routing, RoutingStrategy, RoutingTarget, SchemaError, StreamDoneMarker,
TelemetryKind, TelemetryTags, WhenAllUnavailablePolicy, DEFAULT_COOLDOWN_TRIGGER_STATUSES,
GuardrailMonitorHit, HashOnSource, HashOnType, KeywordConfig, KeywordPattern, McpAuthType,
McpProtocolVersion, McpRateLimit, McpServer, McpServerType, McpTransport, Model,
ObservabilityExporter, ParamConstraints, PassthroughAuthMode, PassthroughCredentialMode,
PassthroughRoute, PolicyScope, PolicyWindow, ProviderKey, RateLimit, RateLimitPolicy,
RequestOverrides, ResponseOverrides, Routing, RoutingStrategy, RoutingTarget, SchemaError,
StreamDoneMarker, TelemetryKind, TelemetryTags, WhenAllUnavailablePolicy,
DEFAULT_COOLDOWN_TRIGGER_STATUSES,
};
pub use resource::{Resource, ResourceEntry};
pub use snapshot::{ResourceTable, SnapshotHandle};
Expand Down
5 changes: 4 additions & 1 deletion crates/aisix-core/src/models/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,10 @@ pub use provider_key::{
};
pub use rate_limit::{McpRateLimit, RateLimit};
pub use rate_limit_policy::{PolicyScope, PolicyWindow, RateLimitPolicy};
pub use routing::{Routing, RoutingStrategy, RoutingTarget, WhenAllUnavailablePolicy};
pub use routing::{
default_hash_on, HashOnSource, HashOnType, Routing, RoutingStrategy, RoutingTarget,
WhenAllUnavailablePolicy,
};
pub use schema::{
validate_a2a_agent, validate_a2a_agent_lenient, validate_apikey, validate_apikey_lenient,
validate_cache_policy, validate_cache_policy_lenient, validate_claim_mapping,
Expand Down
Loading