Construir una API completa con autenticación JWT y los endpoints listos para ser consumidos por un agente de IA.
# fork & clone the repository
cd lab-web-py-ai-api
python -m venv venv
source venv/bin/activate
pip install fastapi uvicorn python-dotenv pydantic[email] python-jose[cryptography] passlib[bcrypt] httpx
pip freeze > requirements.txt# .env
SECRET_KEY=mi-clave-super-secreta-cambiar-en-produccion
PORT=8000lab-web-py-ai-api/
├── main.py
├── config.py
├── models/
│ ├── usuario.py
│ └── nota.py
├── routers/
│ ├── auth.py
│ ├── notas.py
│ └── ia.py
├── auth/
│ └── jwt.py
└── .env
Los usuarios pueden crear notas de texto. La API expone endpoints para que un agente de IA pueda:
- Consultar el historial de notas de un usuario
- Buscar notas por contenido
- Chat con contexto de las notas del usuario
-
POST /auth/registro— registro de usuario -
POST /auth/login— devuelve JWT - Middleware que verifica JWT en rutas protegidas
-
GET /notas— listar notas del usuario autenticado (con?buscar=para filtrar por texto) -
GET /notas/{id}— obtener una nota (solo si es del usuario) -
POST /notas— crear nota -
PUT /notas/{id}— editar nota -
DELETE /notas/{id}— eliminar nota
-
POST /api/chat— chat con historial por sesión -
GET /api/chat/history/{session_id}— historial -
GET /api/search?q=— busca en las notas del usuario autenticado -
GET /api/context— describe capacidades de la API
- Logging estructurado en JSON para todas las peticiones a
/api/ GET /api/contextincluye el número de notas del usuario autenticado- Endpoint
POST /api/resumir/{nota_id}que devuelve una simulación de resumen IA
