Agromind-backend / backend /controllers /waterOptimizationController.js
gh-action-hf-auto
auto: sync backend from github@32fb9685
8a6248c
import { generateAIContent } from '../utils/aiHelper.js';
import { extractLanguage, getLanguageName } from '../utils/aiOrchestrator.js';
import dotenv from 'dotenv';
export const getWaterOptimizations = async (req, res) => {
dotenv.config();
const { weather, soilMoisture, cropStage, evaporationRate } = req.body;
const lang = extractLanguage(req);
const langName = getLanguageName(lang);
const langInstruction = lang !== 'en' ? `\n\nRespond STRICTLY in ${langName} language. Translate all fields and values.` : '';
try {
const prompt = `
You are an expert irrigation scientist.
Based on the following details:
- Weather: ${weather}
- Soil Moisture (%): ${soilMoisture}
- Crop Stage: ${cropStage}
- Evaporation Rate (mm/day): ${evaporationRate}
Calculate:
1. Recommended water requirement per day (in liters per plant OR mm per acre — choose best based on input).
2. Expected water savings (%) compared to traditional irrigation.
3. A short explanation (1–2 lines).
Respond ONLY in this JSON structure:
{
"water_required": "value + units",
"water_saving_percent": number,
"note": "short explanation"
}${langInstruction}
`;
const recommendation = await generateAIContent(prompt.trim());
const formattedRecommendation = recommendation.replace("```json", "").replace("```", "").trim();
res.status(200).json({ recommendation:formattedRecommendation });
} catch (err) {
console.error("Error fetching recommendations: ", err);
res.status(500).json({ error: "Failed to fetch recommendations" });
}
};