const express = require("express"); const cors = require("cors"); bodyParser = require("body-parser"); const app = express(); app.use( cors({ origin: "https://complai.de/", }) ); // support parsing of application/json type post data app.use(bodyParser.json()); //support parsing of application/x-www-form-urlencoded post data app.use(bodyParser.urlencoded({ extended: true })); app.route("/register").get((req, res) => { // check static beta invitation code const { email, code } = req.body; if (code === "SOMECODE") { res.status(200).end(true); } else { res.status(403).end(false); } }); var companies = []; class Company { constructor(email, nace, region, size, name) { this.email = email; this.nace = nace; this.region = region; this.size = size; this.name = name; } } // Put new company app.route("/company").post((req, res) => { const { email, code, nace, region, size, name } = req.body; if (code !== "SOMECODE") { res.status(403).end(false); return; } var id = companies.push(new Company(email, nace, region, size, name)); res.status(200).end(id); }); // Poll notifications for company app.route("/interpretLaw").post((req, res) => { const { id, lawtext } = req.body; getResponse(lawtext, id, res); }); app.listen(8543, () => { console.log("server is runing at port 8543"); }); async function getResponse(lawtext, id, res) { const { Configuration, OpenAIApi } = require("openai"); const configuration = new Configuration({ apiKey: process.env.OPEN_AI_API_KEY, }); const openai = new OpenAIApi(configuration); const company = companies[id]; const prompt = "Betriff eine Firma mit NACE code " + company.nace + " das folgende Gesetzt? Dann, und nur dann, geben Sie in der nächsten Zeile ausführliche Empfehlungen an Unternehmen, die diese Dienste anbieten, zum Umgang mit diesem Gesetz:\n" + lawtext; console.log("sending to openai: " + prompt); try { const response = await openai.createCompletion({ model: "text-davinci-003", prompt: prompt + "\n", temperature: 0.2, max_tokens: 1000, top_p: 1, frequency_penalty: 0, presence_penalty: 0, }); console.log("got from openai: " + JSON.stringify(response.data)); res.status(200).end(history + response.data.choices[0].text); } catch (error) { console.error(error.response.status, error.response.data); res.status(error.response.status).json(error.response.data); } }