Spaces:
Sleeping
Sleeping
| require("dotenv").config(); | |
| const express = require("express"); | |
| const cors = require("cors"); | |
| const axios = require("axios"); | |
| const app = express(); | |
| app.use(cors()); | |
| app.use(express.json()); | |
| const PORT = process.env.PORT || 7860; | |
| // Health check | |
| app.get("/", (req, res) => { | |
| res.send("Kai Gateway Live ๐"); | |
| }); | |
| // API Key middleware (simple monetization lock) | |
| app.use((req, res, next) => { | |
| const key = req.headers["x-api-key"]; | |
| if (!key || key !== process.env.API_KEY) { | |
| return res.status(401).json({ error: "Unauthorized" }); | |
| } | |
| next(); | |
| }); | |
| // Main generation endpoint | |
| app.post("/generate", async (req, res) => { | |
| try { | |
| const { prompt, model } = req.body; | |
| const response = await axios.post( | |
| `https://api-inference.huggingface.co/models/${model}`, | |
| { inputs: prompt }, | |
| { | |
| headers: { | |
| Authorization: `Bearer ${process.env.HF_TOKEN}` | |
| } | |
| } | |
| ); | |
| res.json({ | |
| output: response.data, | |
| model | |
| }); | |
| } catch (err) { | |
| res.status(500).json({ | |
| error: err.response?.data || err.message | |
| }); | |
| } | |
| }); | |
| app.listen(PORT, () => { | |
| console.log(`Running on port ${PORT}`); | |
| }); |