Spaces:
Runtime error
Runtime error
| const express = require("express"); | |
| const path = require("path"); | |
| const app = express(); | |
| // Middlewares | |
| app.use(express.json()); | |
| app.use(express.urlencoded({ extended: true })); | |
| // Utility function to fetch data from HuggingFace | |
| async function query(url, data) { | |
| console.log(data); | |
| try { | |
| const response = await fetch(url, { | |
| headers: { | |
| "Content-Type": "application/json", | |
| }, | |
| method: "POST", | |
| body: JSON.stringify(data), | |
| }); | |
| if (!response.ok) { | |
| throw new Error( | |
| `Server responded with ${response.status}: ${response.statusText}` | |
| ); | |
| } | |
| const result = await response.json(); | |
| if ( | |
| result && | |
| Array.isArray(result) && | |
| result[0] && | |
| result[0].generated_text | |
| ) { | |
| return result[0].generated_text; | |
| } else { | |
| throw new Error("Unexpected response format"); | |
| } | |
| } catch (error) { | |
| console.error(`Error querying model at ${url}:`, error.message); | |
| return null; | |
| } | |
| } | |
| // API Routes | |
| app.post("/api/model/mistralai", async (req, res) => { | |
| const result = await query( | |
| "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.1", | |
| req.body | |
| ); | |
| if (result) { | |
| res.json({ generated_text: result }); | |
| } else { | |
| res.status(500).json({ error: "Failed to get response from model" }); | |
| } | |
| }); | |
| app.post("/api/model/zephyr", async (req, res) => { | |
| const result = await query( | |
| "https://api-inference.huggingface.co/models/HuggingFaceH4/zephyr-7b-alpha", | |
| req.body | |
| ); | |
| if (result) { | |
| res.json({ generated_text: result }); | |
| } else { | |
| res.status(500).json({ error: "Failed to get response from model" }); | |
| } | |
| }); | |
| app.get("/", (req, res) => { | |
| res.sendFile(path.join(__dirname, "index.html")); | |
| }); | |
| // Catch-all route for all non-API URLs to redirect to root | |
| app.get("*", (req, res) => { | |
| res.redirect("/"); | |
| }); | |
| const PORT = process.env.PORT || 3000; | |
| app.listen(PORT, () => { | |
| console.log(`Server started on port ${PORT}`); | |
| }); | |