Spaces:
Sleeping
Sleeping
XQ commited on
Commit ·
478bf35
1
Parent(s): 31a2688
Fix waiting Qdrant
Browse files- scripts/docker-entrypoint.sh +21 -16
- supervisord.spaces.conf +1 -1
scripts/docker-entrypoint.sh
CHANGED
|
@@ -1,27 +1,32 @@
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
-
|
| 5 |
-
QDRANT_URL="${QDRANT_URL:-http://localhost:6333}"
|
| 6 |
COLLECTION="${COLLECTION_NAME:-ku_documents}"
|
| 7 |
|
| 8 |
-
|
| 9 |
-
|
| 10 |
-
|
| 11 |
-
|
| 12 |
-
|
|
|
|
|
|
|
| 13 |
|
| 14 |
-
# ---- Check if collection already has data -------------------------------
|
| 15 |
-
POINT_COUNT=$(curl -sf "${QDRANT_URL}/collections/${COLLECTION}" 2>/dev/null \
|
| 16 |
-
|
| 17 |
-
|
| 18 |
|
| 19 |
-
if [ "${POINT_COUNT}" = "0" ] || [ -z "${POINT_COUNT}" ]; then
|
| 20 |
-
|
| 21 |
-
|
| 22 |
-
|
|
|
|
|
|
|
|
|
|
| 23 |
else
|
| 24 |
-
|
|
|
|
| 25 |
fi
|
| 26 |
|
| 27 |
# ---- Start the API server --------------------------------------------------
|
|
|
|
| 1 |
#!/bin/bash
|
| 2 |
set -e
|
| 3 |
|
| 4 |
+
QDRANT_URL="${QDRANT_URL:-}"
|
|
|
|
| 5 |
COLLECTION="${COLLECTION_NAME:-ku_documents}"
|
| 6 |
|
| 7 |
+
if [ -n "${QDRANT_URL}" ]; then
|
| 8 |
+
# ---- Remote Qdrant: wait for service ------------------------------------
|
| 9 |
+
echo "Waiting for Qdrant at ${QDRANT_URL} ..."
|
| 10 |
+
until curl -sf "${QDRANT_URL}/healthz" > /dev/null 2>&1; do
|
| 11 |
+
sleep 2
|
| 12 |
+
done
|
| 13 |
+
echo "Qdrant is ready."
|
| 14 |
|
| 15 |
+
# ---- Check if collection already has data -------------------------------
|
| 16 |
+
POINT_COUNT=$(curl -sf "${QDRANT_URL}/collections/${COLLECTION}" 2>/dev/null \
|
| 17 |
+
| python -c "import sys,json; print(json.load(sys.stdin).get('result',{}).get('points_count',0))" 2>/dev/null \
|
| 18 |
+
|| echo "0")
|
| 19 |
|
| 20 |
+
if [ "${POINT_COUNT}" = "0" ] || [ -z "${POINT_COUNT}" ]; then
|
| 21 |
+
echo "Collection '${COLLECTION}' is empty or missing — running ingestion ..."
|
| 22 |
+
python -m scripts.ingest
|
| 23 |
+
echo "Ingestion complete."
|
| 24 |
+
else
|
| 25 |
+
echo "Collection '${COLLECTION}' already has ${POINT_COUNT} points — skipping ingestion."
|
| 26 |
+
fi
|
| 27 |
else
|
| 28 |
+
# ---- Local Qdrant: file-based storage -----------------------------------
|
| 29 |
+
echo "Using local Qdrant storage at ${QDRANT_PATH:-./qdrant_data}"
|
| 30 |
fi
|
| 31 |
|
| 32 |
# ---- Start the API server --------------------------------------------------
|
supervisord.spaces.conf
CHANGED
|
@@ -4,7 +4,7 @@ logfile=/dev/null
|
|
| 4 |
logfile_maxbytes=0
|
| 5 |
|
| 6 |
[program:fastapi]
|
| 7 |
-
command=
|
| 8 |
directory=/app
|
| 9 |
autostart=true
|
| 10 |
autorestart=true
|
|
|
|
| 4 |
logfile_maxbytes=0
|
| 5 |
|
| 6 |
[program:fastapi]
|
| 7 |
+
command=/app/scripts/docker-entrypoint.sh
|
| 8 |
directory=/app
|
| 9 |
autostart=true
|
| 10 |
autorestart=true
|