| import express from "express"; |
| import axios from "axios"; |
| import cors from "cors"; |
| import bodyParser from "body-parser"; |
|
|
| const app = express(); |
| app.use(cors()); |
| app.use(bodyParser.json()); |
|
|
| const GEMINI_API_KEY = process.env.GEMINI_API_KEY; |
| const FIRECRAWL_API_KEY = process.env.FIRECRAWL_API_KEY; |
|
|
| app.post("/lovable", async (req, res) => { |
| try { |
| const { prompt } = req.body; |
|
|
| |
| const crawl = await axios.post( |
| "https://api.firecrawl.dev/v1/scrape", |
| { prompt }, |
| { headers: { Authorization: `Bearer ${FIRECRAWL_API_KEY}` } } |
| ); |
|
|
| |
| const gemini = await axios.post( |
| "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=" + GEMINI_API_KEY, |
| { |
| contents: [{ |
| parts: [{ text: prompt + "\n\nWeb Data:\n" + JSON.stringify(crawl.data) }] |
| }] |
| } |
| ); |
|
|
| res.json({ reply: gemini.data.candidates[0].outputText }); |
| } catch (e) { |
| res.json({ error: e.message }); |
| } |
| }); |
|
|
| app.get("/", (req, res) => { |
| res.send("๐ Open-Lovable HF Space is Running"); |
| }); |
|
|
| app.listen(7860, () => console.log("Server running on 7860")); |