En numerosas aplicaciones profesionales 4D, los documentos lo son todo: notas técnicas, informes, manuales, guías internas. Pero cuando los usuarios no pueden recordar el texto exacto, encontrar el correcto se vuelve lento, frustrante, o peor imposible.
Con 4D 20 R10, la búsqueda semántica alimentada por vectores de IA cambia esta situación. En lugar de coincidir con palabras claves, coincide con el significado. Los usuarios obtienen el documento correcto, incluso si buscan con palabras diferentes o en un idioma diferente. Es una forma más inteligente de hacer aflorar el conocimiento oculto en los documentos: rápida, precisa y adaptada a las búsquedas reales de los usuarios.
Veamos un ejemplo concreto: un usuario quiere localizar una nota técnica que explica cómo insertar una imagen en un documento 4D Write Pro. Sin embargo, es posible que no recuerde la frase exacta utilizada en el documento.
Cómo buscar en documentos 4D Write Pro
Buscar en documentos almacenados en una base de datos no es un concepto nuevo. Tradicionalmente, los desarrolladores 4D han confiado en la búsqueda por palabras claves para implementar esta funcionalidad. Hoy en día, sin embargo, la inteligencia artificial abre la puerta a un enfoque mucho más flexible y poderoso: la búsqueda semántica utilizando vectores.
Demos un vistazo más de cerca a ambas técnicas y veamos cómo los vectores revolucionan nuestra forma de buscar.
Métodos de búsqueda tradicionales con palabras claveS
Este método consiste en extraer las palabras claves de un documento y almacenarlas en un campo de texto. A continuación, se realiza una consulta de búsqueda comparando las palabras claves específicas introducidas por el usuario.
Este método es rápido y eficaz cuando la consulta coincide exactamente con el texto del documento. Si el texto cambia mínimamente, la búsqueda falla. Por ejemplo, una búsqueda de «insertar imagen» no encontraría documentos que contuvieran «añadir imagen».
Búsqueda semántica con vectores IA
A partir de 4D 20 R10, está disponible una nueva y poderosa funcionalidad: Soporte de vectores IA. Esto permite la búsqueda semántica, impulsada por la inteligencia artificial.
A diferencia de la búsqueda por palabras clave, la búsqueda semántica se centra en el significado, no en las palabras exactas. Permite a los usuarios encontrar documentos que expresan la misma idea de diferentes maneras. Por ejemplo, frases como «insertar imagen» o «añadir imagen» transmiten la misma idea.
Los usuarios pueden incluso introducir consultas en un idioma distinto del contenido del documento. El significado se conserva y se ajusta, algo que la indexación por palabras clave no puede hacer.
Cómo funciona
- Cada documento se analiza y se convierte en un vector utilizando el componente 4D AIKit. Este vector representa el significado semántico del texto.
- La consulta del usuario también se convierte en un vector.
- Se calcula la similitud entre el vector de la consulta y los vectores de los documentos.
- Se devuelven los documentos ordenados de mayor a menor relevancia.
Ejemplo de aplicación
Se ha creado una base de datos de demostración para mostrar esta funcionalidad. Contiene varios documentos 4D Write Pro que representan notas técnicas.
Paso 1 – Generar vectores para cada documento
La generación de vectores puede activarse cuando un documento se guarda en la base de datos. En nuestro ejemplo, se creó un método para generar todos los vectores a la vez:
var $document : cs.NoteEntity
var $documents :=ds.Note.all()
For each ($document; $documents)
$txt :=WP Get text($document.Document)
$document .Vector:=cs.AIManagement.new($apiKey).generateVector($txt)
$document .save()
End for each
Paso 2 – Generar el vector a partir de la consulta del usuario
Cuando el usuario hace clic en un botón de búsqueda, creamos un vector a partir de la consulta del usuario
var $vector:=cs.AIManagement.new($apiKey).generateVector($prompt)
Paso 3 – Comparar vectores y ordenar por similitud
Por último, devolvemos una lista de documentos ordenados por relevancia semántica con respecto a la consulta del usuario.
var $formula:=Formula(This.Vector.cosineSimilarity($vector)
$documents:=ds.Note.all().orderByFormula($formula); dk descending)
En este ejemplo, devolvemos todos los documentos ordenados de mayor a menor relevancia. También puede limitar los resultados presentados al usuario, por ejemplo, a los cinco primeros.
Acción en directo
Conclusión
La búsqueda semántica con vectores de IA marca una importante evolución en la forma en que los usuarios interactúan con los datos basados en documentos en 4D. Ofrece más flexibilidad, mayor precisión y una experiencia de usuario más intuitiva, sin depender de una estricta concordancia de palabras clave.
Ya sea para notas internas, documentación o bases de conocimiento, la búsqueda vectorial desbloquea un nuevo nivel de inteligencia en sus aplicaciones 4D.
Una próxima versión 4D (no muy lejana) introducirá un tipo de índice vectorial especial para el análisis rápido de grandes conjuntos de datos.
¿Y a usted? ¿Le ha aportado este blog ideas para sus propios proyectos? ¿Qué tipos de documentos podrían beneficiarse de la búsqueda semántica en sus aplicaciones?
