1#!/usr/bin/env bash
2
3set -e
4
5# Parse command line arguments
6CONVERTED_MODEL=""
7PROMPTS_FILE=""
8EMBD_NORMALIZE="2"
9
10while [[ $# -gt 0 ]]; do
11 case $1 in
12 -p|--prompts-file)
13 PROMPTS_FILE="$2"
14 shift 2
15 ;;
16 --embd-normalize)
17 EMBD_NORMALIZE="$2"
18 shift 2
19 ;;
20 *)
21 if [ -z "$CONVERTED_MODEL" ]; then
22 CONVERTED_MODEL="$1"
23 fi
24 shift
25 ;;
26 esac
27done
28
29# First try command line argument, then environment variable
30CONVERTED_MODEL="${CONVERTED_MODEL:-"$CONVERTED_EMBEDDING_MODEL"}"
31BUILD_DIR="${BUILD_DIR:-"../../build"}"
32
33# Final check if we have a model path
34if [ -z "$CONVERTED_MODEL" ]; then
35 echo "Error: Model path must be provided either as:" >&2
36 echo " 1. Command line argument" >&2
37 echo " 2. CONVERTED_EMBEDDING_MODEL environment variable" >&2
38 exit 1
39fi
40
41# Read prompt from file or use default
42if [ -n "$PROMPTS_FILE" ]; then
43 if [ ! -f "$PROMPTS_FILE" ]; then
44 echo "Error: Prompts file '$PROMPTS_FILE' not found" >&2
45 exit 1
46 fi
47 PROMPT=$(cat "$PROMPTS_FILE")
48else
49 PROMPT="Hello world today"
50fi
51
52echo $CONVERTED_MODEL
53
54cmake --build ${BUILD_DIR} --target llama-debug -j8
55${BUILD_DIR}/bin/llama-debug -m "$CONVERTED_MODEL" --embedding -p "$PROMPT" --save-logits --embd-normalize $EMBD_NORMALIZE