awacke1 commited on
Commit
2767dda
Β·
verified Β·
1 Parent(s): 9fd2bde

Update index.mjs

Browse files
Files changed (1) hide show
  1. index.mjs +42 -45
index.mjs CHANGED
@@ -1,63 +1,60 @@
1
- // 🌍 Importing Necessary Modules and Libraries 🌍
2
  import express from "express";
3
- import 'dotenv/config.js'
4
  import { createServer } from "http";
5
- import { Server as SocketIOServer } from "socket.io";
6
- import { client as GradioClient } from "@gradio/client";
7
- import { createRequire } from 'node:module'
8
 
9
- // πŸš€ Global Configurations πŸš€
10
  const require = createRequire(import.meta.url);
11
  global.EventSource = require('eventsource');
12
 
13
- // πŸ“± Express App Setup πŸ“±
14
  const app = express();
15
  const httpServer = createServer(app);
16
  app.use(express.static('public'));
 
17
 
18
- // πŸ”Œ Socket.io Setup πŸ”Œ
19
- const io = new SocketIOServer(httpServer, { /* options */ });
 
 
20
 
21
- // πŸ›°οΈ Socket.io Connection Handler πŸ›°οΈ
22
  io.on("connection", (socket) => {
23
-
24
- console.log("🌐 New Socket Connection Established");
25
-
26
  socket.on("ask_api", (clientData) => {
27
- console.log(clientData)
28
- console.log("πŸ” Trying to Reach API");
29
- callGradioAPIAsync(clientData, socket)
30
  });
31
  });
32
 
33
- // πŸ€– Gradio API Testing Function (Uncomment to test) πŸ€–
34
- // async function testGradioServers(){
35
- // try {
36
- // const gradioTestClient = await GradioClient("https://gradio-hello-world.hf.space");
37
- // const apiTestResult = await gradioTestClient.predict("/predict", ["John"]);
38
- // console.log(apiTestResult);
39
- // } catch (error) {
40
- // console.log(error);
41
- // }
42
- // }
43
- // testGradioServers();
44
-
45
- // 🌟 Async Function to Call Gradio API 🌟
46
- async function callGradioAPIAsync(clientData, socket) {
47
- const gradioClient = await GradioClient("fffiloni/mndrm-call");
48
- try {
49
- const apiResult = await gradioClient.predict("/infer", [
50
- clientData[0], // blob in 'image' Image component
51
- clientData[1], // string in 'Question' Textbox component
52
- ]);
53
- console.log(apiResult)
54
- socket.emit("api_response", (apiResult.data))
55
- } catch (error) {
56
- console.log(error)
57
- socket.emit("api_error", ("ERROR ON API SIDE, SORRY..."))
58
- }
59
  }
60
 
61
- // πŸƒ Server Startup πŸƒ
62
- httpServer.listen(7860);
63
- console.log("πŸš€ App Running on http://localhost:7860");
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import express from "express";
2
+ import 'dotenv/config.js';
3
  import { createServer } from "http";
4
+ import { Server } from "socket.io";
5
+ import { client as gradioClient } from "@gradio/client";
6
+ import { createRequire } from 'node:module';
7
 
 
8
  const require = createRequire(import.meta.url);
9
  global.EventSource = require('eventsource');
10
 
 
11
  const app = express();
12
  const httpServer = createServer(app);
13
  app.use(express.static('public'));
14
+ const io = new Server(httpServer);
15
 
16
+ // 🌐 Server Initialization
17
+ httpServer.listen(7860, () => {
18
+ console.log("App running on localhost:7860");
19
+ });
20
 
21
+ // πŸ”Œ Socket Connection Handler
22
  io.on("connection", (socket) => {
23
+ console.log("New socket connection");
24
+
25
+ // πŸ“‘ API Request Listener
26
  socket.on("ask_api", (clientData) => {
27
+ console.log("Received client data:", clientData);
28
+ console.log("Contacting API...");
29
+ handleAPICall(clientData, socket);
30
  });
31
  });
32
 
33
+ // πŸš€ API Call Function
34
+ async function handleAPICall(data, socket) {
35
+ const grapi = await gradioClient("fffiloni/mndrm-call");
36
+
37
+ try {
38
+ const apiResult = await grapi.predict("/infer", [data[0], data[1]]);
39
+ console.log("API Result:", apiResult);
40
+ socket.emit("api_response", apiResult.data);
41
+ } catch (error) {
42
+ console.error("API Error:", error);
43
+ socket.emit("api_error", "ERROR ON API SIDE, SORRY...");
44
+ }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
45
  }
46
 
47
+ // πŸ§ͺ Optional Server Test Function
48
+ // Uncomment to test server connections
49
+ /*
50
+ async function testServers() {
51
+ try {
52
+ const grapiTest = await gradioClient("https://gradio-hello-world.hf.space");
53
+ const apiTestResult = await grapiTest.predict("/predict", ["John"]);
54
+ console.log("Test API Result:", apiTestResult);
55
+ } catch (error) {
56
+ console.error("Test Error:", error);
57
+ }
58
+ }
59
+ // testServers();
60
+ */