| |
| const express = require('express'); |
| const bodyParser = require('body-parser'); |
| |
| const { analyzeImage } = require('./aiRouter_simple'); |
| require('dotenv').config(); |
|
|
| const app = express(); |
| const port = process.env.PORT || 3001; |
|
|
| |
| app.use(bodyParser.json({ limit: '50mb' })); |
|
|
| app.post('/analyze', async (req, res) => { |
| try { |
| const { imageData, mlScore, mlFactors, cameraId, modelOverride } = req.body; |
|
|
| if (!imageData) { |
| return res.status(400).json({ error: 'imageData is required' }); |
| } |
|
|
| console.log(`[AI-LAYER] Analyzing frame from ${cameraId} (ML Score: ${mlScore}%)`); |
| const result = await analyzeImage({ imageData, mlScore, mlFactors, cameraId, modelOverride }); |
|
|
| console.log(`[AI-LAYER] Result from ${result.provider}: ${result.explanation.substring(0, 50)}...`); |
| res.json(result); |
| } catch (error) { |
| console.error('[AI-LAYER] Error:', error); |
| res.status(500).json({ error: 'Internal AI processing error', detail: error.message }); |
| } |
| }); |
|
|
| app.get('/health', (req, res) => { |
| res.json({ status: 'ok', service: 'ai-intelligence-layer' }); |
| }); |
|
|
| app.listen(port, () => { |
| console.log(`AI Intelligence Layer listening at http://localhost:${port}`); |
| }); |
|
|