Spaces:
Running
Running
File size: 2,062 Bytes
96cfefa 7934a47 96cfefa 7934a47 d27a461 96cfefa d26e0e5 96cfefa |
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 |
const express = require('express');
const path = require('path');
const app = express();
const port = 7860;
app.use(express.json());
app.use(express.static(path.join(__dirname, 'dist')));
app.post('/api/craft', async (req, res) => {
const { content, variation } = req.body;
const apiKey = process.env.BLABLADOR_API_KEY;
if (!apiKey) {
return res.status(500).json({ error: 'BLABLADOR_API_KEY is not configured on the server.' });
}
const model = content.length > 500 ? 'alias-large' : 'alias-fast';
const prompt = `You are a professional content creator. Help me craft a ${variation || 'social media post'} based on the following content:\n\n${content}\n\nProvide 3 distinct and engaging variations.`;
try {
const response = await fetch('https://api.helmholtz-blablador.fz-juelich.de/v1/chat/completions', {
method: 'POST',
headers: {
'Authorization': `Bearer ${apiKey}`,
'Content-Type': 'application/json'
},
body: JSON.stringify({
model: model,
messages: [
{ role: 'system', content: 'You are a helpful assistant that helps craft engaging marketing and social media content.' },
{ role: 'user', content: prompt }
],
temperature: 0.7
})
});
if (!response.ok) {
const errorData = await response.json();
return res.status(response.status).json(errorData);
}
const data = await response.json();
res.json({ result: data.choices[0].message.content });
} catch (error) {
console.error('Blablador API error:', error);
res.status(500).json({ error: 'Failed to connect to Blablador API.' });
}
});
app.get('/api/config', (req, res) => {
res.json({
clientId: process.env.OAUTH_CLIENT_ID,
scopes: process.env.OAUTH_SCOPES || "openid profile",
});
});
app.get('/health', (req, res) => {
res.status(200).send('OK');
});
app.use((req, res) => {
res.sendFile(path.join(__dirname, 'dist', 'index.html'));
});
app.listen(port, () => {
console.log(`Server running on port ${port}`);
});
|