Spaces:
Sleeping
Sleeping
File size: 2,164 Bytes
2e22a88 cf5db11 c3558ea cf5db11 13bcdcd b865405 2e22a88 b865405 2e22a88 cf5db11 b865405 13bcdcd b865405 2e22a88 cf5db11 c3558ea 2e22a88 c3558ea cf5db11 b851a37 d5c3978 b851a37 3e12074 cf5db11 070890d cf5db11 2e22a88 b865405 2e22a88 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import * as express from "express";
const PORT = 7860;
const BOT_USERNAME = "@smolSWE";
const INFERENCE_URL =
"https://api-inference.huggingface.co/models/bigscience/bloom";
const PROMPT = `Pretend that you are a bot that replies to discussions about machine learning, and reply to the following comment:\n`;
if (!process.env.WEBHOOK_SECRET || !process.env.HF_TOKEN) {
console.error(
"This app needs those env variables to be defined",
"WEBHOOK_SECRET, HF_TOKEN"
);
process.exit();
}
const app = express();
// parse HTTP request bodies as json
app.use(express.json());
app.get("/", (req, res) => {
res.json({ hello: "world" });
});
app.post("/", async (req, res) => {
if (req.header("X-Webhook-Secret") !== process.env.WEBHOOK_SECRET) {
console.error("incorrect secret");
return res.status(400).json({ error: "incorrect secret" });
}
console.log(req.body);
const event = req.body.event;
if (
event.action === "create" &&
event.scope === "discussion.comment" &&
req.body.comment.content.includes(BOT_USERNAME)
) {
// const response = await fetch(INFERENCE_URL, {
// method: "POST",
// body: JSON.stringify({ inputs: PROMPT + req.body.comment.content }),
// });
// if (response.ok) {
// const output = await response.json();
// const continuationText = output[0].generated_text.replace(
// PROMPT + req.body.comment.content,
// ""
// );
const continuationText = `You asked for ${req.body.comment.content}`;
console.log(continuationText);
/// Finally, let's post it as a comment in the same discussion
const commentUrl = req.body.discussion.url.api + "/comment";
const commentApiResponse = await fetch(commentUrl, {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HF_TOKEN}`,
"Content-Type": "application/json",
},
body: JSON.stringify({ comment: continuationText }),
});
const apiOutput = await commentApiResponse.json();
console.log(apiOutput);
} else {
console.error(`API Error`);
}
}
res.json({ success: true });
});
app.listen(PORT, () => {
console.debug(`server started at http://localhost:${PORT}`);
});
|