Spaces:
Sleeping
Sleeping
import express from "express"; | |
import 'dotenv/config.js'; | |
import { createServer } from "http"; | |
import { Server } from "socket.io"; | |
import { client as gradioClient } from "@gradio/client"; | |
import { createRequire } from 'node:module'; | |
const require = createRequire(import.meta.url); | |
global.EventSource = require('eventsource'); | |
const app = express(); | |
const httpServer = createServer(app); | |
app.use(express.static('public')); | |
const io = new Server(httpServer); | |
// π Server Initialization | |
httpServer.listen(7860, () => { | |
console.log("App running on localhost:7860"); | |
}); | |
// π Socket Connection Handler | |
io.on("connection", (socket) => { | |
console.log("New socket connection"); | |
// π‘ API Request Listener | |
socket.on("ask_api", (clientData) => { | |
console.log("Received client data:", clientData); | |
console.log("Contacting API..."); | |
handleAPICall(clientData, socket); | |
}); | |
}); | |
// π API Call Function | |
async function handleAPICall(data, socket) { | |
const grapi = await gradioClient("fffiloni/mndrm-call"); | |
try { | |
const apiResult = await grapi.predict("/infer", [data[0], data[1]]); | |
console.log("API Result:", apiResult); | |
socket.emit("api_response", apiResult.data); | |
} catch (error) { | |
console.error("API Error:", error); | |
socket.emit("api_error", "ERROR ON API SIDE, SORRY..."); | |
} | |
} | |
// π§ͺ Optional Server Test Function | |
// Uncomment to test server connections | |
/* | |
async function testServers() { | |
try { | |
const grapiTest = await gradioClient("https://gradio-hello-world.hf.space"); | |
const apiTestResult = await grapiTest.predict("/predict", ["John"]); | |
console.log("Test API Result:", apiTestResult); | |
} catch (error) { | |
console.error("Test Error:", error); | |
} | |
} | |
// testServers(); | |
*/ | |