Spaces:
Running
Running
| 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}`); | |
| }); | |