Búsqueda de contenido no literal en un texto

Kaledros

Buenas. No es algo que vaya a hacer yo, pero me han pedido consejo y estoy más perdido que un pulpo en un garaje.

Imaginad que en una empresa determinada existen manuales que, entre otras cosas, te explican como manejar incidencias: códigos de error, qué hacer cuando pasa qué, etc. Pero la única forma de econtrar esa información ahora mismo es abrir el PDF concreto, hacer ctrl+f y buscar el texto en cuestión (si te acuerdas) o mirar el índice si sabes en qué sección está. Y me preguntan si habría alguna manera de agilizar esa búsqueda automatizándola, idealmente con un bot en un chat (se ha mencionado Teams, que es lo que se usa) que encontrara la información con queries simples. La idea es hacerle la query al bot y que escupa la respuesta.

El tema es que esas keywords se considerarían metadatos/keywords, no se podría hacer una búsqueda literal por texto. Por ejemplo, imaginad que quiero hacer lo mismo en El señor de los Anillos y la query es "Aragorn Gandalf Moria conversación", quiero que me devuelva la frase del libro en que Aragorn le dice a Gandalf que si entra en Moria no volverá a salir. Esa query no se puede buscar de forma literal en el libro, se necesita algo más. Puedo ir al capítulo y buscarlo, pero lo que quiero es meter la query y que me devuelva la frase literal del libro.

Pues no sé lo que es ese "algo más" que necesito y acudo a vosotros para que me iluminéis. He visto que hay un tipo de búsqueda en ElasticSearch que puede solucionarme la papeleta, pero nunca me he metido tan dentro del producto como para saber si es lo que me conviene.

squ4r3

Depende de cuánto quieras embrollarte a nivel técnico, yo miraría como alternativa a elasticsearch algo utilizando GPT, hay muchas empresas que están trabajando precisamente en eso, búsquedas contextuales basadas en knowledgebases de empresas.

La idea es que usas la pregunta que tú le haces a chatgpt para hacer una búsqueda preliminar en tu knowledgebase, y luego parte de esos documentos los usas como input para tu query en chatgpt y así estar por debajo del límite de tokens en el modelo default, sin tener que finetunearlo o reentrenarlo

Algo así: https://medium.com/singapore-gds/integrating-chatgpt-with-internal-knowledge-base-and-question-answer-platform-36a3283d6334

Si sabes el PDF en concreto del que quieres sacar la info, creo que hay plugins de ChatGPT a los que les puedes dar el PDF directamente y te hacen la búsqueda contextual.

desu

https://github.com/hwchase17/langchain

Wei-Yu

Si necesitas esos tags sobre el texto tíraselo a elastic search, porque para mí en el curro fue lo determinante entre cambiar el data store o dejarlo como estaba.

Échale un vistazo más a fondo a los inverted indexes con n-grams por si acaso, no vaya a ser que en postgres u otro sistema que puedas usar tengas la posibilidad de buscar en los tags fácil tb.

Usuarios habituales

  • Wei-Yu
  • desu
  • squ4r3
  • Kaledros