Ë
    uPêj[	  ã                   ó~   — U d Z ddlmZ ddlmZmZmZ dddddœZeee	e
f      ed	<    G d
„ de«      Z G d„ de«      Zy)z-
Configuration models for the QualityRouter.
é    )ÚFinal)Ú	BaseModelÚ
ConfigDictÚFieldé   é   é   é   )ÚSIMPLEÚMEDIUMÚCOMPLEXÚ	REASONINGÚDEFAULT_COMPLEXITY_TO_QUALITYc                   ó–   — e Zd ZU dZ eed¬«      Zee   ed<    edd¬«      Z	edz  ed<    ed	„ d
¬«      Z
eeef   ed<    ed¬«      Zy)ÚQualityRouterConfigz$Configuration for the QualityRouter.z‹List of candidate model names this router may route to. Each model must declare its quality_tier in model_info.litellm_routing_preferences.©Údefault_factoryÚdescriptionÚavailable_modelsNz-Fallback model when no quality tier resolves.©Údefaultr   Údefault_modelc                  ó*   — t         j                  «       S )N)r   Úcopy© ó    úr/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/litellm/router_strategy/quality_router/config.pyú<lambda>zQualityRouterConfig.<lambda>$   s   € Ô =× BÑ BÓ D€ r   z7Mapping from ComplexityTier name to quality tier (int).Úcomplexity_to_qualityÚallow©Úextra)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   Úlistr   ÚstrÚ__annotations__r   r   ÚdictÚintr   Úmodel_configr   r   r   r   r      so   … Ù.á"'ØðWô#Ð�d˜3‘ió ñ !&ØØCô!€M�3˜‘:ó ñ
 -2ÙDØMô-Ð˜4  S ™>ó ñ
  GÔ,�Lr   r   c                   óŠ   — e Zd ZU dZ edd¬«      Zeed<    eed¬«      Z	ee
   ed<    ed	d
¬«      Zed	z  ed<    ed¬«      Zy	)ÚRoutingPreferencesz:Per-deployment routing preferences declared on model_info..z+The quality tier this deployment satisfies.)r   Úquality_tiera  Substring keywords (case-insensitive) that, when present in the user message, route the request to this deployment. See `order` for explicit collision handling, otherwise ties fall through to (highest quality_tier, then cheapest model_info.input_cost_per_token).r   ÚkeywordsNuh  Explicit priority used to break ties between deployments at the same quality tier. Lower values win. Applies both to keyword collisions and to picking between multiple deployments at the same quality_tier. Tiebreak order is (quality_tier DESC, order ASC, input_cost_per_token ASC, model_name ASC) â€” quality always wins first, then explicit order, then price.r   Úorderr    r!   )r#   r$   r%   r&   r   r/   r+   r)   r'   r0   r(   r1   r   r,   r   r   r   r.   r.   +   sg   … ÙDáØØAô€L�#ó ñ
  ØðUô€Hˆd�3‰ió ñ Øð!ô€Eˆ3�‰:ó ñ  GÔ,�Lr   r.   N)r&   Útypingr   Úpydanticr   r   r   r   r*   r(   r+   r)   r   r.   r   r   r   ú<module>r4      sW   ðòõ ç 1Ñ 1ð
 ØØØñ	8Ð ˜u T¨#¨s¨(¡^Ñ4ó ô-˜)ô -ô0-˜õ -r   