47 lines
1.6 KiB
Bash
Executable File
47 lines
1.6 KiB
Bash
Executable File
#!/bin/bash
|
|
|
|
# Streaming example runner
|
|
# Usage: ./run.sh [tokenizer_path] [endpoint]
|
|
|
|
# Set library path for Rust FFI library
|
|
# The library should be in ./lib directory (created by 'make lib')
|
|
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
LIB_DIR="$(cd "$SCRIPT_DIR/../.." && pwd)/lib"
|
|
|
|
# Check if lib directory exists
|
|
if [ ! -d "$LIB_DIR" ]; then
|
|
echo "Error: Library directory not found at $LIB_DIR"
|
|
echo "Please run 'make lib' first to build and export the library"
|
|
exit 1
|
|
fi
|
|
|
|
# Get Python LDFLAGS (needed for Rust FFI that depends on Python)
|
|
PYTHON_LDFLAGS=$(python3-config --ldflags --embed 2>/dev/null || python3-config --ldflags 2>/dev/null || echo "")
|
|
|
|
# Set CGO_LDFLAGS to link with the Rust library
|
|
export CGO_LDFLAGS="-L${LIB_DIR} -lsgl_model_gateway_go ${PYTHON_LDFLAGS} -ldl"
|
|
|
|
# macOS uses DYLD_LIBRARY_PATH, Linux uses LD_LIBRARY_PATH
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
export DYLD_LIBRARY_PATH="${LIB_DIR}:${DYLD_LIBRARY_PATH}"
|
|
else
|
|
export LD_LIBRARY_PATH="${LIB_DIR}:${LD_LIBRARY_PATH}"
|
|
fi
|
|
|
|
# Default configuration (can be overridden by environment variables or command line arguments)
|
|
# Tokenizer path: ../tokenizer (relative to this script)
|
|
DEFAULT_TOKENIZER_PATH="${SGL_TOKENIZER_PATH:-../tokenizer}"
|
|
DEFAULT_ENDPOINT="${SGL_GRPC_ENDPOINT:-grpc://localhost:20000}"
|
|
|
|
TOKENIZER_PATH="${1:-${DEFAULT_TOKENIZER_PATH}}"
|
|
ENDPOINT="${2:-${DEFAULT_ENDPOINT}}"
|
|
|
|
echo "Running streaming example..."
|
|
echo "Library path: ${LIB_DIR}"
|
|
echo "Tokenizer: $TOKENIZER_PATH"
|
|
echo "Endpoint: $ENDPOINT"
|
|
echo ""
|
|
|
|
cd "$(dirname "${BASH_SOURCE[0]}")"
|
|
SGL_TOKENIZER_PATH="$TOKENIZER_PATH" SGL_GRPC_ENDPOINT="$ENDPOINT" go run main.go
|