Skip to content

feat(ai): implementar servicio FastAPI con adaptador LLM, prompt v1 y… - #48

Open
Maykol0721 wants to merge 4 commits into
mainfrom
feat/S1-18-servicio-ia
Open

Maykol0721 wants to merge 4 commits into
mainfrom
feat/S1-18-servicio-ia

Conversation

@Maykol0721

Copy link
Copy Markdown
Collaborator

Título: mplementar microservicio FastAPI con adaptador LLM, prompt v1 y candado de datos (S1-18)

Descripción: Implementa el microservicio de IA en Python bajo FastAPI para la generación de diagnósticos estructurados conforme a los requisitos RF-IA-02 (v1.1), ADR-02, ADR-10, RES-06 y RNF-SEG-06:

Endpoints GET /health, GET /info y POST /explain.
Esquema Pydantic formal de afirmaciones tipadas (OBSERVACION, INTERPRETACION, RECOMENDACION) con validación de evidencias (finding_ids) y citas a fragmentos curados (kb_fragment_id).
Adaptador de proveedores LLM con soporte para 5 perfiles: openrouter_paid (ZDR y data collection deny), openrouter_free, gemini_free, ollama_local y mock.
Candado de datos en código que bloquea el inicio (fail-fast) si APP_ENV=prod utiliza proveedores gratuitos/con retención de datos.
Prompt v1 con delimitación estricta de datos no confiables (<<<UNTRUSTED_...>>>) y mitigaciones contra prompt injection.
Dockerfile no-root (UID 10001) y configuración en docker-compose.yml.
Cobertura con 34 pruebas en pytest (34/34 en verde) y suite completa de pruebas unitarias y de arquitectura .NET intactas (284/284 en verde).

… candado de datos (S1-18)

- Microservicio FastAPI en ai-service con endpoints /health, /info y /explain (ADR-02, RF-IA-02 v1.1).
- Esquema formal de afirmaciones tipadas: OBSERVACION, INTERPRETACION y RECOMENDACION con validación de finding_ids y kb_fragment_id.
- Adaptador de LLM desacoplado con perfiles openrouter_paid, openrouter_free, gemini_free, ollama_local y mock (ADR-10).
- Candado de datos en código que bloquea fail-fast con APP_ENV=prod ante perfiles que comparten datos (RES-06).
- Plantilla prompt v1 con delimitación estricta de datos no confiables (RNF-SEG-06).
- Dockerfile no-root (usuario 10001) y configuración en docker-compose.
- Suite de 34 pruebas en pytest cubriendo candado, esquemas, adaptadores y criterios de aceptación.
Copilot AI balanced review requested due to automatic review settings November 13, 2026 20:39

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has insufficient remaining quota. Try requesting a review at a lower effort level.

@sonarqubecloud

Copy link
Copy Markdown

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants