chore: import upstream snapshot with attribution
This commit is contained in:
@@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# Sync default model prices from Langfuse's repository and generate the TS module.
|
||||
# Usage: ./scripts/sync-model-prices.sh [--check]
|
||||
# --check: Exit 1 if prices are outdated (for CI)
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
PACKAGE_DIR="$(dirname "$SCRIPT_DIR")"
|
||||
JSON_TARGET="$PACKAGE_DIR/src/default-model-prices.json"
|
||||
SOURCE_URL="https://raw.githubusercontent.com/langfuse/langfuse/main/worker/src/constants/default-model-prices.json"
|
||||
|
||||
CHECK_MODE=false
|
||||
if [[ "${1:-}" == "--check" ]]; then
|
||||
CHECK_MODE=true
|
||||
fi
|
||||
|
||||
echo "Fetching latest model prices from Langfuse..."
|
||||
TMPFILE=$(mktemp)
|
||||
trap 'rm -f "$TMPFILE"' EXIT
|
||||
|
||||
if ! curl -fsSL "$SOURCE_URL" -o "$TMPFILE"; then
|
||||
echo "ERROR: Failed to fetch from $SOURCE_URL"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Validate it's valid JSON with at least some models
|
||||
MODEL_COUNT=$(node -e "console.log(JSON.parse(require('fs').readFileSync('$TMPFILE','utf-8')).length)" 2>/dev/null || echo "0")
|
||||
if [[ "$MODEL_COUNT" -lt 10 ]]; then
|
||||
echo "ERROR: Downloaded file has only $MODEL_COUNT models (expected 100+). Aborting."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if $CHECK_MODE; then
|
||||
if diff -q "$JSON_TARGET" "$TMPFILE" > /dev/null 2>&1; then
|
||||
echo "Model prices are up to date ($MODEL_COUNT models)"
|
||||
exit 0
|
||||
else
|
||||
echo "Model prices are OUTDATED. Run 'pnpm run sync-prices' in @internal/llm-model-catalog to update."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
cp "$TMPFILE" "$JSON_TARGET"
|
||||
echo "Updated default-model-prices.json ($MODEL_COUNT models)"
|
||||
echo "Run 'pnpm run generate' to regenerate defaultPrices.ts"
|
||||
Reference in New Issue
Block a user