Ercik commited on
Commit
3ffbf5e
·
verified ·
1 Parent(s): cbb71d1

Upload 4 files

Browse files
Files changed (4) hide show
  1. .huggingface.yaml +2 -0
  2. Dockerfile +18 -0
  3. README.md +79 -8
  4. requirements.txt +6 -0
.huggingface.yaml ADDED
@@ -0,0 +1,2 @@
 
 
 
1
+ sdk: fastapi
2
+ app_file: app/main.py
Dockerfile ADDED
@@ -0,0 +1,18 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Imagen base oficial de Python
2
+ FROM python:3.10
3
+
4
+ # Establecer el directorio de trabajo dentro del contenedor
5
+ WORKDIR /code
6
+
7
+ # Copiar los archivos necesarios
8
+ COPY requirements.txt .
9
+ RUN pip install --no-cache-dir -r requirements.txt
10
+
11
+ # Copiar el código de la aplicación
12
+ COPY app /code/app
13
+
14
+ # Exponer el puerto (HF Spaces usa 7860 por convención)
15
+ EXPOSE 7860
16
+
17
+ # Comando para iniciar Uvicorn con FastAPI
18
+ CMD ["uvicorn", "app.main:app", "--host", "0.0.0.0", "--port", "7860"]
README.md CHANGED
@@ -1,11 +1,82 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  ---
2
- title: YOLO FastAPI2
3
- emoji: 🚀
4
- colorFrom: purple
5
- colorTo: pink
6
- sdk: docker
7
- pinned: false
8
- short_description: Modelo con auntenticacion para detectar objetos
 
 
 
 
 
9
  ---
10
 
11
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
 
1
+ # 🧠 API de Detección con Autenticación (FastAPI + JWT + YOLOv8)
2
+
3
+ Este proyecto es una API construida con **FastAPI**, que integra:
4
+
5
+ - 🔐 Autenticación con JWT
6
+ - 📷 Recepción de imágenes mediante `POST`
7
+ - 🧠 Detección de objetos usando **YOLOv8n**
8
+ - 🖼️ Devolución de la imagen con cajas (bounding boxes) dibujadas
9
+
10
+ ---
11
+
12
+ ## 🚀 ¿Cómo usarlo?
13
+
14
+ ### 1. Obtener un token JWT
15
+
16
+ Realiza una petición `POST` al endpoint `/token` con este body:
17
+
18
+ ```json
19
+ {
20
+ "username": "uriel",
21
+ "password": "1234"
22
+ }
23
+ ```
24
+
25
+ Recibirás una respuesta como:
26
+
27
+ ```json
28
+ {
29
+ "access_token": "<TU_TOKEN>",
30
+ "token_type": "bearer"
31
+ }
32
+ ```
33
+
34
+ ---
35
+
36
+ ### 2. Autorizarte en Swagger UI
37
+
38
+ Haz clic en el botón "Authorize" 🔓 y escribe:
39
+
40
+ ```
41
+ Bearer <TU_TOKEN>
42
+ ```
43
+
44
+ Esto habilitará los endpoints protegidos.
45
+
46
+ ---
47
+
48
+ ### 3. Subir una imagen al endpoint protegido
49
+
50
+ Envía una imagen al endpoint:
51
+
52
+ ```
53
+ POST /detectar/
54
+ ```
55
+
56
+ El resultado será una imagen con cajas de detección dibujadas.
57
+
58
+ ---
59
+
60
+ ## 🧪 Usuario de prueba
61
+
62
+ - **Usuario:** `uriel`
63
+ - **Contraseña:** `1234`
64
+
65
  ---
66
+
67
+ ## 📦 Dependencias
68
+
69
+ Las dependencias están definidas en `requirements.txt` e incluyen:
70
+
71
+ - FastAPI
72
+ - Uvicorn
73
+ - Ultralytics (YOLOv8)
74
+ - Python-Jose (JWT)
75
+ - Passlib (bcrypt)
76
+ - Pillow
77
+
78
  ---
79
 
80
+ ## 👨‍💻 Autor
81
+
82
+ Este proyecto fue creado por Uriel Escalona para demostrar una API segura y funcional con FastAPI + Visión por Computadora.
requirements.txt ADDED
@@ -0,0 +1,6 @@
 
 
 
 
 
 
 
1
+ fastapi
2
+ uvicorn
3
+ python-jose
4
+ passlib[bcrypt]
5
+ pillow
6
+ ultralytics