Team Ai
Apppublic

Yash030/claude-code-proxy

sourceHugging Faceupdated 5mo agoView on Hugging Face
2likes
optimization_handlers.py174 linesDownload Raw Back to api
1"""Optimization handlers for fast-path API responses.2 3Each handler returns a MessagesResponse if the request matches and the4optimization is enabled, otherwise None.5"""6 7import uuid8 9from loguru import logger10 11from config.settings import Settings12 13from .command_utils import extract_command_prefix, extract_filepaths_from_command14from .detection import (15    is_filepath_extraction_request,16    is_prefix_detection_request,17    is_quota_check_request,18    is_suggestion_mode_request,19    is_title_generation_request,20    is_trivial_text_request,21)22from .models.anthropic import MessagesRequest23from .models.responses import MessagesResponse, Usage24 25 26def _text_response(27    request_data: MessagesRequest,28    text: str,29    *,30    input_tokens: int,31    output_tokens: int,32) -> MessagesResponse:33    return MessagesResponse(34        id=f"msg_{uuid.uuid4()}",35        model=request_data.model,36        content=[{"type": "text", "text": text}],37        stop_reason="end_turn",38        usage=Usage(input_tokens=input_tokens, output_tokens=output_tokens),39    )40 41 42def try_prefix_detection(43    request_data: MessagesRequest, settings: Settings44) -> MessagesResponse | None:45    """Fast prefix detection - return command prefix without API call."""46    if not settings.fast_prefix_detection:47        return None48 49    is_prefix_req, command = is_prefix_detection_request(request_data)50    if not is_prefix_req:51        return None52 53    logger.info("Optimization: Fast prefix detection request")54    return _text_response(55        request_data,56        extract_command_prefix(command),57        input_tokens=100,58        output_tokens=5,59    )60 61 62def try_quota_mock(63    request_data: MessagesRequest, settings: Settings64) -> MessagesResponse | None:65    """Mock quota probe requests."""66    if not settings.enable_network_probe_mock:67        return None68    if not is_quota_check_request(request_data):69        return None70 71    logger.info("Optimization: Intercepted and mocked quota probe")72    return _text_response(73        request_data,74        "Quota check passed.",75        input_tokens=10,76        output_tokens=5,77    )78 79 80def try_title_skip(81    request_data: MessagesRequest, settings: Settings82) -> MessagesResponse | None:83    """Skip title generation requests."""84    if not settings.enable_title_generation_skip:85        return None86    if not is_title_generation_request(request_data):87        return None88 89    logger.info("Optimization: Skipped title generation request")90    return _text_response(91        request_data,92        "Conversation",93        input_tokens=100,94        output_tokens=5,95    )96 97 98def try_suggestion_skip(99    request_data: MessagesRequest, settings: Settings100) -> MessagesResponse | None:101    """Skip suggestion mode requests."""102    if not settings.enable_suggestion_mode_skip:103        return None104    if not is_suggestion_mode_request(request_data):105        return None106 107    logger.info("Optimization: Skipped suggestion mode request")108    return _text_response(109        request_data,110        "",111        input_tokens=100,112        output_tokens=1,113    )114 115 116def try_filepath_mock(117    request_data: MessagesRequest, settings: Settings118) -> MessagesResponse | None:119    """Mock filepath extraction requests."""120    if not settings.enable_filepath_extraction_mock:121        return None122 123    is_fp, cmd, output = is_filepath_extraction_request(request_data)124    if not is_fp:125        return None126 127    filepaths = extract_filepaths_from_command(cmd, output)128    logger.info("Optimization: Mocked filepath extraction")129    return _text_response(130        request_data,131        filepaths,132        input_tokens=100,133        output_tokens=10,134    )135 136 137def try_trivial_text(138    request_data: MessagesRequest, settings: Settings139) -> MessagesResponse | None:140    """Fast-path trivial text requests (hi, ok, status checks) without API call."""141    is_trivial, text = is_trivial_text_request(request_data)142    if not is_trivial:143        return None144 145    logger.info("Optimization: Fast-path trivial text request")146    return _text_response(147        request_data,148        text,149        input_tokens=5,150        output_tokens=3,151    )152 153 154# Cheapest/most common optimizations first for faster short-circuit.155OPTIMIZATION_HANDLERS = [156    try_trivial_text,157    try_quota_mock,158    try_prefix_detection,159    try_title_skip,160    try_suggestion_skip,161    try_filepath_mock,162]163 164 165def try_optimizations(166    request_data: MessagesRequest, settings: Settings167) -> MessagesResponse | None:168    """Run optimization handlers in order. Returns first match or None."""169    for handler in OPTIMIZATION_HANDLERS:170        result = handler(request_data, settings)171        if result is not None:172            return result173    return None174