AISD / server.js
mo7hamed1x's picture
Rename Server·JS to server.js
9555067 verified
Raw History Blame Contribute Delete
1.4 kB
const express = require('express');
const app = express();
app.use(express.json({ limit: '1mb' }));
// تأتي من Settings → Secrets في الـ Space
const API_KEY = process.env.ANTHROPIC_API_KEY;
const APP_TOKEN = process.env.APP_TOKEN; // اختياري: رمز بسيط يرسله تطبيقك
if (!API_KEY) {
console.error('ANTHROPIC_API_KEY is missing');
process.exit(1);
}
// فحص أن السيرفر يعمل
app.get('/', (_req, res) => res.send('AISD proxy is running'));
app.post('/ai/messages', async (req, res) => {
if (APP_TOKEN && req.get('x-app-token') !== APP_TOKEN) {
return res.status(401).json({ error: 'unauthorized' });
}
try {
const { model, max_tokens, system, tools, tool_choice, messages } = req.body;
const r = await fetch('https://api.anthropic.com/v1/messages', {
method: 'POST',
headers: {
'content-type': 'application/json',
'x-api-key': API_KEY,
'anthropic-version': '2023-06-01',
},
body: JSON.stringify({
model,
max_tokens: Math.min(max_tokens || 1500, 2000),
system,
tools,
tool_choice,
messages,
}),
});
res.status(r.status).type('json').send(await r.text());
} catch (e) {
res.status(500).json({ error: String(e) });
}
});
app.listen(process.env.PORT || 7860, '0.0.0.0', () =>
console.log('Proxy running'),
);