Heraali commited on
Commit
28ed850
1 Parent(s): d13a294

Upload 2 files

Browse files
Files changed (2) hide show
  1. app.py +10 -7
  2. knowledge_base.json +16 -16
app.py CHANGED
@@ -58,19 +58,22 @@ def get_dynamic_context_semantic(question, knowledge_base, knowledge_base_embedd
58
  # Calculate cosine similarity between the question and knowledge base entries
59
  cosine_scores = util.pytorch_cos_sim(question_embedding, torch.stack(knowledge_base_embeddings))
60
 
 
 
 
 
61
  # Get the index of the highest score (most similar context)
62
  best_match_idx = torch.argmax(cosine_scores).item()
63
  best_match_score = cosine_scores[0, best_match_idx].item()
64
 
65
- # Print for debugging purposes
66
- print(f"Question: {question}")
67
- print(f"Best match score: {best_match_score}")
68
- print(f"Best match entry: {knowledge_base[best_match_idx]['title']}")
69
 
70
- if best_match_score > 0.7: # Increase threshold for better matching
 
71
  best_match_entry = knowledge_base[best_match_idx]
72
 
73
- # Prioritize FAQ matching before other sections
74
  for content_item in best_match_entry['content']:
75
  if 'faq' in content_item:
76
  for faq in content_item['faq']:
@@ -117,5 +120,5 @@ interface = gr.Interface(
117
  description="Ask questions and get answers from the OCN knowledge base."
118
  )
119
 
120
- # Launch the Gradio interface
121
  interface.launch(share=True)
 
58
  # Calculate cosine similarity between the question and knowledge base entries
59
  cosine_scores = util.pytorch_cos_sim(question_embedding, torch.stack(knowledge_base_embeddings))
60
 
61
+ # Log all cosine similarity scores for debugging
62
+ for idx, score in enumerate(cosine_scores[0]):
63
+ print(f"Entry: {knowledge_base[idx]['title']} - Score: {score.item()}")
64
+
65
  # Get the index of the highest score (most similar context)
66
  best_match_idx = torch.argmax(cosine_scores).item()
67
  best_match_score = cosine_scores[0, best_match_idx].item()
68
 
69
+ # Log the best match for better debugging
70
+ print(f"Best Match Score: {best_match_score}, Entry: {knowledge_base[best_match_idx]['title']}")
 
 
71
 
72
+ # Continue with the normal matching logic
73
+ if best_match_score > 0.6: # Lowered threshold to 0.6 for better matches
74
  best_match_entry = knowledge_base[best_match_idx]
75
 
76
+ # Prioritize FAQ matching
77
  for content_item in best_match_entry['content']:
78
  if 'faq' in content_item:
79
  for faq in content_item['faq']:
 
120
  description="Ask questions and get answers from the OCN knowledge base."
121
  )
122
 
123
+ # Launch the Gradio interface (no need for share=True)
124
  interface.launch(share=True)
