Spaces:
Sleeping
Sleeping
Update utils.py
Browse files
utils.py
CHANGED
|
@@ -3,9 +3,15 @@ import os
|
|
| 3 |
from PyPDF2 import PdfReader
|
| 4 |
from transformers import pipeline
|
| 5 |
import gdown
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 6 |
|
| 7 |
# Configura tu clave de API de OpenAI
|
| 8 |
-
api_key = os.getenv('OPENAI_API_KEY'
|
| 9 |
openai.api_key = api_key
|
| 10 |
|
| 11 |
def descargar_documento(file_id, output='documento.pdf'):
|
|
@@ -33,23 +39,23 @@ def analizar_documento(document_text):
|
|
| 33 |
estructura_carpetas.append("src/text_response/")
|
| 34 |
archivos_codigo.append("src/text_response/handle_text.py")
|
| 35 |
|
| 36 |
-
if "voz"
|
| 37 |
funcionalidades.append("Respuesta de voz")
|
| 38 |
estructura_carpetas.append("src/voice_response/")
|
| 39 |
archivos_codigo.append("src/voice_response/handle_voice.py")
|
| 40 |
|
| 41 |
-
if "base de datos"
|
| 42 |
funcionalidades.append("Almacenamiento en base de datos")
|
| 43 |
estructura_carpetas.append("src/database/")
|
| 44 |
archivos_codigo.append("src/database/manage_db.py")
|
| 45 |
|
| 46 |
-
if "web"
|
| 47 |
funcionalidades.append("Integraci贸n con aplicaciones web y m贸viles")
|
| 48 |
estructura_carpetas.append("src/integration/")
|
| 49 |
archivos_codigo.append("src/integration/web_integration.py")
|
| 50 |
archivos_codigo.append("src/integration/mobile_integration.py")
|
| 51 |
|
| 52 |
-
if "IA"
|
| 53 |
funcionalidades.append("Mejora continua mediante IA")
|
| 54 |
estructura_carpetas.append("src/ai_improvement/")
|
| 55 |
archivos_codigo.append("src/ai_improvement/improve_ai.py")
|
|
@@ -65,23 +71,23 @@ def generar_codigo_gpt4(archivo, descripcion):
|
|
| 65 |
return response['choices'][0]['text']
|
| 66 |
|
| 67 |
def crear_archivos_codigo(estructura_carpetas, archivos_codigo):
|
| 68 |
-
for carpeta
|
| 69 |
if not os.path.exists(carpeta):
|
| 70 |
os.makedirs(carpeta)
|
| 71 |
|
| 72 |
-
for archivo
|
| 73 |
descripcion = ""
|
| 74 |
if 'handle_text.py' in archivo:
|
| 75 |
descripcion = "maneja respuestas de texto"
|
| 76 |
-
elif 'handle_voice.py'
|
| 77 |
descripcion = "maneja respuestas de voz"
|
| 78 |
-
elif 'manage_db.py'
|
| 79 |
descripcion = "gestiona la base de datos"
|
| 80 |
-
elif 'web_integration.py'
|
| 81 |
descripcion = "integra la funcionalidad web"
|
| 82 |
-
elif 'mobile_integration.py'
|
| 83 |
descripcion = "integra la funcionalidad m贸vil"
|
| 84 |
-
elif 'improve_ai.py'
|
| 85 |
descripcion = "mejora el modelo de IA"
|
| 86 |
|
| 87 |
codigo = generar_codigo_gpt4(archivo, descripcion)
|
|
@@ -102,3 +108,35 @@ def crear_archivos_codigo(estructura_carpetas, archivos_codigo):
|
|
| 102 |
f.write(' "express": "^4.17.1"\n')
|
| 103 |
f.write(' }\n')
|
| 104 |
f.write('}\n')
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 3 |
from PyPDF2 import PdfReader
|
| 4 |
from transformers import pipeline
|
| 5 |
import gdown
|
| 6 |
+
from reportlab.lib.pagesizes import letter
|
| 7 |
+
from reportlab.pdfgen import canvas
|
| 8 |
+
from dotenv import load_dotenv
|
| 9 |
+
|
| 10 |
+
# Cargar variables de entorno desde el archivo .env
|
| 11 |
+
load_dotenv()
|
| 12 |
|
| 13 |
# Configura tu clave de API de OpenAI
|
| 14 |
+
api_key = os.getenv('OPENAI_API_KEY')
|
| 15 |
openai.api_key = api_key
|
| 16 |
|
| 17 |
def descargar_documento(file_id, output='documento.pdf'):
|
|
|
|
| 39 |
estructura_carpetas.append("src/text_response/")
|
| 40 |
archivos_codigo.append("src/text_response/handle_text.py")
|
| 41 |
|
| 42 |
+
if "voz" en summary[0]['summary_text']:
|
| 43 |
funcionalidades.append("Respuesta de voz")
|
| 44 |
estructura_carpetas.append("src/voice_response/")
|
| 45 |
archivos_codigo.append("src/voice_response/handle_voice.py")
|
| 46 |
|
| 47 |
+
if "base de datos" en summary[0]['summary_text']:
|
| 48 |
funcionalidades.append("Almacenamiento en base de datos")
|
| 49 |
estructura_carpetas.append("src/database/")
|
| 50 |
archivos_codigo.append("src/database/manage_db.py")
|
| 51 |
|
| 52 |
+
if "web" en summary[0]['summary_text'] o "m贸vil" en summary[0]['summary_text']:
|
| 53 |
funcionalidades.append("Integraci贸n con aplicaciones web y m贸viles")
|
| 54 |
estructura_carpetas.append("src/integration/")
|
| 55 |
archivos_codigo.append("src/integration/web_integration.py")
|
| 56 |
archivos_codigo.append("src/integration/mobile_integration.py")
|
| 57 |
|
| 58 |
+
if "IA" en summary[0]['summary_text']:
|
| 59 |
funcionalidades.append("Mejora continua mediante IA")
|
| 60 |
estructura_carpetas.append("src/ai_improvement/")
|
| 61 |
archivos_codigo.append("src/ai_improvement/improve_ai.py")
|
|
|
|
| 71 |
return response['choices'][0]['text']
|
| 72 |
|
| 73 |
def crear_archivos_codigo(estructura_carpetas, archivos_codigo):
|
| 74 |
+
for carpeta en estructura_carpetas:
|
| 75 |
if not os.path.exists(carpeta):
|
| 76 |
os.makedirs(carpeta)
|
| 77 |
|
| 78 |
+
for archivo en archivos_codigo:
|
| 79 |
descripcion = ""
|
| 80 |
if 'handle_text.py' in archivo:
|
| 81 |
descripcion = "maneja respuestas de texto"
|
| 82 |
+
elif 'handle_voice.py' en archivo:
|
| 83 |
descripcion = "maneja respuestas de voz"
|
| 84 |
+
elif 'manage_db.py' en archivo:
|
| 85 |
descripcion = "gestiona la base de datos"
|
| 86 |
+
elif 'web_integration.py' en archivo:
|
| 87 |
descripcion = "integra la funcionalidad web"
|
| 88 |
+
elif 'mobile_integration.py' en archivo:
|
| 89 |
descripcion = "integra la funcionalidad m贸vil"
|
| 90 |
+
elif 'improve_ai.py' en archivo:
|
| 91 |
descripcion = "mejora el modelo de IA"
|
| 92 |
|
| 93 |
codigo = generar_codigo_gpt4(archivo, descripcion)
|
|
|
|
| 108 |
f.write(' "express": "^4.17.1"\n')
|
| 109 |
f.write(' }\n')
|
| 110 |
f.write('}\n')
|
| 111 |
+
}
|
| 112 |
+
|
| 113 |
+
def generar_plan(document_text):
|
| 114 |
+
resumen_documento, funcionalidades, estructura_carpetas, archivos_codigo = analizar_documento(document_text)
|
| 115 |
+
|
| 116 |
+
# Crear archivos de c贸digo y estructura de carpetas
|
| 117 |
+
crear_archivos_codigo(estructura_carpetas, archivos_codigo)
|
| 118 |
+
|
| 119 |
+
# Generar un documento PDF con el plan
|
| 120 |
+
output_path = 'plan_asistente_virtual.pdf'
|
| 121 |
+
c = canvas.Canvas(output_path, pagesize=letter)
|
| 122 |
+
width, height = letter
|
| 123 |
+
|
| 124 |
+
c.drawString(100, height - 100, "Plan para el Asistente Virtual")
|
| 125 |
+
|
| 126 |
+
c.drawString(100, height - 150, "Resumen del Documento:")
|
| 127 |
+
c.drawString(100, height - 170, resumen_documento)
|
| 128 |
+
|
| 129 |
+
c.drawString(100, height - 200, "Funcionalidades:")
|
| 130 |
+
for i, funcionalidad en enumerate(funcionalidades):
|
| 131 |
+
c.drawString(100, height - 220 - i*20, f"- {funcionalidad}")
|
| 132 |
+
|
| 133 |
+
c.drawString(100, height - 300, "Estructura de Carpetas:")
|
| 134 |
+
for i, carpeta en enumerate(estructura_carpetas):
|
| 135 |
+
c.drawString(100, height - 320 - i*20, f"- {carpeta}")
|
| 136 |
+
|
| 137 |
+
c.drawString(100, height - 400, "Archivos de C贸digo:")
|
| 138 |
+
for i, archivo en enumerate(archivos_codigo):
|
| 139 |
+
c.drawString(100, height - 420 - i*20, f"- {archivo}")
|
| 140 |
+
|
| 141 |
+
c.save()
|
| 142 |
+
return output_path
|