Spaces:
Running
Running
| import { generateAIContent } from '../utils/aiHelper.js'; | |
| import { extractLanguage, getLanguageName } from '../utils/aiOrchestrator.js'; | |
| import dotenv from "dotenv"; | |
| export const pestOutbreakRecommendations = async (req, res) => { | |
| dotenv.config(); | |
| const { region, weather, cropType, communityReports } = req.body; | |
| if (!region || !weather || !cropType || !communityReports) { | |
| return res.status(400).json({ | |
| error: "Missing required inputs: region, weather, cropType, communityReports", | |
| }); | |
| } | |
| 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 agricultural pest outbreak prediction expert. | |
| Analyze the risk of pest infestation using: | |
| - Region: ${region} | |
| - Weather forecast: ${weather} | |
| - Crop type: ${cropType} | |
| - Community pest reports (last 7 days): ${communityReports} | |
| Provide: | |
| 1. Whether there is a risk of pest outbreak (Yes/No) | |
| 2. Likely pest that may attack (e.g., stem borer, aphids, bollworm, etc.) | |
| 3. Risk level (%) based on severity and probability | |
| 4. Expected time window (days until possible outbreak) | |
| 5. Preventive actions farmers should take immediately (bullet points) | |
| 6. A short note (1–2 lines of advice) | |
| Respond ONLY in this JSON format: | |
| { | |
| "outbreak_risk": "", | |
| "likely_pest": "", | |
| "risk_level_percent": 0, | |
| "expected_days": 0, | |
| "preventive_actions": ["", "", ""], | |
| "note": "" | |
| }${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" }); | |
| } | |
| }; | |