knowledge_base.json CHANGED
@@ -1,6 +1,6 @@
1
  [
2
  {
3
- "title": "Pasos a seguir",
4
  "content": [
5
  {
6
  "section": "Pasos a seguir",
@@ -34,7 +34,7 @@
34
  ]
35
  },
36
  {
37
- "title": "Pasos para gestionar el addendum autorizado",
38
  "content": [
39
  {
40
  "section": "Ingreso a Admin",
@@ -84,11 +84,11 @@
84
  "title": "Gestión de eventos en Mexicali",
85
  "content": [
86
  {
87
- "section": "Proceso",
88
  "details": [
89
- "Reunir documentación necesaria.",
90
  "Presentar solicitud en la Unidad Municipal de Protección Civil.",
91
- "Realizar pago de derechos en la oficina de Recaudación de Rentas."
92
  ]
93
  },
94
  {
@@ -98,7 +98,7 @@
98
  ]
99
  },
100
  {
101
- "title": "Requisitos para el trámite",
102
  "content": [
103
  {
104
  "requirement": "Identificación",
@@ -115,46 +115,46 @@
115
  ]
116
  },
117
  {
118
- "title": "Recuperación del auto",
119
  "content": [
120
  {
121
- "section": "Proceso de cobranza",
122
  "text": "El sistema identifica los clientes que no han realizado su pago a las 5 PM de cada lunes. Si el cliente no realiza el pago, el vehículo es bloqueado."
123
  },
124
  {
125
- "section": "Gestión de disputas",
126
  "text": "El área de riesgos interviene en disputas contractuales, aclarando los términos del acuerdo."
127
  }
128
  ]
129
  },
130
  {
131
- "title": "Extensiones de pago",
132
  "content": [
133
  {
134
- "section": "Elegibilidad",
135
  "text": "Solo clientes con buen historial de pago pueden solicitar una extensión."
136
  },
137
  {
138
- "section": "Proceso",
139
  "text": "Las solicitudes deben enviarse antes del lunes a las 3 PM, con toda la información relevante."
140
  }
141
  ]
142
  },
143
  {
144
- "title": "Pagos tardíos",
145
  "content": [
146
  {
147
- "section": "Penalización",
148
  "text": "Si el cliente paga tarde, debe pagar una penalización de 100 pesos. El vehículo será desbloqueado tras el pago."
149
  },
150
  {
151
- "section": "Comunicación",
152
  "text": "El área de cobranza contactará al cliente y explicará las consecuencias de un pago tardío."
153
  }
154
  ]
155
  },
156
  {
157
- "title": "Preguntas Frecuentes",
158
  "content": [
159
  {
160
  "faq": [
 
1
  [
2
  {
3
+ "title": "Proceso: Recolección de coche en la agencia",
4
  "content": [
5
  {
6
  "section": "Pasos a seguir",
 
34
  ]
35
  },
36
  {
37
+ "title": "Instrucciones: Gestionar addendum autorizado",
38
  "content": [
39
  {
40
  "section": "Ingreso a Admin",
 
84
  "title": "Gestión de eventos en Mexicali",
85
  "content": [
86
  {
87
+ "section": "Proceso de gestión de eventos",
88
  "details": [
89
+ "Reunir toda la documentación necesaria.",
90
  "Presentar solicitud en la Unidad Municipal de Protección Civil.",
91
+ "Realizar el pago de derechos en la oficina de Recaudación de Rentas."
92
  ]
93
  },
94
  {
 
98
  ]
99
  },
100
  {
101
+ "title": "Requisitos para el trámite de eventos",
102
  "content": [
103
  {
104
  "requirement": "Identificación",
 
115
  ]
116
  },
117
  {
118
+ "title": "Proceso de recuperación del auto",
119
  "content": [
120
  {
121
+ "section": "Cobranza y recuperación",
122
  "text": "El sistema identifica los clientes que no han realizado su pago a las 5 PM de cada lunes. Si el cliente no realiza el pago, el vehículo es bloqueado."
123
  },
124
  {
125
+ "section": "Gestión de disputas contractuales",
126
  "text": "El área de riesgos interviene en disputas contractuales, aclarando los términos del acuerdo."
127
  }
128
  ]
129
  },
130
  {
131
+ "title": "Extensiones de pago para clientes",
132
  "content": [
133
  {
134
+ "section": "Elegibilidad para extensiones",
135
  "text": "Solo clientes con buen historial de pago pueden solicitar una extensión."
136
  },
137
  {
138
+ "section": "Proceso de solicitud de extensión",
139
  "text": "Las solicitudes deben enviarse antes del lunes a las 3 PM, con toda la información relevante."
140
  }
141
  ]
142
  },
143
  {
144
+ "title": "Penalización y gestión de pagos tardíos",
145
  "content": [
146
  {
147
+ "section": "Penalización por pagos tardíos",
148
  "text": "Si el cliente paga tarde, debe pagar una penalización de 100 pesos. El vehículo será desbloqueado tras el pago."
149
  },
150
  {
151
+ "section": "Comunicación con clientes morosos",
152
  "text": "El área de cobranza contactará al cliente y explicará las consecuencias de un pago tardío."
153
  }
154
  ]
155
  },
156
  {
157
+ "title": "Preguntas Frecuentes sobre Pagos",
158
  "content": [
159
  {
160
  "faq": [