Fixing the fixes

This commit is contained in:
2025-09-08 11:38:29 +02:00
parent 52642a2a86
commit 5591efe87b

View File

@@ -11,8 +11,14 @@ ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
# Writable temp dir (override with PODX_TMP or TMPDIR); default to repo tmp/ # Writable temp dir (override with PODX_TMP or TMPDIR); default to repo tmp/
: "${PODX_TMP:=${TMPDIR:-$ROOT_DIR/tmp}}" : "${PODX_TMP:=${TMPDIR:-$ROOT_DIR/tmp}}"
mkdir -p "$PODX_TMP" mkdir -p "$PODX_TMP"
# Curl timeouts used for OWUI/Meili requests (override via env if needed)
: "${PODX_CURL_CONNECT_TIMEOUT:=5}"
: "${PODX_CURL_MAX_TIME:=20}"
CURL_TMO="--connect-timeout $PODX_CURL_CONNECT_TIMEOUT --max-time $PODX_CURL_MAX_TIME"
# Portable mktemp helper that always writes inside $PODX_TMP (macOS/GNU compatible) # Portable mktemp helper that always writes inside $PODX_TMP (macOS/GNU compatible)
_mktemp() { _mktemp() {
# mktemp on macOS doesn't support -p; use path template instead # mktemp on macOS doesn't support -p; use path template instead
@@ -105,7 +111,7 @@ _owui_get_kb_list() {
_require "OPENWEBUI_API_KEY" "$OPENWEBUI_API_KEY" _require "OPENWEBUI_API_KEY" "$OPENWEBUI_API_KEY"
_require "OPENWEBUI_URL" "$OPENWEBUI_URL" _require "OPENWEBUI_URL" "$OPENWEBUI_URL"
local url; url="$(_owui_url)/api/v1/knowledge/list" local url; url="$(_owui_url)/api/v1/knowledge/list"
curl -sS -H "Authorization: Bearer $OPENWEBUI_API_KEY" "$url" curl -sS $CURL_TMO -H "Authorization: Bearer $OPENWEBUI_API_KEY" "$url"
} }
_kb_create() { _kb_create() {
@@ -276,13 +282,13 @@ print(f\"Indexed {n} document(s).\")"
owui-health) owui-health)
_require "OPENWEBUI_URL" "$OPENWEBUI_URL" _require "OPENWEBUI_URL" "$OPENWEBUI_URL"
curl -sS -o /dev/null -w "%{http_code}\n" "$(_owui_url)/api/health" curl -sS $CURL_TMO -o /dev/null -w "%{http_code}\n" "$(_owui_url)/api/health"
;; ;;
owui-kbs) owui-kbs)
_require "OPENWEBUI_URL" "$OPENWEBUI_URL" _require "OPENWEBUI_URL" "$OPENWEBUI_URL"
_require "OPENWEBUI_API_KEY" "$OPENWEBUI_API_KEY" _require "OPENWEBUI_API_KEY" "$OPENWEBUI_API_KEY"
curl -sS -H "Authorization: Bearer $OPENWEBUI_API_KEY" \ curl -sS $CURL_TMO -H "Authorization: Bearer $OPENWEBUI_API_KEY" \
"$(_owui_url)/api/v1/knowledge/list" | ppjson "$(_owui_url)/api/v1/knowledge/list" | ppjson
;; ;;
@@ -312,8 +318,37 @@ print(f\"Indexed {n} document(s).\")"
if [ -z "$name" ]; then echo "Usage: owui-kb-resolve \"<KB Name>\"" >&2; exit 1; fi if [ -z "$name" ]; then echo "Usage: owui-kb-resolve \"<KB Name>\"" >&2; exit 1; fi
echo "[owui] base URL: $(_owui_url)" echo "[owui] base URL: $(_owui_url)"
echo "[owui] KBs returned:" echo "[owui] KBs returned:"
_owui_get_kb_list | ppjson tmp_body="$(_mktemp)"; tmp_code="$(_mktemp)"
id="$(_kb_id_by_name "$name")" curl -sS $CURL_TMO -H "Authorization: Bearer $OPENWEBUI_API_KEY" \
-w "%{http_code}" --output "$tmp_body" \
"$(_owui_url)/api/v1/knowledge/list" >"$tmp_code" || true
http_code="$(cat "$tmp_code" 2>/dev/null || echo 0)"; rm -f "$tmp_code"
bytes="$(wc -c <"$tmp_body" 2>/dev/null || echo 0)"
cat "$tmp_body" | ppjson
echo "[owui] http_code=$http_code bytes=$bytes"
json="$(cat "$tmp_body")"; rm -f "$tmp_body"
id="$(python3 - "$name" <<'PY'
import sys, json
want = (sys.argv[1] or "").strip()
raw = sys.stdin.read()
try:
d = json.loads(raw)
except Exception:
print("", end=""); sys.exit(0)
items = d.get("data") if isinstance(d, dict) and isinstance(d.get("data"), list) else (d if isinstance(d, list) else [])
norm = lambda s: (s or "").strip().casefold()
want_n = norm(want)
def ts(kb):
for k in ("updated_at","created_at"):
v = kb.get(k)
if isinstance(v,(int,float)): return int(v)
return 0
exact = [kb for kb in items if norm(kb.get("name")) == want_n]
subs = [kb for kb in items if want_n and want_n in norm(kb.get("name"))]
cands = exact or subs
print((sorted(cands, key=ts, reverse=True)[0].get("id","")) if cands else "", end="")
PY
<<<"$json")"
if [ -n "$id" ]; then if [ -n "$id" ]; then
echo "[owui] resolved id for \"$name\": $id" echo "[owui] resolved id for \"$name\": $id"
else else