f00d3d68e5
Timeline now offers Quick/Standard/Deep: nova_lite routes to Amazon Bedrock nova-lite via LiteLLM (1 credit, ~2s faster), azure_mini stays gpt-4o-mini (1 credit), azure_full stays gpt-4o (2 credits, Pro only). ToolModels tier rules: free→nova_lite only, plus→quick/standard, pro→all three. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
30 lines
1009 B
PHP
30 lines
1009 B
PHP
<?php
|
|
declare(strict_types=1);
|
|
|
|
require_once __DIR__ . '/FreeTier.php';
|
|
|
|
/**
|
|
* Tier-aware model routing for tools that expose the existing engine selector.
|
|
*
|
|
* Plus/trial users get the cost-controlled Azure mini path. Pro users get the
|
|
* full Azure path. CaveauAI sessions keep the engine requested by their UI.
|
|
*/
|
|
final class ToolModels
|
|
{
|
|
public static function engineForUser(int $userId, string $requestedEngine): string
|
|
{
|
|
$valid = ['nova_lite', 'azure_mini', 'azure_full', 'gpu', 'regex'];
|
|
$requestedEngine = in_array($requestedEngine, $valid, true) ? $requestedEngine : 'azure_mini';
|
|
|
|
if ($userId <= 0) {
|
|
return $requestedEngine;
|
|
}
|
|
|
|
return match (FreeTier::tier($userId)) {
|
|
'pro' => $requestedEngine,
|
|
'plus' => $requestedEngine === 'azure_full' ? 'azure_mini' : $requestedEngine,
|
|
default => in_array($requestedEngine, ['nova_lite', 'regex'], true) ? $requestedEngine : 'nova_lite',
|
|
};
|
|
}
|
|
}
|