1
This commit is contained in:
@@ -0,0 +1,89 @@
|
||||
# Knowledge Station
|
||||
|
||||
Plataforma para organizar conocimiento escolar por materia y semana, procesar documentos/audio/video y generar archivos Markdown optimizados para ingesta en LLM.
|
||||
|
||||
El archivo `estacion documentos.html` queda como prototipo funcional de referencia. La plataforma principal usa `backend/` (FastAPI) y `frontend/` (Next.js).
|
||||
|
||||
## Capacidades Iniciales
|
||||
|
||||
- Materias y semanas persistidas en SQLite.
|
||||
- Estructura de archivos por materia/semana en `data/subjects/`.
|
||||
- Ingesta de `.txt`, `.md`, `.docx`, `.pdf`, audio y video.
|
||||
- PDF con texto mediante PyMuPDF.
|
||||
- OCR opcional de PDF con Mistral.
|
||||
- Audio con Deepgram en español.
|
||||
- Video con extracción temporal de audio vía `ffmpeg` y transcripción con Deepgram.
|
||||
- Exportación semanal consolidada a Markdown.
|
||||
- UI dedicada con materias, semanas, subida de archivos, polling de trabajos y editor Markdown con preview.
|
||||
|
||||
## Desarrollo Local
|
||||
|
||||
```bash
|
||||
python -m venv .venv
|
||||
.venv\Scripts\activate
|
||||
pip install -r requirements.txt
|
||||
copy .env.example .env
|
||||
uvicorn backend.app.main:app --reload
|
||||
```
|
||||
|
||||
En otra terminal:
|
||||
|
||||
```bash
|
||||
cd frontend
|
||||
npm install
|
||||
set NEXT_PUBLIC_API_URL=http://127.0.0.1:8000
|
||||
npm run dev -- -p 3000
|
||||
```
|
||||
|
||||
La plataforma queda en `http://localhost:3000`, la API en `http://localhost:8000` y la documentación interactiva en `http://localhost:8000/docs`.
|
||||
|
||||
Para usuarios no tecnicos en Windows, usa `abrir_estacion.bat`; detecta puertos libres, prepara backend/frontend y abre el navegador. Usa `cerrar_estacion.bat` para detener todo.
|
||||
|
||||
## Docker / Coolify
|
||||
|
||||
```bash
|
||||
docker compose up --build
|
||||
```
|
||||
|
||||
Para Coolify, configura backend y frontend como servicios separados. Monta un volumen persistente para `/app/data` en el backend y define `NEXT_PUBLIC_API_URL` en el frontend apuntando a la URL publica del backend.
|
||||
|
||||
## Variables
|
||||
|
||||
- `APP_DATA_DIR`: carpeta de datos persistentes.
|
||||
- `DATABASE_PATH`: ruta SQLite.
|
||||
- `MISTRAL_API_KEY`: OCR para PDFs escaneados.
|
||||
- `DEEPGRAM_API_KEY`: transcripción de audio/video.
|
||||
|
||||
No subas claves reales al repositorio.
|
||||
|
||||
## Flujo API Basico
|
||||
|
||||
Crear materia:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/subjects -H "Content-Type: application/json" -d '{"name":"Comportamiento Organizacional"}'
|
||||
```
|
||||
|
||||
Crear semana:
|
||||
|
||||
```bash
|
||||
curl -X POST http://localhost:8000/subjects/1/weeks -H "Content-Type: application/json" -d '{"number":1,"title":"Grupos y equipos"}'
|
||||
```
|
||||
|
||||
Subir archivo:
|
||||
|
||||
```bash
|
||||
curl -X POST -F "[email protected]" http://localhost:8000/subjects/1/weeks/1/files
|
||||
```
|
||||
|
||||
Consultar trabajo:
|
||||
|
||||
```bash
|
||||
curl http://localhost:8000/jobs/1
|
||||
```
|
||||
|
||||
Exportar semana:
|
||||
|
||||
```bash
|
||||
curl -L http://localhost:8000/subjects/1/weeks/1/export -o semana-01.md
|
||||
```
|
||||
Reference in New Issue
Block a user