Spaces:
Running
Running
charliealonso69
commited on
Commit
•
2fe3ac7
1
Parent(s):
be08cc0
Create app.py
Browse files
app.py
ADDED
@@ -0,0 +1,58 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
from contextlib import nullcontext
|
2 |
+
|
3 |
+
import csv
|
4 |
+
import os.path
|
5 |
+
import random
|
6 |
+
import gradio as gr
|
7 |
+
from gradio.components import Textbox, Dropdown
|
8 |
+
from gradio import Interface, TabbedInterface
|
9 |
+
|
10 |
+
|
11 |
+
def parametroAleatorio(lista):
|
12 |
+
res = random.choice(list(lista))
|
13 |
+
while res == '':
|
14 |
+
res = random.choice(list(lista))
|
15 |
+
return res
|
16 |
+
|
17 |
+
|
18 |
+
def make_concat_prompt(csv_reader, valoresUnicos):
|
19 |
+
def concat_prompt(*args):
|
20 |
+
campos = {campo: parametroAleatorio(valoresUnicos[campo]) for campo in csv_reader.fieldnames}
|
21 |
+
campos.update({campo: valor for campo, valor in zip(csv_reader.fieldnames, args) if valor})
|
22 |
+
|
23 |
+
prompt = ', '.join([campos[campo] for campo in csv_reader.fieldnames])
|
24 |
+
return prompt
|
25 |
+
return concat_prompt
|
26 |
+
|
27 |
+
|
28 |
+
csv_files = [f for f in os.listdir() if os.path.isfile(f) and f.endswith('.csv')]
|
29 |
+
csv_files.sort() # Ordenar alfabéticamente
|
30 |
+
|
31 |
+
interfaces = []
|
32 |
+
tab_labels = []
|
33 |
+
for file_name in csv_files:
|
34 |
+
with open(file_name, 'r') as csv_file:
|
35 |
+
csv_reader = csv.DictReader(csv_file)
|
36 |
+
valoresUnicos = {}
|
37 |
+
for campo in csv_reader.fieldnames:
|
38 |
+
valoresUnicos[campo] = set()
|
39 |
+
for row in csv_reader:
|
40 |
+
for campo, valor in row.items():
|
41 |
+
valoresUnicos[campo].add(valor)
|
42 |
+
|
43 |
+
inputs = [Dropdown(list(valoresUnicos[campo]), label=campo.capitalize()) for campo in valoresUnicos.keys()]
|
44 |
+
output_text = Textbox(label='Prompt')
|
45 |
+
|
46 |
+
tab_label = os.path.splitext(file_name)[0].title()
|
47 |
+
tab_labels.append(tab_label)
|
48 |
+
|
49 |
+
title = f"Generador Prompts Tecnolitas"
|
50 |
+
description = '<div align="center"> Selecciona entre los distintos menús desplegables para generar un Prompt creativo, los que dejes en blanco serán elegidos aleatoriamente.</div>'
|
51 |
+
fn = make_concat_prompt(csv_reader, valoresUnicos)
|
52 |
+
|
53 |
+
|
54 |
+
interface = Interface(fn=fn, inputs=inputs, outputs=output_text, title=title, description=description)
|
55 |
+
interfaces.append(interface)
|
56 |
+
|
57 |
+
tabbed_interface = TabbedInterface(interfaces, tab_labels)
|
58 |
+
tabbed_interface.launch()
|