import os
import subprocess
import logging
import vllm
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
def apply_patch(target_file: str, patch_file: str):
cmd = ['patch', '-p0', '--fuzz=500', '--ignore-whitespace', target_file, patch_file]
result = subprocess.run(cmd, capture_output=True, text=True)
if result.returncode == 0:
logger.info(f"Patch applied successfully to {target_file}")
else:
logger.error(f"Failed to apply patch to {target_file}")
logger.error(result.stderr)
def patch_vllm_multi_connector(vllm_path: str, script_dir: str):
target_file = f'{vllm_path[0]}/distributed/kv_transfer/kv_connector/v1/multi_connector.py'
patch_file = os.path.join(script_dir, 'vllm_multi_connector.patch')
apply_patch(target_file, patch_file)
def main():
script_dir = os.path.dirname(os.path.abspath(__file__))
vllm_path = vllm.__path__
patch_vllm_multi_connector(vllm_path, script_dir)
if __name__ == '__main__':
main()