Spaces:
Sleeping
Sleeping
Upload 7 files
Browse files- .gitattributes +2 -0
- db.sqlite3 +3 -0
- dockerfile +19 -0
- index.faiss +3 -0
- index.pkl +3 -0
- manage.py +22 -0
- requirements.txt +27 -0
- seed.py +57 -0
.gitattributes
CHANGED
|
@@ -33,3 +33,5 @@ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
|
|
|
|
|
| 33 |
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
| 36 |
+
db.sqlite3 filter=lfs diff=lfs merge=lfs -text
|
| 37 |
+
index.faiss filter=lfs diff=lfs merge=lfs -text
|
db.sqlite3
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:965ba20399acfb7a5f33412ff226322b2640f1f344f5173f5ae17a938209b875
|
| 3 |
+
size 151552
|
dockerfile
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.11-slim
|
| 2 |
+
|
| 3 |
+
RUN apt-get update && apt-get install -y \
|
| 4 |
+
build-essential \
|
| 5 |
+
libpq-dev \
|
| 6 |
+
&& rm -rf /var/lib/apt/lists/*
|
| 7 |
+
|
| 8 |
+
WORKDIR /app
|
| 9 |
+
|
| 10 |
+
COPY requirements.txt .
|
| 11 |
+
RUN pip install --no-cache-dir -r requirements.txt
|
| 12 |
+
|
| 13 |
+
COPY . .
|
| 14 |
+
|
| 15 |
+
ENV PORT=7860
|
| 16 |
+
EXPOSE 7860
|
| 17 |
+
|
| 18 |
+
ENV PYTHONPATH=/app/backend
|
| 19 |
+
CMD ["gunicorn", "core.wsgi:application", "--bind", "0.0.0.0:7860", "--chdir", "/app/backend"]
|
index.faiss
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:705a256cb9f9ac5aa97c22bc5fc04c0cc6c2b454bcd183547712836a603e4483
|
| 3 |
+
size 228909
|
index.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:d925361c7c5e3fbf59a6925864907ec8ae4820ab310154650f199b63ce57ea3e
|
| 3 |
+
size 196188
|
manage.py
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
#!/usr/bin/env python
|
| 2 |
+
"""Django's command-line utility for administrative tasks."""
|
| 3 |
+
import os
|
| 4 |
+
import sys
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
def main():
|
| 8 |
+
"""Run administrative tasks."""
|
| 9 |
+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
|
| 10 |
+
try:
|
| 11 |
+
from django.core.management import execute_from_command_line
|
| 12 |
+
except ImportError as exc:
|
| 13 |
+
raise ImportError(
|
| 14 |
+
"Couldn't import Django. Are you sure it's installed and "
|
| 15 |
+
"available on your PYTHONPATH environment variable? Did you "
|
| 16 |
+
"forget to activate a virtual environment?"
|
| 17 |
+
) from exc
|
| 18 |
+
execute_from_command_line(sys.argv)
|
| 19 |
+
|
| 20 |
+
|
| 21 |
+
if __name__ == '__main__':
|
| 22 |
+
main()
|
requirements.txt
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# Django & Base
|
| 2 |
+
Django>=5.0
|
| 3 |
+
djangorestframework
|
| 4 |
+
django-cors-headers
|
| 5 |
+
python-dotenv
|
| 6 |
+
requests
|
| 7 |
+
gunicorn
|
| 8 |
+
whitenoise
|
| 9 |
+
|
| 10 |
+
# Google AI (Gemini & LangChain)
|
| 11 |
+
google-generativeai
|
| 12 |
+
langchain
|
| 13 |
+
langchain-community
|
| 14 |
+
langchain-google-genai
|
| 15 |
+
|
| 16 |
+
# Procesamiento de Im谩genes (Para el OCR)
|
| 17 |
+
Pillow
|
| 18 |
+
|
| 19 |
+
# RAG & Vectores (FAISS + HuggingFace)
|
| 20 |
+
faiss-cpu
|
| 21 |
+
langchain-huggingface
|
| 22 |
+
sentence-transformers
|
| 23 |
+
chromadb
|
| 24 |
+
|
| 25 |
+
# Motores de C谩lculo (Necesarios para CrossEncoder y Embeddings)
|
| 26 |
+
torch
|
| 27 |
+
numpy
|
seed.py
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import os
|
| 2 |
+
import sys
|
| 3 |
+
import django
|
| 4 |
+
import random
|
| 5 |
+
|
| 6 |
+
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
| 7 |
+
|
| 8 |
+
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'core.settings')
|
| 9 |
+
|
| 10 |
+
try:
|
| 11 |
+
django.setup()
|
| 12 |
+
print("Conexi贸n exitosa")
|
| 13 |
+
except Exception as e:
|
| 14 |
+
print(f"Error: {e}")
|
| 15 |
+
sys.exit(1)
|
| 16 |
+
|
| 17 |
+
from api.models import Socio, Solicitud
|
| 18 |
+
from faker import Faker
|
| 19 |
+
|
| 20 |
+
fake = Faker('es_ES')
|
| 21 |
+
|
| 22 |
+
def run_seed():
|
| 23 |
+
print("Creando usuarios y pr茅stamos de prueba....")
|
| 24 |
+
|
| 25 |
+
barrios = ["San Vicente", "Sajonia", "Centro", "Lambar茅", "Villa Morra", "Trinidad"]
|
| 26 |
+
|
| 27 |
+
for i in range(50):
|
| 28 |
+
s = Socio.objects.create(
|
| 29 |
+
nombre=fake.first_name(),
|
| 30 |
+
apellido=fake.last_name(),
|
| 31 |
+
cedula=str(random.randint(500000, 7000000)),
|
| 32 |
+
telefono="0981" + str(random.randint(100000, 999999)),
|
| 33 |
+
ciudad="Asunci贸n",
|
| 34 |
+
barrio=random.choice(barrios),
|
| 35 |
+
direccion=f"Calle {fake.street_name()} {fake.building_number()}",
|
| 36 |
+
estado=random.choice(["Activo", "Pendiente"])
|
| 37 |
+
)
|
| 38 |
+
|
| 39 |
+
Solicitud.objects.create(
|
| 40 |
+
nombre=f"{s.nombre} {s.apellido}",
|
| 41 |
+
cedula=s.cedula,
|
| 42 |
+
monto=random.randint(5000000, 50000000),
|
| 43 |
+
plazo=random.choice([12, 24, 36, 48]),
|
| 44 |
+
cuota=random.randint(400000, 1500000),
|
| 45 |
+
ingresos=random.randint(4000000, 12000000),
|
| 46 |
+
gastos=random.randint(1000000, 4000000),
|
| 47 |
+
tipo_credito=random.choice(["Consumo", "Vivienda"]),
|
| 48 |
+
estado=random.choice(["Pendiente", "Aprobado", "Rechazado"])
|
| 49 |
+
)
|
| 50 |
+
|
| 51 |
+
if (i + 1) % 10 == 0:
|
| 52 |
+
print(f" - Procesados {i + 1}/50...")
|
| 53 |
+
|
| 54 |
+
print("Base de datos funciono correctamente")
|
| 55 |
+
|
| 56 |
+
if __name__ == "__main__":
|
| 57 |
+
run_seed()
|