Fix SDK compatibility: poll response field names and file metadata format
This commit is contained in:
@@ -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})
|
||||
|
||||
|
||||
Reference in New Issue
Block a user