API pública

REST sobre FastAPI, solo lectura, sin llaves

Endpoints JSON sin autenticación, documentados con OpenAPI en /docs (Swagger) y /redoc. Detrás del portal viven bajo el prefijo /api; en desarrollo directo, en el puerto 8000. La búsqueda corre sobre embeddings multilingües (multilingual-e5-small, 384d) en PostgreSQL + pgvector.

curl -X POST http://localhost/api/search \
  -H "Content-Type: application/json" \
  -d '{"q":"presupuesto municipal","limit":5,"local_only":true}'
Referencia completa de la API

Endpoints principales

7
  • GET
    /stats

    Métricas agregadas del corpus.

  • GET
    /sources

    Fuentes oficiales (municipios y portales).

  • GET
    /documents

    Documentos con filtros y paginación.

  • POST
    /search

    Búsqueda híbrida sobre el texto extraído.

  • POST
    /ask

    Agente: pregunta en lenguaje natural con citas.

  • GET
    /manifests

    Manifests de integridad del corpus.

  • GET
    /source

    Divulgación de código fuente (AGPLv3 §13).

IA como interfaz, no autoridad

El asistente opcional (POST /ask, con tu LLM_API_KEY) ejecuta un loop acotado tipo ReAct: lee documentos, los resume y cita la evidencia; si no la encuentra, lo dice. Multi-proveedor (Google / OpenAI / Groq / OpenRouter / local), con router de intención y memoria por sesión. La fuente de verdad siempre es el documento original, no el modelo.

Licencia AGPL-3.0-or-later

Si operas una versión modificada como servicio, debes publicar tus cambios bajo los mismos términos. Toda instancia expone /source con el repositorio y la versión en ejecución. Los documentos oficiales recopilados no son propiedad del proyecto: se preservan, referencian e indexan.

Ver el repositorio