awacke1 commited on
Commit
a227ed8
·
verified ·
1 Parent(s): 2767dda

Update index.mjs

Browse files
Files changed (1) hide show
  1. index.mjs +47 -43
index.mjs CHANGED
@@ -1,60 +1,64 @@
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
- */
 
 
 
 
1
  import express from "express";
2
+ import 'dotenv/config.js'
3
  import { createServer } from "http";
4
  import { Server } from "socket.io";
5
+ import { client } from "@gradio/client";
6
+ import { createRequire } from 'node:module'
 
7
  const require = createRequire(import.meta.url);
8
  global.EventSource = require('eventsource');
9
 
10
  const app = express();
11
  const httpServer = createServer(app);
12
  app.use(express.static('public'));
13
+ const io = new Server(httpServer, { /* options */ });
 
 
 
 
 
14
 
 
15
  io.on("connection", (socket) => {
16
+
17
+ console.log("new socket connection");
18
+
19
+ socket.on("ask_api", (client_data) => {
20
+ console.log(client_data)
21
+ console.log("trying to reach api");
22
+ asyncAPICall(client_data, socket)
23
  });
24
+
25
  });
26
 
27
+ async function test_servers(){
28
+ try{
29
+ const grapi_test = await client("https://gradio-hello-world.hf.space");
30
+ const apitest_result = await grapi_test.predict("/predict", [
31
+ "John",
32
+ ]);
33
+ console.log(apitest_result);
34
+ }
35
+ catch(e){
36
+ console.log(e)
37
+ }
38
+
39
  }
40
 
41
+ //test_servers()
42
+
43
+ async function asyncAPICall(data, socket) {
44
+
45
+ const grapi = await client("fffiloni/mndrm-call");
46
+ try{
47
+ const api_result = await grapi.predict("/infer", [
48
+ data[0], // blob in 'image' Image component
49
+ data[1], // string in 'Question' Textbox component
50
+ ]);
51
+ console.log(api_result)
52
+ socket.emit("api_response", (api_result.data))
53
+ }
54
+ catch(e){
55
+ console.log(e)
56
+ socket.emit("api_error", ("ERROR ON API SIDE, SORRY..."))
57
+ }
58
+
59
  }
60
+
61
+
62
+
63
+ httpServer.listen(7860);
64
+ console.log("App running on localhost:7860")