Santiagogrz6 commited on
Commit
ee62733
·
verified ·
1 Parent(s): dcdbe16

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -22
app.py CHANGED
@@ -1,39 +1,44 @@
1
  import gradio as gr
2
  from transformers import T5Tokenizer, T5ForConditionalGeneration
3
- from deep_translator import GoogleTranslator
4
  import torch
 
5
  # Limitar el uso de CPU para servidores lentos
6
  torch.set_num_threads(1)
7
  torch.set_num_interop_threads(1)
 
8
  # Cargar modelo
9
  tokenizer = T5Tokenizer.from_pretrained("cssupport/t5-small-awesome-text-to-sql")
10
  model = T5ForConditionalGeneration.from_pretrained("cssupport/t5-small-awesome-text-to-sql")
11
- # Esquema de base de datos
12
- SCHEMA_EN = """
 
13
  Database schema:
14
- Table bodegas(Id, Name, Manager, Phone, Email, Address, Schedule, Region, Latitude, Longitude)
15
- Table master(CodigoSap, Description, Group, Aggregator, Brand, Part, Operation, Component)
16
  """
17
 
18
  # Función principal
19
  def generar_sql(pregunta_espanol):
20
- try:
21
- # Traducir pregunta a inglés
22
- pregunta_ingles = GoogleTranslator(source="es", target="en").translate(pregunta_espanol)
23
- # Crear prompt
24
- prompt = f"Given the following schema:\n{SCHEMA_EN}\nTranslate this question into SQL: {pregunta_espanol}"
25
- input_ids = tokenizer(prompt, return_tensors="pt").input_ids
26
- output = model.generate(input_ids, max_length=128)
27
- sql = tokenizer.decode(output[0], skip_special_tokens=True)
28
- return sql
29
- except Exception as e:
30
- return f"Error: {str(e)}"
 
 
31
  # Interfaz Gradio
32
  iface = gr.Interface(
33
- fn=generar_sql,
34
- inputs=gr.Textbox(lines=3, label="Pregunta en español"),
35
- outputs=gr.Textbox(label="Consulta SQL generada"),
36
- title="Texto a SQL (entrada en español)",
37
- description="Escribe una pregunta en español sobre la base de datos y obtén la consulta SQL."
38
  )
39
- iface.launch()
 
 
1
  import gradio as gr
2
  from transformers import T5Tokenizer, T5ForConditionalGeneration
 
3
  import torch
4
+
5
  # Limitar el uso de CPU para servidores lentos
6
  torch.set_num_threads(1)
7
  torch.set_num_interop_threads(1)
8
+
9
  # Cargar modelo
10
  tokenizer = T5Tokenizer.from_pretrained("cssupport/t5-small-awesome-text-to-sql")
11
  model = T5ForConditionalGeneration.from_pretrained("cssupport/t5-small-awesome-text-to-sql")
12
+
13
+ # Esquema de base de datos simplificado
14
+ SCHEMA = """
15
  Database schema:
16
+ Table bodegas(Id, Nombre, Encargado, Telefono, Email, Direccion, Horario, Regional, Latitud, Longitud)
17
+ Table maestra(CodigoSap, Descripcion, Grupo, Agrupador, Marca, Parte, Operacion, Componente)
18
  """
19
 
20
  # Función principal
21
  def generar_sql(pregunta_espanol):
22
+ try:
23
+ # Crear prompt claro y directo
24
+ prompt = f"Esquema de base de datos:\n{SCHEMA}\nPregunta en español: {pregunta_espanol}\nGenera la consulta SQL correspondiente."
25
+
26
+ # Generar la consulta SQL
27
+ input_ids = tokenizer(prompt, return_tensors="pt").input_ids
28
+ output = model.generate(input_ids, max_length=128)
29
+ sql = tokenizer.decode(output[0], skip_special_tokens=True)
30
+
31
+ return sql
32
+ except Exception as e:
33
+ return f"Error: {str(e)}"
34
+
35
  # Interfaz Gradio
36
  iface = gr.Interface(
37
+ fn=generar_sql,
38
+ inputs=gr.Textbox(lines=3, label="Pregunta en español"),
39
+ outputs=gr.Textbox(label="Consulta SQL generada"),
40
+ title="Texto a SQL (entrada en español)",
41
+ description="Escribe una pregunta en español sobre la base de datos y obtén la consulta SQL."
42
  )
43
+
44
+ iface.launch()