Romanes commited on
Commit
c7e1de1
·
verified ·
1 Parent(s): 70d6e30

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +419 -202
app.py CHANGED
@@ -69,12 +69,10 @@ def parse_code_name(codes_raw: str, text_original: str) -> Tuple[str, str]:
69
  # Reglas
70
  # =========================
71
  REGLAS = [
72
- # REGLA: OPS (Orden de Prestación de Servicios)
73
- # CUÁNDO: Cuando el texto menciona OPS/contrato OPS o su expansión.
74
- # INTENCIÓN: Contratación de servicios profesionales/servicios técnicos por OPS.
75
- # NOTAS: Útil para “vinculación joven investigadora OPS”, asesorías, apoyos especializados, etc.
76
  {
77
- "keywords": ["ops", "orden de prestacion de servicios", "contrato ops"],
 
78
  "respuesta": {
79
  "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
80
  "CPC": ("8", "Servicios prestados a las empresas y servicios de producción"),
@@ -83,344 +81,563 @@ REGLAS = [
83
  "motivo": "Coincidencia con palabra clave OPS",
84
  },
85
 
86
- # REGLA: Tiquetes aéreos (viajes)
87
- # CUÁNDO: Pasajes, tiquetes, aéreos, etc.
88
- # INTENCIÓN: Traslados aéreos a eventos/misiones.
89
- # NOTA: Si aparece además 'viáticos', ambas reglas pueden disparar; resolver por score o prioridad contextual.
90
  {
91
- 'keywords': ["tiquete", "tiquetes", "pasajes", "aereos", "aereo", "aereo"],
92
- 'respuesta': {
93
- 'CICP': ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
94
- 'CPC': ("6", "Servicios de transporte de pasajeros"),
95
- 'UNSPSC': ("78111500", "Servicios de transporte aéreo"),
 
96
  },
97
- 'motivo': 'Auto (tiquetes). 50 ejemplos en Excel',
98
  },
99
 
100
- # REGLA: Viáticos (alojamiento, alimentación, transporte local)
101
- # CUÁNDO: 'viatico', 'viaticos'
102
- # INTENCIÓN: Gastos operativos de comisión de servicios.
103
- # NOTA: Complementa tiquetes. Puedes sumar keywords 'alojamiento', 'hospedaje' si lo deseas.
104
  {
105
- 'keywords': ['viatico', 'viaticos'],
106
- 'respuesta': {
107
- 'CICP': ('2.3.2.02.02.010', 'Servicios administrativos de apoyo'),
108
- 'CPC': ('901', 'Gastos directos de la administración pública'),
109
- 'UNSPSC': ('N/A', 'N/A'),
110
- },
111
- 'motivo': 'Auto (viaticos). 37 ejemplos en Excel',
 
112
  },
113
 
114
- # REGLA: Inscripción a eventos/cursos
115
- # CUÁNDO: inscripción/registro a congresos, talleres, cursos.
116
- # INTENCIÓN: Pago de inscripción/membresía.
117
- # NOTA: Muchas organizaciones lo contabilizan como servicio editorial/eventos.
118
  {
119
- 'keywords': ['inscripcion', 'inscripciones', 'registro'],
120
- 'respuesta': {
121
- 'CICP': ('2.3.2.02.02.009', 'Servicios para la comunidad'),
122
- 'CPC': ('901', 'Gastos directos de la administración pública'),
123
- 'UNSPSC': ('N/A', 'N/A'),
124
- },
125
- 'motivo': 'Auto (inscripción). 39 ejemplos en Excel',
 
126
  },
127
 
128
- # REGLA: Participación/Asistencia/Ponencia en eventos
129
- # CUÁNDO: 'participacion', 'asistencia', 'ponente', 'conferencista'
130
- # INTENCIÓN: Soporte a la asistencia activa; frecuentemente coexiste con tiquetes/viáticos.
131
  {
132
- 'keywords': ["participacion", "asistencia", "ponente", "conferencista"],
133
- 'respuesta': {
134
- 'CICP': ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
135
- 'CPC': ("6", "Servicios de transporte de pasajeros"),
136
- 'UNSPSC': ("78111500", "Servicios de transporte aéreo"),
 
137
  },
138
- 'motivo': 'Auto (participación). 35 ejemplos en Excel',
139
  },
140
 
141
- # REGLA: Impresión y material impreso
142
- # CUÁNDO: impresión de pósteres, afiches, folletos, volantes, brochure.
143
- # INTENCIÓN: Servicios editoriales/Impresión.
144
- # NOTA: Para compra de impresoras (bien), ver la regla de “impresora”.
145
  {
146
- 'keywords': ["impresion", "imprimir", "impresiones", "material impreso", "afiches", "posters", "folletos", "volantes", "brochure"],
147
- 'respuesta': {
148
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
149
- 'CPC': ("8", "Servicios prestados a las empresas y servicios de producción"),
150
- 'UNSPSC': ("82121500", "Servicios de impresión"),
 
151
  },
152
- 'motivo': 'Auto (impresión). 16 ejemplos en Excel',
153
  },
154
 
155
- # REGLA: Publicación científica (APC/Open Access)
156
- # CUÁNDO: 'publicacion', 'APC', 'article processing charge', 'open access'
157
- # INTENCIÓN: Pagar cargos editoriales de publicación científica.
158
  {
159
- 'keywords': ["publicacion", "article processing charge", "apc", "cuota publicacion", "edicion articulo", "open access"],
160
- 'respuesta': {
161
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
162
- 'CPC': ("8", "Servicios editoriales"),
163
- 'UNSPSC': ("82121800", "Servicios editoriales y de publicación"),
 
164
  },
165
- 'motivo': 'Auto (publicación). 37 ejemplos en Excel',
166
  },
167
 
168
- # REGLA: Servicios técnicos / Ensayos / Caracterización (Laboratorio)
169
- # CUÁNDO: 'servicios tecnicos', 'analisis de laboratorio', 'caracterizacion', 'ensayo'
170
- # INTENCIÓN: Análisis como SERVICIO (terceros).
171
- # NOTA: Si en cambio es COMPRA de equipo, ver reglas de 'reactivos' o 'impresora'/'equipos'.
172
  {
173
- 'keywords': ["servicios tecnicos", "servicio tecnico", "analisis de laboratorio", "caracterizacion", "ensayo"],
174
- 'respuesta': {
175
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
176
- 'CPC': ("8", "Servicios técnicos y de apoyo"),
177
- 'UNSPSC': ("81101703", "Servicios de análisis y ensayo de laboratorio"),
 
178
  },
179
- 'motivo': 'Auto (servicios técnicos). 7 ejemplos en Excel',
180
  },
181
 
182
- # REGLA: Mantenimiento / Calibración
183
- # CUÁNDO: 'mantenimiento', 'preventivo', 'correctivo', 'calibracion'
184
- # INTENCIÓN: Servicios de mantenimiento/calibración de equipos.
185
  {
186
- 'keywords': ["mantenimiento", "mantenimientos", "preventivo", "correctivo", "calibracion", "calibraciones"],
187
- 'respuesta': {
188
- 'CICP': ("2.1.2.02.02.008", "Servicios de mantenimiento y reparación"),
189
- 'CPC': ("8", "Servicios de mantenimiento preventivo y correctivo"),
190
- 'UNSPSC': ("80111600", "Servicios de soporte técnico o mantenimiento"),
 
191
  },
192
- 'motivo': 'Auto (mantenimiento). 2 ejemplos en Excel',
193
  },
194
 
195
- # REGLA: Software / Suscripciones
196
- # CUÁNDO: 'software', 'licenciamiento', 'suscripcion', 'suite'
197
- # INTENCIÓN: Servicios/licencias de software como servicio.
198
- # NOTA: Si es COMPRA de equipo (hardware), ver regla de “equipos de computo/impresora”.
199
  {
200
- 'keywords': ["software", "licenciamiento", "suscripcion", "suscripciones", "sistemas", "suite"],
201
- 'respuesta': {
202
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
203
- 'CPC': ("8", "Servicios de desarrollo y licencias de software"),
204
- 'UNSPSC': ("81112500", "Servicios de software o licencias informáticas"),
 
205
  },
206
- 'motivo': 'Auto (software). 17 ejemplos en Excel',
207
  },
208
 
209
- # REGLA: Licencia (genérico)
210
- # CUÁNDO: cuando sólo se menciona "licencia(s)" sin más contexto.
211
- # INTENCIÓN: Asumir licenciamiento de uso (software/documentos).
212
  {
213
- 'keywords': ["licencia", "licencias", "licenciamiento"],
214
- 'respuesta': {
215
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
216
- 'CPC': ("8", "Servicios de licenciamiento"),
217
- 'UNSPSC': ("80111600", "Servicios de personal temporal"),
 
218
  },
219
- 'motivo': 'Auto (licencia). 4 ejemplos en Excel',
220
  },
221
 
222
- # REGLA: Reactivos / Insumos de laboratorio (BIEN)
223
- # CUÁNDO: 'reactivos', 'insumos de laboratorio', 'quimicos'
224
- # INTENCIÓN: COMPRA de insumos (no servicio).
225
- # NOTA: Si el texto dice “análisis/ensayo” sin ‘compra/adquisición’, prioriza la regla de servicios técnicos.
226
  {
227
- 'keywords': ["reactivos", "insumos de laboratorio", "quimicos", "quimicas", "repuestos laboratorio"],
228
- 'respuesta': {
229
- 'CICP': ("2.3.2.02.01.003", "Productos químicos y reactivos"),
230
- 'CPC': ("3", "Productos químicos y reactivos de laboratorio"),
231
- 'UNSPSC': ("41000000", "Equipos y suministros de laboratorio"),
 
232
  },
233
- 'motivo': 'Auto (reactivos). 14 ejemplos en Excel',
234
  },
235
 
236
- # REGLA: Espectrometría / HPLC / RMN (como SERVICIO de análisis)
237
- # CUÁNDO: 'hplc', 'q tof', 'rmn', 'lc ms', 'gc ms', 'espectrometria', etc.
238
- # INTENCIÓN: Servicios analíticos de laboratorio (terceros).
239
- # NOTA: Si el texto dice “adquisición/compra de HPLC/RMN”, redirigir a bienes (equipo).
240
  {
241
- 'keywords': ["espectrometria", "hplc", "q tof", "qtof", "lc ms", "gc ms", "nmr", "rmn", "tiempo de vuelo", "masas"],
242
- 'respuesta': {
243
- 'CICP': ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
244
- 'CPC': ("8", "Servicios técnicos o de laboratorio"),
245
- 'UNSPSC': ("81101703", "Servicios de análisis espectrométrico o químico"),
 
246
  },
247
- 'motivo': 'Auto (espectrometría). 6 ejemplos en Excel',
248
  },
249
- # REGLA: Equipo de cómputo (como BIEN)
250
- # CUÁNDO: 'equipo de computo', 'portatil', 'laptop', 'pc', 'ordenador', 'computador', 'hardware', etc.
251
- # INTENCIÓN: Adquisición de equipos de cómputo como bien mueble (no servicio).
252
- # NOTA: Si el texto menciona “instalación”, “mantenimiento” o “soporte”, redirigir a la regla de servicios técnicos o mantenimiento.
253
  {
254
- 'keywords': [
255
- "equipo de computo", "equipos de computo", "computo", "computador", "computadora",
256
- "pc", "desktop", "torre", "cpu", "hardware", "all in one", "aio",
257
- "portatil", "laptop", "notebook", "ultrabook", "adquisic", "compra"
258
- ],
259
- 'respuesta': {
260
- 'CICP': ("2.3.2.02.01.003", "Otros bienes transportables (excepto productos metálicos, maquinaria y equipo)"),
261
- 'CPC': ("3", "Equipo de cómputo y partes (bienes)"),
262
- 'UNSPSC': ("43211500", "Computadoras personales"),
263
- },
264
- 'motivo': 'Auto (equipo de cómputo). ~54 ejemplos en Excel; excluye impresoras y periféricos (reglas separadas).',
265
  },
266
- # REGLA: Honorarios / Servicios profesionales (sin "OPS")
267
- # CUÁNDO: "honorarios", "contratar profesional", "asesoría", "consultoría".
268
  {
269
- "keywords": ["honorarios", "contratar profesional", "profesional independiente", "asesoria", "consultoria"],
 
270
  "respuesta": {
271
- "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
272
- "CPC": ("8", "Servicios técnicos y profesionales"),
273
- "UNSPSC":("80111600", "Servicios de personal temporal"),
274
  },
275
  "motivo": "Honorarios/servicios profesionales sin mención explícita de OPS",
276
  },
277
 
278
- # REGLA: Transporte TERRESTRE de pasajeros
279
- # CUÁNDO: "transporte terrestre", "bus", "terrestre".
280
  {
281
- "keywords": ["transporte terrestre", "terrestre", "bus", "autobus"],
 
282
  "respuesta": {
283
  "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
284
- "CPC": ("6", "Servicios de transporte de pasajeros"),
285
  "UNSPSC": ("78111800", "Servicios de transporte terrestre"),
286
  },
287
  "motivo": "Traslados terrestres a eventos/misiones",
288
  },
289
 
290
- # REGLA: Alojamiento / Hospedaje (hotel)
291
- # CUÁNDO: "hospedaje", "alojamiento", "hotel".
292
  {
293
- 'keywords': ['hospedaje', 'alojamiento', 'hotel'],
294
- 'respuesta': {
295
- 'CICP': ('2.3.2.02.02.010', 'Servicios administrativos de apoyo'),
296
- 'CPC': ('901', 'Gastos directos de la administración pública'),
297
- 'UNSPSC': ('N/A', 'N/A'),
298
- },
299
- 'motivo': 'Hospedaje asociado a comisiones y eventos',
 
300
  },
301
 
302
- # REGLA: Papelería y útiles (BIEN)
303
- # CUÁNDO: "papelería", "papel", "resma", "cuaderno".
304
  {
305
- "keywords": ["papeleria", "papel", "resma", "resmas", "cuaderno", "cuadernos"],
 
306
  "respuesta": {
307
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
308
- "CPC": ("3", "Suministros y papelería (bienes)"),
309
  "UNSPSC": ("14111500", "Papel de oficina"),
310
  },
311
  "motivo": "Papelería/consumibles generales",
312
  },
313
 
314
- # REGLA: Tóner y consumibles de impresión (BIEN)
315
- # CUÁNDO: "tóner", "cartucho(s)".
316
  {
317
- "keywords": ["toner", "cartucho", "cartuchos"],
 
318
  "respuesta": {
319
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
320
- "CPC": ("3", "Consumibles de impresión (bienes)"),
321
  "UNSPSC": ("44103100", "Consumibles para impresoras"),
322
  },
323
  "motivo": "Consumibles para impresión",
324
  },
325
 
326
- # REGLA: Impresoras / Multifuncionales (BIEN)
327
- # CUÁNDO: "impresora", "impresoras", "multifuncional".
328
  {
 
329
  "keywords": ["impresora", "impresoras", "multifuncional", "multifuncionales"],
330
  "respuesta": {
331
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
332
- "CPC": ("4", "Maquinaria y equipo (bienes)"),
333
  "UNSPSC": ("43212100", "Impresoras y periféricos de impresión"),
334
  },
335
  "motivo": "Adquisición de impresoras como bienes",
336
  },
337
 
338
- # REGLA: Periféricos de cómputo (BIEN)
339
- # CUÁNDO: "monitor", "teclado", "mouse", "periférico".
340
  {
341
- "keywords": ["monitor", "monitores", "teclado", "teclados", "mouse", "periferico", "perifericos"],
 
342
  "respuesta": {
343
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
344
- "CPC": ("4", "Equipo y periféricos de cómputo (bienes)"),
345
  "UNSPSC": ("43211600", "Accesorios/periféricos de computadora"),
346
  },
347
  "motivo": "Periféricos y accesorios de TI como bienes",
348
  },
349
 
350
- # REGLA: Equipo de laboratorio (BIEN)
351
- # CUÁNDO: "equipo de laboratorio", "microscopio", "balanza", "centrifuga", "espectrofotometro".
352
- # NOTA: No confundir con SERVICIOS de análisis (que ya tienes como espectrometría/ensayos).
353
  {
354
- "keywords": ["equipo de laboratorio", "microscopio", "balanza", "centrifuga", "centrifugo", "espectrofotometro", "espectrofotometros"],
 
355
  "respuesta": {
356
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
357
- "CPC": ("4", "Equipo científico/laboratorio (bienes)"),
358
  "UNSPSC": ("41110000", "Equipos científicos y de laboratorio"),
359
  },
360
  "motivo": "Adquisición de equipo científico como bien",
361
  },
362
 
363
- # REGLA: Mensajería y envíos (courier)
364
- # CUÁNDO: "envío", "mensajería", "paquetería", "courier".
365
  {
366
- "keywords": ["envio", "envios", "mensajeria", "paqueteria", "courier"],
 
367
  "respuesta": {
368
  "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
369
- "CPC": ("6", "Servicios de mensajería y correo"),
370
  "UNSPSC": ("80131500", "Servicios de mensajería/courier"),
371
  },
372
  "motivo": "Logística de envíos de documentos/paquetes",
373
  },
374
 
375
- # REGLA: Capacitación / Formación (servicio)
376
- # CUÁNDO: "capacitacion", "formacion", "curso", "seminario", "taller" (cuando no se menciona explícitamente "inscripción").
377
  {
378
- 'keywords': ['capacitacion', 'formacion', 'curso', 'cursos', 'seminario', 'seminarios', 'taller', 'talleres'],
379
- 'respuesta': {
380
- 'CICP': ('2.3.2.02.02.009', 'Servicios para la comunidad'),
381
- 'CPC': ('901', 'Gastos directos de la administración pública'),
382
- 'UNSPSC': ('N/A', 'N/A'),
 
 
 
383
  },
384
- 'motivo': 'Servicios de formación/capacitación distintos al ítem de inscripción',
385
- },
386
 
387
- # REGLA: Mobiliario de oficina (BIEN)
388
- # CUÁNDO: "silla", "mesa", "escritorio", "mobiliario".
389
  {
 
390
  "keywords": ["mobiliario", "mueble", "muebles", "silla", "sillas", "mesa", "mesas", "escritorio", "escritorios"],
391
  "respuesta": {
392
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
393
- "CPC": ("3", "Mobiliario de oficina (bienes)"),
394
  "UNSPSC": ("56100000", "Mobiliario de oficina"),
395
  },
396
  "motivo": "Compra de muebles y dotación",
397
  },
398
 
399
- # REGLA: Producción audiovisual / video (servicio)
400
- # CUÁNDO: "video", "producción audiovisual", "grabación".
401
  {
402
- "keywords": ["video", "produccion audiovisual", "grabacion", "edicion de video"],
 
403
  "respuesta": {
404
  "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
405
- "CPC": ("8", "Servicios creativos y de medios"),
406
  "UNSPSC": ("82111600", "Servicios de producción de video"),
407
  },
408
  "motivo": "Servicios de registro/edición/producción de contenidos",
409
  },
410
 
411
- # REGLA: Apoyos / Auxiliares / Monitores (servicio)
412
- # CUÁNDO: "apoyo", "auxiliar", "monitor", "estudiante" (cuando se refiera a apoyo operativo).
413
  {
 
414
  "keywords": ["apoyo", "auxiliar", "auxiliares", "monitor", "monitores", "estudiante", "estudiantes"],
415
  "respuesta": {
416
- "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
417
- "CPC": ("8", "Servicios de apoyo y personal"),
418
- "UNSPSC":("80111600", "Servicios de personal temporal"),
419
  },
420
  "motivo": "Apoyos operativos/auxiliares vinculados por servicios",
421
  },
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
422
  ]
423
 
 
424
  def aplicar_reglas(query: str):
425
  q = clean_text(query)
426
  for r in REGLAS:
 
69
  # Reglas
70
  # =========================
71
  REGLAS = [
72
+ # [1] REGLA: OPS (Orden de Prestación de Servicios)
 
 
 
73
  {
74
+ "id": 1,
75
+ "keywords": ["ops", "orden de prestacion de servicios", "contrato ops", "prestación de servicios", "prestacion", "prestación"],
76
  "respuesta": {
77
  "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
78
  "CPC": ("8", "Servicios prestados a las empresas y servicios de producción"),
 
81
  "motivo": "Coincidencia con palabra clave OPS",
82
  },
83
 
84
+ # [2] REGLA: Tiquetes aéreos (viajes)
 
 
 
85
  {
86
+ "id": 2,
87
+ "keywords": ["tiquete", "tiquetes", "pasajes", "aereos", "aereo", "aéreo", "aéreos"],
88
+ "respuesta": {
89
+ "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
90
+ "CPC": ("6", "Servicios de transporte de pasajeros"),
91
+ "UNSPSC": ("78111500", "Servicios de transporte aéreo"),
92
  },
93
+ "motivo": "Auto (tiquetes). 50 ejemplos en Excel",
94
  },
95
 
96
+ # [3] REGLA: Viáticos (alojamiento, alimentación, transporte local)
 
 
 
97
  {
98
+ "id": 3,
99
+ "keywords": ["viatico", "viaticos", "viático", "viáticos"],
100
+ "respuesta": {
101
+ "CICP": ("2.3.2.02.02.010", "Servicios administrativos de apoyo"),
102
+ "CPC": ("901", "Gastos directos de la administración pública"),
103
+ "UNSPSC": ("N/A", "N/A"),
104
+ },
105
+ "motivo": "Auto (viaticos). 37 ejemplos en Excel",
106
  },
107
 
108
+ # [4] REGLA: Inscripción a eventos/cursos
 
 
 
109
  {
110
+ "id": 4,
111
+ "keywords": ["inscripcion", "inscripciones", "registro", "inscripción", "inscricion", "inscrición"],
112
+ "respuesta": {
113
+ "CICP": ("2.3.2.02.02.009", "Servicios para la comunidad"),
114
+ "CPC": ("901", "Gastos directos de la administración pública"),
115
+ "UNSPSC": ("N/A", "N/A"),
116
+ },
117
+ "motivo": "Auto (inscripción). 39 ejemplos en Excel",
118
  },
119
 
120
+ # [5] REGLA: Participación/Asistencia/Ponencia en eventos
 
 
121
  {
122
+ "id": 5,
123
+ "keywords": ["participacion", "participación", "asistencia", "ponente", "conferencista"],
124
+ "respuesta": {
125
+ "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
126
+ "CPC": ("6", "Servicios de transporte de pasajeros"),
127
+ "UNSPSC": ("78111500", "Servicios de transporte aéreo"),
128
  },
129
+ "motivo": "Auto (participación). 35 ejemplos en Excel",
130
  },
131
 
132
+ # [6] REGLA: Impresión y material impreso (SERVICIO)
 
 
 
133
  {
134
+ "id": 6,
135
+ "keywords": ["impresion", "impresión", "imprimir", "impresiones", "material impreso", "afiches", "posters", "póster", "pósters", "folletos", "volantes", "brochure", "bróchure"],
136
+ "respuesta": {
137
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
138
+ "CPC": ("8", "Servicios prestados a las empresas y servicios de producción"),
139
+ "UNSPSC": ("82121500", "Servicios de impresión"),
140
  },
141
+ "motivo": "Auto (impresión). 16 ejemplos en Excel",
142
  },
143
 
144
+ # [7] REGLA: Publicación científica (APC/Open Access)
 
 
145
  {
146
+ "id": 7,
147
+ "keywords": ["publicacion", "publicación", "article processing charge", "apc", "cuota publicacion", "edicion articulo", "edición artículo", "open access"],
148
+ "respuesta": {
149
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
150
+ "CPC": ("8", "Servicios editoriales"),
151
+ "UNSPSC": ("82121800", "Servicios editoriales y de publicación"),
152
  },
153
+ "motivo": "Auto (publicación). 37 ejemplos en Excel",
154
  },
155
 
156
+ # [8] REGLA: Servicios técnicos / Ensayos / Caracterización (Laboratorio)
 
 
 
157
  {
158
+ "id": 8,
159
+ "keywords": ["servicios tecnicos", "servicios técnicos", "servicio tecnico", "análisis de laboratorio", "analisis de laboratorio", "caracterizacion", "caracterización", "ensayo", "ensáyo"],
160
+ "respuesta": {
161
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
162
+ "CPC": ("8", "Servicios técnicos y de apoyo"),
163
+ "UNSPSC": ("81101703", "Servicios de análisis y ensayo de laboratorio"),
164
  },
165
+ "motivo": "Auto (servicios técnicos). 7 ejemplos en Excel",
166
  },
167
 
168
+ # [9] REGLA: Mantenimiento / Calibración
 
 
169
  {
170
+ "id": 9,
171
+ "keywords": ["mantenimiento", "mantenimientos", "preventivo", "correctivo", "calibracion", "calibración", "calibraciones"],
172
+ "respuesta": {
173
+ "CICP": ("2.1.2.02.02.008", "Servicios de mantenimiento y reparación"),
174
+ "CPC": ("8", "Servicios de mantenimiento preventivo y correctivo"),
175
+ "UNSPSC": ("80111600", "Servicios de soporte técnico o mantenimiento"),
176
  },
177
+ "motivo": "Auto (mantenimiento). 2 ejemplos en Excel",
178
  },
179
 
180
+ # [10] REGLA: Software / Suscripciones (SERVICIO)
 
 
 
181
  {
182
+ "id": 10,
183
+ "keywords": ["software", "licenciamiento", "suscripcion", "suscripciones", "suscripción", "sistemas", "suite"],
184
+ "respuesta": {
185
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
186
+ "CPC": ("8", "Servicios de desarrollo y licencias de software"),
187
+ "UNSPSC": ("81112500", "Servicios de software o licencias informáticas"),
188
  },
189
+ "motivo": "Auto (software). 17 ejemplos en Excel",
190
  },
191
 
192
+ # [11] REGLA: Licencia (genérico) (SERVICIO)
 
 
193
  {
194
+ "id": 11,
195
+ "keywords": ["licencia", "licencias", "licenciamiento"],
196
+ "respuesta": {
197
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
198
+ "CPC": ("8", "Servicios de licenciamiento"),
199
+ "UNSPSC": ("80111600", "Servicios de personal temporal"),
200
  },
201
+ "motivo": "Auto (licencia). 4 ejemplos en Excel",
202
  },
203
 
204
+ # [12] REGLA: Reactivos / Insumos de laboratorio (BIEN)
 
 
 
205
  {
206
+ "id": 12,
207
+ "keywords": ["reactivos", "insumos de laboratorio", "quimicos", "químicos", "quimicas", "químicas", "repuestos laboratorio"],
208
+ "respuesta": {
209
+ "CICP": ("2.3.2.02.01.003", "Productos químicos y reactivos"),
210
+ "CPC": ("3", "Productos químicos y reactivos de laboratorio"),
211
+ "UNSPSC": ("41000000", "Equipos y suministros de laboratorio"),
212
  },
213
+ "motivo": "Auto (reactivos). 14 ejemplos en Excel",
214
  },
215
 
216
+ # [13] REGLA: Espectrometría / HPLC / RMN (SERVICIO)
 
 
 
217
  {
218
+ "id": 13,
219
+ "keywords": ["espectrometria", "espectrometría", "hplc", "q tof", "qtof", "lc ms", "gc ms", "nmr", "rmn", "tiempo de vuelo", "masas"],
220
+ "respuesta": {
221
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
222
+ "CPC": ("8", "Servicios técnicos o de laboratorio"),
223
+ "UNSPSC": ("81101703", "Servicios de análisis espectrométrico o químico"),
224
  },
225
+ "motivo": "Auto (espectrometría). 6 ejemplos en Excel",
226
  },
227
+
228
+ # [14] REGLA: Equipo de cómputo (BIEN)
 
 
229
  {
230
+ "id": 14,
231
+ "keywords": ["equipo de computo", "equipos de computo", "computo", "computador", "computadora", "pc", "desktop", "torre", "cpu", "hardware", "all in one", "aio", "portatil", "portátil", "laptop", "notebook", "ultrabook", "adquisic", "compra"],
232
+ "respuesta": {
233
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables (excepto productos metálicos, maquinaria y equipo)"),
234
+ "CPC": ("3", "Equipo de cómputo y partes (bienes)"),
235
+ "UNSPSC": ("43211500", "Computadoras personales"),
236
+ },
237
+ "motivo": "Auto (equipo de cómputo). ~54 ejemplos en Excel; excluye impresoras y periféricos",
 
 
 
238
  },
239
+
240
+ # [15] REGLA: Honorarios / Servicios profesionales (sin OPS) (SERVICIO)
241
  {
242
+ "id": 15,
243
+ "keywords": ["honorarios", "contratar profesional", "profesional independiente", "asesoria", "asesoría", "consultoria", "consultoría", "servicios profesionales"],
244
  "respuesta": {
245
+ "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
246
+ "CPC": ("8", "Servicios técnicos y profesionales"),
247
+ "UNSPSC": ("80111600", "Servicios de personal temporal"),
248
  },
249
  "motivo": "Honorarios/servicios profesionales sin mención explícita de OPS",
250
  },
251
 
252
+ # [16] REGLA: Transporte TERRESTRE de pasajeros (SERVICIO)
 
253
  {
254
+ "id": 16,
255
+ "keywords": ["transporte terrestre", "terrestre", "bus", "autobus", "autobús"],
256
  "respuesta": {
257
  "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
258
+ "CPC": ("6", "Servicios de transporte de pasajeros"),
259
  "UNSPSC": ("78111800", "Servicios de transporte terrestre"),
260
  },
261
  "motivo": "Traslados terrestres a eventos/misiones",
262
  },
263
 
264
+ # [17] REGLA: Alojamiento / Hospedaje (CPC 901 -> UNSPSC N/A)
 
265
  {
266
+ "id": 17,
267
+ "keywords": ["hospedaje", "alojamiento", "hotel"],
268
+ "respuesta": {
269
+ "CICP": ("2.3.2.02.02.010", "Servicios administrativos de apoyo"),
270
+ "CPC": ("901", "Gastos directos de la administración pública"),
271
+ "UNSPSC": ("N/A", "N/A"),
272
+ },
273
+ "motivo": "Hospedaje asociado a comisiones y eventos",
274
  },
275
 
276
+ # [18] REGLA: Papelería y útiles (BIEN)
 
277
  {
278
+ "id": 18,
279
+ "keywords": ["papeleria", "papelería", "papel", "resma", "resmas", "cuaderno", "cuadernos"],
280
  "respuesta": {
281
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
282
+ "CPC": ("3", "Suministros y papelería (bienes)"),
283
  "UNSPSC": ("14111500", "Papel de oficina"),
284
  },
285
  "motivo": "Papelería/consumibles generales",
286
  },
287
 
288
+ # [19] REGLA: Tóner y consumibles de impresión (BIEN)
 
289
  {
290
+ "id": 19,
291
+ "keywords": ["toner", "tóner", "cartucho", "cartuchos"],
292
  "respuesta": {
293
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
294
+ "CPC": ("3", "Consumibles de impresión (bienes)"),
295
  "UNSPSC": ("44103100", "Consumibles para impresoras"),
296
  },
297
  "motivo": "Consumibles para impresión",
298
  },
299
 
300
+ # [20] REGLA: Impresoras / Multifuncionales (BIEN)
 
301
  {
302
+ "id": 20,
303
  "keywords": ["impresora", "impresoras", "multifuncional", "multifuncionales"],
304
  "respuesta": {
305
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
306
+ "CPC": ("4", "Maquinaria y equipo (bienes)"),
307
  "UNSPSC": ("43212100", "Impresoras y periféricos de impresión"),
308
  },
309
  "motivo": "Adquisición de impresoras como bienes",
310
  },
311
 
312
+ # [21] REGLA: Periféricos de cómputo (BIEN)
 
313
  {
314
+ "id": 21,
315
+ "keywords": ["monitor", "monitores", "teclado", "teclados", "mouse", "periferico", "periférico", "perifericos", "periféricos"],
316
  "respuesta": {
317
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
318
+ "CPC": ("4", "Equipo y periféricos de cómputo (bienes)"),
319
  "UNSPSC": ("43211600", "Accesorios/periféricos de computadora"),
320
  },
321
  "motivo": "Periféricos y accesorios de TI como bienes",
322
  },
323
 
324
+ # [22] REGLA: Equipo de laboratorio (BIEN)
 
 
325
  {
326
+ "id": 22,
327
+ "keywords": ["equipo de laboratorio", "equipos de laboratorio", "microscopio", "balanza", "centrifuga", "centrífuga", "centrifugo", "espectrofotometro", "espectrofotómetro", "espectrofotometros", "espectrofotómetros"],
328
  "respuesta": {
329
  "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
330
+ "CPC": ("4", "Equipo científico/laboratorio (bienes)"),
331
  "UNSPSC": ("41110000", "Equipos científicos y de laboratorio"),
332
  },
333
  "motivo": "Adquisición de equipo científico como bien",
334
  },
335
 
336
+ # [23] REGLA: Mensajería y envíos (courier) (SERVICIO)
 
337
  {
338
+ "id": 23,
339
+ "keywords": ["envio", "envíos", "envio", "mensajeria", "mensajería", "paqueteria", "paquetería", "courier"],
340
  "respuesta": {
341
  "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
342
+ "CPC": ("6", "Servicios de mensajería y correo"),
343
  "UNSPSC": ("80131500", "Servicios de mensajería/courier"),
344
  },
345
  "motivo": "Logística de envíos de documentos/paquetes",
346
  },
347
 
348
+ # [24] REGLA: Capacitación / Formación (CPC 901 -> UNSPSC N/A)
 
349
  {
350
+ "id": 24,
351
+ "keywords": ["capacitacion", "capacitación", "formacion", "formación", "curso", "cursos", "seminario", "seminarios", "taller", "talleres"],
352
+ "respuesta": {
353
+ "CICP": ("2.3.2.02.02.009", "Servicios para la comunidad"),
354
+ "CPC": ("901", "Gastos directos de la administración pública"),
355
+ "UNSPSC": ("N/A", "N/A"),
356
+ },
357
+ "motivo": "Servicios de formación/capacitación distintos al ítem de inscripción",
358
  },
 
 
359
 
360
+ # [25] REGLA: Mobiliario de oficina (BIEN)
 
361
  {
362
+ "id": 25,
363
  "keywords": ["mobiliario", "mueble", "muebles", "silla", "sillas", "mesa", "mesas", "escritorio", "escritorios"],
364
  "respuesta": {
365
  "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
366
+ "CPC": ("3", "Mobiliario de oficina (bienes)"),
367
  "UNSPSC": ("56100000", "Mobiliario de oficina"),
368
  },
369
  "motivo": "Compra de muebles y dotación",
370
  },
371
 
372
+ # [26] REGLA: Producción audiovisual / video (SERVICIO)
 
373
  {
374
+ "id": 26,
375
+ "keywords": ["video", "vídeo", "produccion audiovisual", "producción audiovisual", "grabacion", "grabación", "edicion de video", "edición de video"],
376
  "respuesta": {
377
  "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
378
+ "CPC": ("8", "Servicios creativos y de medios"),
379
  "UNSPSC": ("82111600", "Servicios de producción de video"),
380
  },
381
  "motivo": "Servicios de registro/edición/producción de contenidos",
382
  },
383
 
384
+ # [27] REGLA: Apoyos / Auxiliares / Monitores (SERVICIO)
 
385
  {
386
+ "id": 27,
387
  "keywords": ["apoyo", "auxiliar", "auxiliares", "monitor", "monitores", "estudiante", "estudiantes"],
388
  "respuesta": {
389
+ "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
390
+ "CPC": ("8", "Servicios de apoyo y personal"),
391
+ "UNSPSC": ("80111600", "Servicios de personal temporal"),
392
  },
393
  "motivo": "Apoyos operativos/auxiliares vinculados por servicios",
394
  },
395
+
396
+ # [28] REGLA: GPS portátil / navegadores GPS (BIEN)
397
+ {
398
+ "id": 28,
399
+ "keywords": ["gps", "gps portatil", "gps portátil", "navegador gps"],
400
+ "respuesta": {
401
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
402
+ "CPC": ("4", "Maquinaria y equipo (bienes)"),
403
+ "UNSPSC": ("52161500", "Sistemas de posicionamiento global (GPS)"),
404
+ },
405
+ "motivo": "Adquisición de GPS portátiles para trabajo de campo",
406
+ },
407
+
408
+ # [29] REGLA: Cámara fotográfica/digital (BIEN)
409
+ {
410
+ "id": 29,
411
+ "keywords": ["camara", "cámara", "camara digital", "cámara digital", "camara fotografica", "cámara fotográfica"],
412
+ "respuesta": {
413
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
414
+ "CPC": ("4", "Maquinaria y equipo (bienes)"),
415
+ "UNSPSC": ("45121504", "Cámaras digitales"),
416
+ },
417
+ "motivo": "Compra de cámaras para registro/producción",
418
+ },
419
+
420
+ # [30] REGLA: Sensores y módulos/placas electrónicas (BIEN)
421
+ {
422
+ "id": 30,
423
+ "keywords": ["sensor", "sensores", "modulo", "módulo", "modulos", "módulos", "arduino", "raspberry", "raspberry pi", "componentes electronicos", "componentes electrónicos", "accesorios electronicos", "accesorios electrónicos"],
424
+ "respuesta": {
425
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
426
+ "CPC": ("4", "Maquinaria y equipo (bienes)"),
427
+ "UNSPSC": ("32101700", "Módulos y conjuntos electrónicos"),
428
+ },
429
+ "motivo": "Adquisición de sensores/módulos electrónicos para prototipos e I+D",
430
+ },
431
+
432
+ # [31] REGLA: Herramientas y equipos menores de medición (BIEN)
433
+ {
434
+ "id": 31,
435
+ "keywords": ["herramienta", "herramientas", "multimetro", "multímetro", "osciloscopio", "tester"],
436
+ "respuesta": {
437
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
438
+ "CPC": ("3", "Suministros y herramientas (bienes)"),
439
+ "UNSPSC": ("27110000", "Herramientas manuales"),
440
+ },
441
+ "motivo": "Dotación de herramientas y equipos menores para laboratorios y campo",
442
+ },
443
+
444
+ # [32] REGLA: Proceso editorial/libros (SERVICIO editorial)
445
+ {
446
+ "id": 32,
447
+ "keywords": ["proceso editorial", "publicacion de libro", "publicación de libro", "edicion de libro", "edición de libro", "libros resultado de investigacion", "libros resultado de investigación"],
448
+ "respuesta": {
449
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
450
+ "CPC": ("8", "Servicios editoriales"),
451
+ "UNSPSC": ("82121800", "Servicios editoriales y de publicación"),
452
+ },
453
+ "motivo": "Gastos de gestión editorial distintos de la impresión física",
454
+ },
455
+
456
+ # [33] REGLA: Suministros / Materiales e insumos (genérico BIEN)
457
+ {
458
+ "id": 33,
459
+ "keywords": ["suministros", "materiales", "insumos", "dotacion", "dotación"],
460
+ "respuesta": {
461
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
462
+ "CPC": ("3", "Suministros y materiales (bienes)"),
463
+ "UNSPSC": ("11111500", "Suministros y materiales varios"),
464
+ },
465
+ "motivo": "Cobertura genérica para 'materiales/insumos/suministros'",
466
+ },
467
+
468
+ # [34] REGLA: Unidades de disco / almacenamiento (BIEN)
469
+ {
470
+ "id": 34,
471
+ "keywords": ["disco duro", "unidad de estado solido", "unidad estado solido", "ssd", "hdd", "discos duros", "unidades de disco"],
472
+ "respuesta": {
473
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
474
+ "CPC": ("3", "Equipo de cómputo y partes (bienes)"),
475
+ "UNSPSC": ("43201800", "Unidades y almacenamiento de datos"),
476
+ },
477
+ "motivo": "Adquisición de HDD/SSD/almacenamiento",
478
+ },
479
+
480
+ # [35] REGLA: UPS / Reguladores de voltaje (BIEN)
481
+ {
482
+ "id": 35,
483
+ "keywords": ["ups", "no break", "nobreak", "regulador de voltaje", "reguladores de voltaje"],
484
+ "respuesta": {
485
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
486
+ "CPC": ("4", "Maquinaria y equipo (bienes)"),
487
+ "UNSPSC": ("39121000", "Acondicionadores de energía y UPS"),
488
+ },
489
+ "motivo": "Protección eléctrica para equipos/laboratorio",
490
+ },
491
+
492
+ # [36] REGLA: Cables eléctricos (BIEN)
493
+ {
494
+ "id": 36,
495
+ "keywords": ["cable electrico", "cable eléctrico", "cobre calibre", "cable de cobre", "conductor electrico", "conductor eléctrico"],
496
+ "respuesta": {
497
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
498
+ "CPC": ("3", "Suministros eléctricos (bienes)"),
499
+ "UNSPSC": ("26121600", "Cables eléctricos"),
500
+ },
501
+ "motivo": "Compra de cableado/conductores eléctricos",
502
+ },
503
+
504
+ # [37] REGLA: Instrumentos de medición portátiles (pH-metro, etc.) (BIEN)
505
+ {
506
+ "id": 37,
507
+ "keywords": ["medidor de ph", "phmetro", "ph-metro", "potenciómetro", "medidor portatil", "medidor portátil"],
508
+ "respuesta": {
509
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
510
+ "CPC": ("4", "Equipo científico/laboratorio (bienes)"),
511
+ "UNSPSC": ("41115600", "Instrumentos de medición y análisis"),
512
+ },
513
+ "motivo": "Instrumentos portátiles de laboratorio (pH, etc.)",
514
+ },
515
+
516
+ # [38] REGLA: Estación meteorológica / agroclimática (BIEN)
517
+ {
518
+ "id": 38,
519
+ "keywords": ["estacion meteorologica", "estación meteorológica", "estacion agroclimatica", "estación agroclimática", "datalogger meteorologico"],
520
+ "respuesta": {
521
+ "CICP": ("2.3.2.02.01.004", "Productos metálicos, maquinaria y equipo"),
522
+ "CPC": ("4", "Equipo científico/laboratorio (bienes)"),
523
+ "UNSPSC": ("41111931", "Estaciones meteorológicas"),
524
+ },
525
+ "motivo": "Monitoreo ambiental/agroclimático",
526
+ },
527
+
528
+ # [39] REGLA: Maletín/estuche protector para equipos (BIEN)
529
+ {
530
+ "id": 39,
531
+ "keywords": ["maletin", "maletín", "estuche protector", "case rigido", "maletin rigido", "estuche rigido"],
532
+ "respuesta": {
533
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
534
+ "CPC": ("3", "Accesorios y estuches (bienes)"),
535
+ "UNSPSC": ("24112400", "Estuches/maletines protectores"),
536
+ },
537
+ "motivo": "Transporte/almacenamiento seguro de equipos",
538
+ },
539
+
540
+ # [40] REGLA: Camisas/camisetas corporativas (BIEN)
541
+ {
542
+ "id": 40,
543
+ "keywords": ["camisas corporativas", "camisetas corporativas", "uniformes", "camisas bordadas", "camisetas bordadas"],
544
+ "respuesta": {
545
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
546
+ "CPC": ("3", "Textiles y prendas (bienes)"),
547
+ "UNSPSC": ("53100000", "Ropa"),
548
+ },
549
+ "motivo": "Dotación/identidad visual para eventos",
550
+ },
551
+
552
+ # [41] REGLA: Material bibliográfico / Libros impresos (BIEN)
553
+ {
554
+ "id": 41,
555
+ "keywords": ["material bibliografico", "material bibliográfico", "libros", "libro impreso", "material bibliografico impresos"],
556
+ "respuesta": {
557
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
558
+ "CPC": ("3", "Material bibliográfico (bienes)"),
559
+ "UNSPSC": ("55101504", "Libros"),
560
+ },
561
+ "motivo": "Compra de libros/material bibliográfico impreso",
562
+ },
563
+
564
+ # [42] REGLA: Transporte local / genérico (TERRESTRE) (SERVICIO)
565
+ {
566
+ "id": 42,
567
+ "keywords": ["transporte", "desplazamientos", "movilizacion", "movilización", "taxis", "taxi", "transportes"],
568
+ "respuesta": {
569
+ "CICP": ("2.3.2.02.02.006", "Servicios prestados a las empresas y servicios de producción"),
570
+ "CPC": ("6", "Servicios de transporte de pasajeros"),
571
+ "UNSPSC": ("78111800", "Servicios de transporte terrestre"),
572
+ },
573
+ "motivo": "Traslados locales (taxi/transporte terrestre genérico)",
574
+ },
575
+
576
+ # [43] REGLA: Servicios profesionales (alias amplio, sin OPS)
577
+ {
578
+ "id": 43,
579
+ "keywords": ["servicios profesionales", "contratacion de personal", "contratación de personal", "personal capacitado", "apoyo profesional", "apoyar la redaccion", "apoyar la redacción", "supervision", "supervisión", "profesional investigador", "prestación"],
580
+ "respuesta": {
581
+ "CICP": ("2.1.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
582
+ "CPC": ("8", "Servicios técnicos y profesionales"),
583
+ "UNSPSC": ("80111600", "Servicios de personal temporal"),
584
+ },
585
+ "motivo": "Cobertura de textos de contratación de profesionales sin mención 'OPS'",
586
+ },
587
+
588
+ # [44] REGLA: Análisis de datos / Ciencia de datos / ML (SERVICIO)
589
+ {
590
+ "id": 44,
591
+ "keywords": ["analisis de datos", "análisis de datos", "mineria de datos", "minería de datos", "machine learning", "aprendizaje automatico", "aprendizaje automático"],
592
+ "respuesta": {
593
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
594
+ "CPC": ("8", "Servicios técnicos y de apoyo"),
595
+ "UNSPSC": ("81161500", "Servicios de análisis y procesamiento de datos"),
596
+ },
597
+ "motivo": "Servicios especializados de analítica/ML",
598
+ },
599
+
600
+ # [45] REGLA: Alimento para animales / Pollos (BIEN)
601
+ # CUÁNDO: "alimento para pollos", "concentrado", "alimento para animales", "balanceado", "gallinas ponedoras", "engorde"
602
+ {
603
+ "id": 45,
604
+ "keywords": ["alimento para pollos", "alimento para animales", "concentrado", "concentrado para pollos", "balanceado", "concentrado avicola", "concentrado avícola", "gallinas ponedoras", "pollo engorde", "alimento avicola", "alimento avícola"],
605
+ "respuesta": {
606
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
607
+ "CPC": ("3", "Suministros y materiales (bienes)"),
608
+ "UNSPSC": ("10191500", "Alimentos para animales"),
609
+ },
610
+ "motivo": "Compra de alimento/concentrado para pollos u otros animales",
611
+ },
612
+
613
+ # [46] REGLA: Combustible y lubricantes (BIEN)
614
+ # CUÁNDO: gasolina, diésel/ACPM, combustible, lubricantes
615
+ {
616
+ "id": 46,
617
+ "keywords": ["combustible", "gasolina", "diesel", "diésel", "acpm", "lubricante", "lubricantes"],
618
+ "respuesta": {
619
+ "CICP": ("2.3.2.02.01.003", "Otros bienes transportables"),
620
+ "CPC": ("3", "Suministros (bienes)"),
621
+ "UNSPSC": ("15101500", "Combustibles"),
622
+ },
623
+ "motivo": "Abastecimiento de combustible y lubricantes para misiones/equipos",
624
+ },
625
+
626
+ # [47] REGLA: Refrigerios / Catering para eventos (SERVICIO)
627
+ # CUÁNDO: refrigerios, alimentación de evento, coffee break, catering
628
+ {
629
+ "id": 47,
630
+ "keywords": ["refrigerios", "refrigerio", "coffee break", "catering", "alimentacion evento", "alimentación evento", "servicio de alimentación"],
631
+ "respuesta": {
632
+ "CICP": ("2.3.2.02.02.008", "Servicios prestados a las empresas y servicios de producción"),
633
+ "CPC": ("8", "Servicios de alimentos para eventos"),
634
+ "UNSPSC": ("90101600", "Servicios de catering"),
635
+ },
636
+ "motivo": "Atención alimentaria en eventos/capacitaciones",
637
+ },
638
  ]
639
 
640
+
641
  def aplicar_reglas(query: str):
642
  q = clean_text(query)
643
  for r in REGLAS: