axScoreProvidersForRequest
function axScoreProvidersForRequest(providers: AxAIService<unknown, unknown, string>[], requirements: MediaRequirements & object): ProviderCapabilityScore[];
Defined in: https://github.com/ax-llm/ax/blob/9a5a7060a48f9eef46efc680b0cdf6b42bff5df2/src/ax/ai/capabilities.ts#L284
Scores multiple AI providers based on how well they meet request requirements.
Uses a weighted scoring system where providers earn points for supported capabilities:
- Base functionality: +10 points
- Media support (images/audio/files/URLs): +25 points each
- Core features (functions/streaming/caching): +8-15 points each
- Missing critical capabilities: -10 points each
- Bonus points for advanced features (large file support, persistent caching, etc.)
Example
const requirements = axAnalyzeRequestRequirements(request);
const scores = axScoreProvidersForRequest([openai, gemini, cohere], requirements);
console.log(`Best: ${scores[0].provider.getName()} (${scores[0].score} points)`);
console.log(`Supports: ${scores[0].supportedCapabilities.join(', ')}`);
Parameters
Parameter | Type | Description |
---|---|---|
providers | AxAIService <unknown , unknown , string >[] | Array of AI service providers to score |
requirements | MediaRequirements & object | Requirements object from axAnalyzeRequestRequirements() |
Returns
ProviderCapabilityScore
[]
Array of scored providers sorted by score (highest first)