#!/bin/bash # # Shared helpers for mapping reranker backends to isolated virtualenvs. # set -euo pipefail detect_rerank_backend() { local project_root="$1" local backend="${RERANK_BACKEND:-}" if [[ -n "${backend}" ]]; then printf '%s\n' "${backend}" return 0 fi backend="$( awk ' /^ rerank:$/ { in_rerank=1; next } in_rerank && /^ [^ ]/ { in_rerank=0 } in_rerank && /^ backend:/ { gsub(/"/, "", $2) print $2 exit } ' "${project_root}/config/config.yaml" )" if [[ -z "${backend}" ]]; then backend="qwen3_vllm" fi printf '%s\n' "${backend}" } reranker_backend_venv_dir() { local project_root="$1" local backend="$2" case "${backend}" in qwen3_vllm|qwen3_vllm_score) printf '%s/.venv-reranker\n' "${project_root}" ;; qwen3_gguf) printf '%s/.venv-reranker-gguf\n' "${project_root}" ;; qwen3_gguf_06b) printf '%s/.venv-reranker-gguf-06b\n' "${project_root}" ;; qwen3_transformers) printf '%s/.venv-reranker-transformers\n' "${project_root}" ;; bge) printf '%s/.venv-reranker-bge\n' "${project_root}" ;; dashscope_rerank) printf '%s/.venv-reranker-dashscope\n' "${project_root}" ;; *) printf '%s/.venv-reranker-%s\n' "${project_root}" "${backend}" ;; esac } reranker_backend_requirements_file() { local project_root="$1" local backend="$2" case "${backend}" in qwen3_vllm|qwen3_vllm_score) printf '%s/requirements_reranker_qwen3_vllm.txt\n' "${project_root}" ;; qwen3_gguf) printf '%s/requirements_reranker_qwen3_gguf.txt\n' "${project_root}" ;; qwen3_gguf_06b) printf '%s/requirements_reranker_qwen3_gguf_06b.txt\n' "${project_root}" ;; qwen3_transformers) printf '%s/requirements_reranker_qwen3_transformers.txt\n' "${project_root}" ;; bge) printf '%s/requirements_reranker_bge.txt\n' "${project_root}" ;; dashscope_rerank) printf '%s/requirements_reranker_dashscope.txt\n' "${project_root}" ;; *) return 1 ;; esac }