Spaces:
Sleeping
Sleeping
File size: 2,091 Bytes
9a70daf f9f0fec 9a70daf f9f0fec 9a70daf f9f0fec 9a70daf f9f0fec 9a70daf f9f0fec 9a70daf f9f0fec 9a70daf f3c1998 f9f0fec 9a70daf 42d0842 9a70daf |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
// π Importing Necessary Modules and Libraries π
import express from "express";
import 'dotenv/config.js'
import { createServer } from "http";
import { Server as SocketIOServer } from "socket.io";
import { client as GradioClient } from "@gradio/client";
import { createRequire } from 'node:module'
// π Global Configurations π
const require = createRequire(import.meta.url);
global.EventSource = require('eventsource');
// π± Express App Setup π±
const app = express();
const httpServer = createServer(app);
app.use(express.static('public'));
// π Socket.io Setup π
const io = new SocketIOServer(httpServer, { /* options */ });
// π°οΈ Socket.io Connection Handler π°οΈ
io.on("connection", (socket) => {
console.log("π New Socket Connection Established");
socket.on("ask_api", (clientData) => {
console.log(clientData)
console.log("π Trying to Reach API");
callGradioAPIAsync(clientData, socket)
});
});
// π€ Gradio API Testing Function (Uncomment to test) π€
// async function testGradioServers(){
// try {
// const gradioTestClient = await GradioClient("https://gradio-hello-world.hf.space");
// const apiTestResult = await gradioTestClient.predict("/predict", ["John"]);
// console.log(apiTestResult);
// } catch (error) {
// console.log(error);
// }
// }
// testGradioServers();
// π Async Function to Call Gradio API π
async function callGradioAPIAsync(clientData, socket) {
const gradioClient = await GradioClient("fffiloni/mndrm-call");
try {
const apiResult = await gradioClient.predict("/infer", [
clientData[0], // blob in 'image' Image component
clientData[1], // string in 'Question' Textbox component
]);
console.log(apiResult)
socket.emit("api_response", (apiResult.data))
} catch (error) {
console.log(error)
socket.emit("api_error", ("ERROR ON API SIDE, SORRY..."))
}
}
// π Server Startup π
httpServer.listen(7860);
console.log("π App Running on http://localhost:7860");
|