# shellcheck shell=dash

___x_cmd_jina_reranker_generate(){(
    local filelist=""
    local gclist=""
    local dataid=""
    local format=""

    local tmpdir="$___X_CMD_ROOT_TMP/jina/reranker/data"
    [ -d  "$tmpdir"  ] || ___x_cmd mkdirp "$tmpdir"

    dataid="$(___x_cmd pidid vlseqid ___X_CMD_JINA_EMBEDDING)"
    local tmpfp="$tmpdir/$dataid"
    local gclist="${gclist}${tmpfp} "

    trap 'eval ___x_cmd_cmds rm -f "$gclist"' EXIT
    while [ $# -gt 0 ]; do
        case "$1" in
            -q|--query)
                printf "%s\n" "$2">> "$tmpfp"
                shift 2
                ;;

            -f|--file)
                [ $# -ge 2 ] || N=jina M="Please provide a document file"   log:ret:1;
                local x_=; ___x_cmd abspath_ "$2"
                [ -f "$x_" ] || N=jina M="Please provide a valid [filepath=$2] after --file" log:ret:64
                filelist="${filelist}:${x_}";
                shift 2
                ;;

            -t|--top)
                ___x_cmd is int "$2" || N=jina M="Please provide an int after --top"   log:ret:1;
                local top="$2"; shift 2
                ;;

            -s|--sep)
                local sep="${2}"
                shift 2
                ;;
            --yml)
                format=yml; shift
                ;;
            --help|-h)
                ___x_cmd help -m jina reranker generate "$@"
               return ;;

            *)
                printf "%s\n" "$*">> "$tmpfp"
                break
                ;;
        esac
    done

    [ -n "$filelist" ] ||  N=jina M="Please provide the file where you need to search: '--file <file name>'"   log:ret:1;
    ___x_cmd_jina_reranker_generate___json "$tmpfp" "$filelist"

)}


___x_cmd_jina_reranker_generate___json(){
    local query_file="$1"
    local filelist="$2"
    local jina_model=;
    {
        ___x_cmd_jina_cfg --var jina_model=rerankerModel
        [ -n "$jina_model" ] || jina_model="jina-reranker-v1-base-en"

        ___x_cmd cawk -E filelist,query_file,jina_model,top,sep\
               -m j/json,j/jiter,j/jcp  \
               -f "$___X_CMD_ROOT_MOD/jina/lib/awk/generate_reranker_json.awk"
    } | {

        read -r content

        if [ -n "$format" ]; then ___x_cmd_jina_reranker_generate_request "$content" | ___x_cmd j2y
        else                      ___x_cmd_jina_reranker_generate_request "$content"
        fi
    }

}
