Josedcape commited on
Commit
a1c83d0
verified
1 Parent(s): 43d3056

Update agent_functions.py

Browse files
Files changed (1) hide show
  1. agent_functions.py +38 -12
agent_functions.py CHANGED
@@ -13,6 +13,38 @@ os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "botidinamix-g.json"
13
  # Instancia el cliente de Text-to-Speech
14
  client = texttospeech.TextToSpeechClient()
15
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  class PedidoTool:
17
  def __init__(self, menu_df):
18
  self.menu_df = menu_df
@@ -33,16 +65,10 @@ class OrdenTool:
33
  items = pedido.split(',')
34
  total = 0
35
  for item in items:
36
- price = self.menu_df[self.menu_df['item'] == item.strip()]['precio'].values[0]
37
- total += precio
38
  return total
39
 
40
- def leer_menu_csv(filepath):
41
- menu = pd.read_csv(filepath)
42
- menu.columns = menu.columns.str.strip() # Eliminar espacios en blanco de los nombres de las columnas
43
- print("Columnas del men煤 CSV:", menu.columns.tolist()) # Imprimir nombres de columnas para verificaci贸n
44
- return menu
45
-
46
  def generar_pdf_orden(order_details, filepath='orden_compra.pdf'):
47
  c = canvas.Canvas(filepath, pagesize=letter)
48
  width, height = letter
@@ -57,10 +83,10 @@ def generar_pdf_orden(order_details, filepath='orden_compra.pdf'):
57
  c.save()
58
  return filepath
59
 
60
- def obtener_respuesta(pregunta, texto_preprocesado, modelo, temperatura=0.5):
61
  try:
62
  response = openai.ChatCompletion.create(
63
- model="gpt-4",
64
  messages=[
65
  {"role": "system", "content": "Actua como Ana una asesora de ventas del restaurante Sazon Burguer, tienes un tono muy amable y cordial"},
66
  {"role": "user", "content": f"{pregunta}\n\nContexto: {texto_preprocesado}"}
@@ -93,12 +119,12 @@ def obtener_respuesta(pregunta, texto_preprocesado, modelo, temperatura=0.5):
93
  except openai.OpenAIError as e:
94
  return f"Error al comunicarse con OpenAI: {e}", None
95
 
96
- def tomar_pedido_agente(pedido, menu_df):
97
  pedido_tool = PedidoTool(menu_df)
98
  confirmados = pedido_tool.tomar_pedido(pedido)
99
  return confirmados
100
 
101
- def procesar_orden_agente(pedido, menu_df):
102
  orden_tool = OrdenTool(menu_df)
103
  total = orden_tool.procesar_orden(pedido)
104
  return total
 
13
  # Instancia el cliente de Text-to-Speech
14
  client = texttospeech.TextToSpeechClient()
15
 
16
+ # Men煤 definido directamente en el c贸digo
17
+ menu = [
18
+ {"item": "Hamburguesa sencilla (200g)", "price": 14000},
19
+ {"item": "Hamburguesa doble (400g)", "price": 19000},
20
+ {"item": "Hamburguesa triple (600g)", "price": 24000},
21
+ {"item": "Hamburguesa napolitana", "price": 18000},
22
+ {"item": "Hamburguesa de la casa", "price": 22000},
23
+ {"item": "Perro caliente sencillo", "price": 11000},
24
+ {"item": "Perro caliente mixto (con tocino, queso y jalape帽os)", "price": 16000},
25
+ {"item": "Jalape帽os", "price": 2000},
26
+ {"item": "Tocineta", "price": 3000},
27
+ {"item": "Queso cheddar", "price": 3500},
28
+ {"item": "Queso americano", "price": 3500},
29
+ {"item": "Papas fritas naturales", "price": 4000},
30
+ {"item": "Papas fritas con lim贸n", "price": 4500},
31
+ {"item": "Papas fritas con pollo BBQ", "price": 5000},
32
+ {"item": "Papas fritas con jalape帽os y queso", "price": 5500},
33
+ {"item": "Papas fritas con tocineta y queso", "price": 6000},
34
+ {"item": "Cerveza Pilsen", "price": 4000},
35
+ {"item": "Cerveza 脕guila", "price": 5000},
36
+ {"item": "Cerveza Club Social", "price": 7000},
37
+ {"item": "Batido de chocolate", "price": 6000},
38
+ {"item": "Batido de vainilla", "price": 5500},
39
+ {"item": "Batido de fresa", "price": 6500},
40
+ {"item": "Agua mineral con gas", "price": 3000},
41
+ {"item": "Agua aromatizada", "price": 2500},
42
+ {"item": "Leche", "price": 3500},
43
+ {"item": "Jugo natural (en agua o leche)", "price": 4000}
44
+ ]
45
+
46
+ menu_df = pd.DataFrame(menu)
47
+
48
  class PedidoTool:
49
  def __init__(self, menu_df):
50
  self.menu_df = menu_df
 
65
  items = pedido.split(',')
66
  total = 0
67
  for item in items:
68
+ price = self.menu_df[self.menu_df['item'] == item.strip()]['price'].values[0]
69
+ total += price
70
  return total
71
 
 
 
 
 
 
 
72
  def generar_pdf_orden(order_details, filepath='orden_compra.pdf'):
73
  c = canvas.Canvas(filepath, pagesize=letter)
74
  width, height = letter
 
83
  c.save()
84
  return filepath
85
 
86
+ def obtener_respuesta(pregunta, texto_preprocesado, modelo="gpt-4", temperatura=0.5):
87
  try:
88
  response = openai.ChatCompletion.create(
89
+ model=modelo,
90
  messages=[
91
  {"role": "system", "content": "Actua como Ana una asesora de ventas del restaurante Sazon Burguer, tienes un tono muy amable y cordial"},
92
  {"role": "user", "content": f"{pregunta}\n\nContexto: {texto_preprocesado}"}
 
119
  except openai.OpenAIError as e:
120
  return f"Error al comunicarse con OpenAI: {e}", None
121
 
122
+ def tomar_pedido_agente(pedido):
123
  pedido_tool = PedidoTool(menu_df)
124
  confirmados = pedido_tool.tomar_pedido(pedido)
125
  return confirmados
126
 
127
+ def procesar_orden_agente(pedido):
128
  orden_tool = OrdenTool(menu_df)
129
  total = orden_tool.procesar_orden(pedido)
130
  return total