Fix SDK compatibility: poll response field names and file metadata format

This commit is contained in:
oval
2026-06-08 12:11:48 +02:00
parent 5883565b87
commit 3601d48f5a
5 changed files with 29 additions and 1780 deletions
+29 -5
View File
@@ -321,12 +321,27 @@ def _poll_result(endpoint: str, request_id: str) -> Response:
result = request_store.get_result(request_id)
if result is None:
return jsonify({"status": "complete", "success": False, "error": "Result not found"}), 500
return jsonify({
fmt = result.get("format", "markdown")
payload = {
"status": "complete",
"success": result.get("success", False),
"error": result.get("error"),
**{k: v for k, v in result.items() if k not in ("success", "error")},
})
"output_format": fmt,
}
output_text = result.get("output", "")
if fmt in ("markdown", "html"):
payload[fmt] = output_text
elif fmt == "json":
try:
payload["json"] = json.loads(output_text) if output_text else None
except (json.JSONDecodeError, TypeError):
payload["json"] = output_text
elif fmt == "chunks":
payload["chunks"] = output_text
payload["images"] = result.get("images_b64", {})
payload["metadata"] = result.get("metadata", {})
payload["page_count"] = result.get("page_count")
return jsonify(payload)
# ── Flask app factory ────────────────────────────────────────────────
@@ -756,14 +771,21 @@ code{background:#f4f4f4;padding:2px 6px;border-radius:3px}
data = request.get_json() if request.is_json else {}
filename = data.get("filename", "file")
content_type = data.get("content_type", "application/octet-stream")
import time as tmod
file_id = str(uuid.uuid4())
file_dir = _file_storage_path() / file_id
file_dir.mkdir(parents=True, exist_ok=True)
metadata = {
"file_id": file_id,
"original_filename": filename,
"filename": filename,
"content_type": content_type,
"reference": f"datalab://file-{file_id}",
"created_at": time.time(),
"created": tmod.strftime("%Y-%m-%dT%H:%M:%SZ", tmod.gmtime()),
"file_size": None,
"upload_status": "pending",
"error": None,
}
(file_dir / "metadata.json").write_text(json.dumps(metadata))
import secrets
@@ -785,9 +807,11 @@ code{background:#f4f4f4;padding:2px 6px;border-radius:3px}
(file_dir / "content").write_bytes(request.data)
metadata_path = file_dir / "metadata.json"
if metadata_path.exists():
import time as tmod
meta = json.loads(metadata_path.read_text())
meta["uploaded_at"] = time.time()
meta["size"] = len(request.data)
meta["uploaded_at"] = tmod.time()
meta["file_size"] = len(request.data)
meta["upload_status"] = "completed"
metadata_path.write_text(json.dumps(meta))
return jsonify({"success": True})