ipex-llm/python/llm/src/ipex_llm/cli/llm-chat
Wang, Jian4 9df70d95eb
Refactor bigdl.llm to ipex_llm (#24)
* Rename bigdl/llm to ipex_llm

* rm python/llm/src/bigdl

* from bigdl.llm to from ipex_llm
2024-03-22 15:41:21 +08:00

80 lines
2.2 KiB
Bash
Executable file

#!/bin/bash
# Default values
model_family=""
threads=8
# Number of tokens to predict (made it larger than default because we want a long interaction)
n_predict=512
EXTRA_ARGS=('--color')
llm_dir="$(dirname "$(python -c "import ipex_llm;print(ipex_llm.__file__)")")"
lib_dir="$llm_dir/libs"
prompts_dir="$llm_dir/cli/prompts"
# Function to display help message
function display_help {
echo "usage: ./llm-chat -x MODEL_FAMILY [-h] [args]"
echo ""
echo "options:"
echo " -h, --help show this help message"
echo " -x, --model_family {llama,gptneox}"
echo " family name of model"
echo " -t N, --threads N number of threads to use during computation (default: 8)"
echo " -n N, --n_predict N number of tokens to predict (default: 128, -1 = infinity)"
echo " args parameters passed to the specified model function"
}
function llama {
PROMPT_TEMPLATE="$prompts_dir/chat-with-llm.txt"
EXTRA_ARGS+=('-i' '--file' "'$PROMPT_TEMPLATE'" '--reverse-prompt' "'USER:'" '--in-prefix' "' '")
command="$lib_dir/main-llama -t $threads -n $n_predict ${filteredArguments[*]} ${EXTRA_ARGS[*]}"
echo "$command"
eval "$command"
}
function gptneox {
PROMPT="A chat between a curious human <human> and an artificial intelligence assistant <bot>.\
The assistant gives helpful, detailed, and polite answers to the human's questions."
EXTRA_ARGS+=('--instruct' '-p' '"$PROMPT"')
command="$lib_dir/main-gptneox -t $threads -n $n_predict ${filteredArguments[*]} ${EXTRA_ARGS[*]}"
echo "$command"
eval "$command"
}
# Remove model_family/x parameter
filteredArguments=()
while [[ $# -gt 0 ]]; do
case "$1" in
-h | --help)
display_help
shift
;;
-x | --model_family | --model-family)
model_family="$2"
shift 2
;;
-t | --threads)
threads="$2"
shift 2
;;
-n | --n_predict | --n-predict)
n_predict="$2"
shift 2
;;
*)
filteredArguments+=("'$1'")
shift
;;
esac
done
# Perform actions based on the model_family
if [[ "$model_family" == "llama" ]]; then
llama
elif [[ "$model_family" == "gptneox" ]]; then
gptneox
else
echo "llm-chat does not support model_family $model_family for now."
display_help
fi