Creación de un sistema inteligente de preguntas y respuestas con NLP y Milvus
Proyecto Milvus:github.com/milvus-io/milvus
El sistema de respuesta a preguntas se utiliza comúnmente en el campo del procesamiento del lenguaje natural. Se usa para responder preguntas en forma de lenguaje natural y tiene una amplia gama de aplicaciones. Las aplicaciones típicas incluyen: interacción de voz inteligente, atención al cliente en línea, adquisición de conocimiento, chat emocional personalizado y más. La mayoría de los sistemas de respuesta a preguntas pueden clasificarse como: sistemas de respuesta a preguntas generativos y de recuperación, sistemas de respuesta a preguntas de una sola ronda y de múltiples rondas, sistemas de respuesta a preguntas abiertos y sistemas de respuesta a preguntas específicos.
Este artículo trata principalmente sobre un sistema de QA diseñado para un campo específico, que normalmente se denomina robot inteligente de atención al cliente. En el pasado, construir un robot de atención al cliente generalmente requería convertir el conocimiento del dominio en una serie de reglas y grafos de conocimiento. El proceso de construcción depende en gran medida de la inteligencia “humana”. Una vez que los escenarios cambiaban, se requería mucho trabajo repetitivo. Con la aplicación del aprendizaje profundo en el procesamiento del lenguaje natural (NLP), la lectura automática puede encontrar automáticamente respuestas a preguntas coincidentes directamente desde documentos. El modelo de lenguaje de aprendizaje profundo convierte las preguntas y los documentos en vectores semánticos para encontrar la respuesta coincidente.
Este artículo utiliza el modelo BERT de código abierto de Google y Milvus, un motor de búsqueda vectorial de código abierto, para construir rápidamente un bot de Q&A basado en la comprensión semántica.
Arquitectura general
Este artículo implementa un sistema de respuesta a preguntas mediante la coincidencia de similitud semántica. El proceso general de construcción es el siguiente:
- Obtener un gran número de preguntas con respuestas en un campo específico ( un conjunto estándar de preguntas).
- Usar el modelo BERT para convertir estas preguntas en vectores de características y almacenarlos en Milvus. Y Milvus asignará un ID de vector a cada vector de características al mismo tiempo.
- Almacenar estos IDs de preguntas representativas y sus respuestas correspondientes en PostgreSQL.
Cuando un usuario hace una pregunta:
- El modelo BERT la convierte en un vector de características.
- Milvus realiza una búsqueda de similitud y recupera el ID más similar a la pregunta.
- PostgreSQL devuelve la respuesta correspondiente.
El diagrama de arquitectura del sistema es el siguiente (las líneas azules representan el proceso de importación y las líneas amarillas representan el proceso de consulta):
Figura 1.
A continuación, le mostraremos cómo construir un sistema de Q&A en línea paso a paso.
Pasos para construir el sistema de Q&A
Antes de comenzar, necesita instalar Milvus y PostgreSQL. Para conocer los pasos específicos de instalación, consulte el sitio web oficial de Milvus.
1. Preparación de datos
Los datos experimentales de este artículo provienen de: https://github.com/chatopera/insuranceqa-corpus-zh
El conjunto de datos contiene pares de preguntas y respuestas relacionados con la industria de los seguros. En este artículo extraemos 20,000 pares de preguntas y respuestas de él. Mediante este conjunto de datos de preguntas y respuestas, puede construir rápidamente un robot de atención al cliente para la industria de los seguros.
2. Generar vectores de características
Este sistema utiliza un modelo que BERT ha preentrenado. Descárguelo desde el siguiente enlace antes de iniciar un servicio: https://storage.googleapis.com/bert_models/2018_10_18/cased_L-24_H-1024_A-16.zip
Use este modelo para convertir la base de datos de preguntas en vectores de características para futuras búsquedas de similitud. Para obtener más información sobre el servicio BERT, consulte https://github.com/hanxiao/bert-as-service.
Figura 2.
3. Importar a Milvus y PostgreSQL
Normalice e importe los vectores de características generados a Milvus, y luego importe los IDs devueltos por Milvus y las respuestas correspondientes a PostgreSQL. A continuación se muestra la estructura de la tabla en PostgreSQL:
Figura 3.
Figura 4.
4. Recuperar respuestas
El usuario introduce una pregunta y, después de generar el vector de características mediante BERT, puede encontrar la pregunta más similar en la biblioteca de Milvus. Este artículo utiliza la distancia coseno para representar la similitud entre dos oraciones. Como todos los vectores están normalizados, cuanto más cerca esté de 1 la distancia coseno de los dos vectores de características, mayor será la similitud.
En la práctica, es posible que tu sistema no tenga preguntas que coincidan perfectamente en la biblioteca. Entonces, puedes establecer un umbral de 0,9. Si la mayor distancia de similitud recuperada es menor que este umbral, el sistema indicará que no incluye preguntas relacionadas.
Figura 5.
Demostración del sistema
A continuación se muestra una interfaz de ejemplo del sistema:
Figura 6.
Introduce tu pregunta en el cuadro de diálogo y recibirás una respuesta correspondiente:
Figura 7.
Resumen
Después de leer este artículo, esperamos que te resulte fácil crear tu propio sistema de preguntas y respuestas.
Con el modelo BERT, ya no necesitas clasificar y organizar los corpus de texto de antemano. Al mismo tiempo, gracias al alto rendimiento y la alta escalabilidad del motor de búsqueda vectorial de código abierto Milvus, tu sistema de preguntas y respuestas puede admitir un corpus de hasta cientos de millones de textos.
Milvus se ha unido oficialmente a la Fundación Linux AI (LF AI) para su incubación. ¡Te invitamos a unirte a la comunidad de Milvus y trabajar con nosotros para acelerar la aplicación de las tecnologías de IA!
=> Prueba nuestra demo en línea aquí: https://www.milvus.io/scenarios
Sigue leyendo

A Few Notes from Databricks Data + AI Summit 2026: Why the Data Layer Matters Again
James Luan shares notes from Databricks Data + AI Summit 2026 on why production AI is pushing the data layer back to the center of infrastructure.

Zilliz Cloud Update: Smarter Autoscaling for Cost Savings, Stronger Compliance with Audit Logs, and More
What's new in Zilliz Cloud? Smarter autoscaling with scale-down, audit logs GA, enhanced SSO, and Milvus 2.6 in Private Preview.

How to Use Anthropic MCP Server with Milvus
MCP + Milvus: Streamline AI agent development with standardized data access, eliminating integration hassles while enhancing context and flexibility.



