test001 / index.html
zainali95
plain html js implementation of the Gradio api implementation
53a43fe
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Gradio API Image Upload</title>
</head>
<body>
<h2>Gradio API Image Upload and Prediction</h2>
<label for="fileInput">Upload an Image: </label>
<input type="file" id="fileInput" accept="image/*">
<button id="submitButton">Predict</button>
<h3>Prediction Result:</h3>
<pre id="result"></pre>
<script type="module">
import { Client } from "https://cdn.jsdelivr.net/npm/@gradio/client/dist/index.min.js";
document.getElementById('submitButton').addEventListener('click', async () => {
const fileInput = document.getElementById('fileInput');
const file = fileInput.files[0];
if (!file) {
document.getElementById('result').textContent = 'Please select an image file.';
return;
}
try {
// Create a Blob from the uploaded file
const exampleImage = await file.arrayBuffer();
const client = await Client.connect("zainali95/test001");
// Make the prediction request
const result = await client.predict("/predict", { img: new Blob([exampleImage], { type: file.type }) });
console.log(result);
// Display the prediction result
document.getElementById('result').textContent = JSON.stringify(result.data, null, 2);
} catch (error) {
document.getElementById('result').textContent = 'Error: ' + error.message;
}
});
</script>
</body>
</html>