Skill para la orquestación del agente de IA con Google Gemini, incluyendo ingeniería de prompts modulares, inyección de contexto RAG en tiempo real y gestión de memoria conversacional para agricultura de precisión.
Este skill define cómo el agente de IA comprende, construye y optimiza las interacciones con el modelo Google Gemini dentro del ecosistema AgroNexus.
prompt.md, rules.md, knowledge.md, devices.md).@lru_cache para evitar lecturas redundantes al disco.build_prompt() en app/prompts.py ensambla el prompt final concatenando:
sensor_data del usuario.gemini-2.0-flash (configurado en app/llm.py).generate_raw_response() utiliza asyncio para no bloquear el event loop de FastAPI.429 (ResourceExhausted) con mensaje amigable al usuario.CUOTA_AGOTADA al router para respuesta HTTP adecuada.```json con actions y alerts.extract_iot_data() usa regex para separar el texto humano del JSON de control.FAN ON, IRRIGATION OFF) se envían de vuelta al hardware ESP32.┌───────────────────────────────────────┐
│ build_prompt() │
├───────────────────────────────────────┤
│ 1. prompt.md → Persona │
│ 2. knowledge.md → Cultivos │
│ 3. devices.md → Actuadores │
│ 4. rules.md → Formato/Seguridad │
│ 5. sensor_data → Tiempo Real │
│ 6. history → Tendencias 24h │
│ 7. backend_state → Estado Interno │
│ 8. chat_history → Memoria (6 msgs) │
│ 9. message → Input del Usuario │
└───────────────────────────────────────┘
│
▼
┌──────────────────┐
│ Gemini 2.0 Flash │
└──────────────────┘
│
▼
┌──────────────────┐
│ extract_iot_data()│
│ → text, actions, │
│ alerts │
└──────────────────┘
app/prompts.py: Constructor modular de prompts.app/llm.py: Cliente asíncrono de Google Gemini.app/services/iot_service.py: Orquestador que conecta prompt → LLM → extracción.build_prompt().