Aplicación empresarial de InternLM2-Chat-1.8B para interpretación de pólizas de seguro y sistema de respuestas a consultas de clientes

Implementación de un sistema de preguntas y respuestas para seguros con InternLM2-Chat-1.8B El modelo de lenguaje InternLM2-Chat-1.8B, con sus 1.8 mil millones de parámetros, se destaca por su capacidad para manejar tareas de diálogo y comprensión de texto extenso, siendo ideal para aplicaciones especializadas como la interpretación de pólizas de seguro. Su diseño optimizado para conversaciones permite generar respuestas precisas y contextuales, superando a modelos base de tamaño similar. Además, soporta hasta 200,000 caracteres en el contexto, lo que facilita el análisis de documentos largos como contratos de seguros. Su ligereza hace que sea desplegable mediante herramientas como Ollama, reduciendo costos y complejidad técnica. Para desplegar el modelo, se utiliza Ollama, que proporciona una interfaz sencilla para gestionar modelos de IA. Primero, se accede a la sección de modelos en la plataforma de Olama, donde se puede buscar y seleccionar el modelo internlm2:1.8b. Tras la carga inicial, el modelo está listo para interactuar mediante un chatbox integrado, permitiendo pruebas básicas de comunicación. La transformación de un modelo generalista en un experto en seguros se logra mediante ingeniería de prompts. En lugar de reentrenar el modelo, se inyecta conocimiento específico a través de instrucciones detalladas. Por ejemplo, se define un rol de sistema que enfatice respuestas basadas en cláusulas, explicaciones claras y manejo de incertidumbre. A continuación, se presenta un ejemplo en Python para construir un prompt especializado:

def generar_prompt_asegurador(consulta_usuario, fragmento_poliza):
"""
Genera un prompt estructurado para consultas de seguros.
consulta_usuario: Pregunta del cliente.
fragmento_poliza: Texto relevante de la póliza.
"""
rol_sistema = """Eres un asistente de interpretación de pólizas de seguro, preciso y cordial. Debes:
1. Basarte exclusivamente en el fragmento proporcionado.
2. Simplificar términos técnicos en lenguaje cotidiano.
3. Organizar respuestas en puntos claros.
4. Indicar cuando la información no está disponible en el fragmento.
"""

plantilla = f"""
{rol_sistema}

Fragmento de póliza:

{fragmento_poliza}

    
    Responde a la consulta del cliente.
    
    Consulta: {consulta_usuario}
    
    Respuesta:
    """
    return plantilla

# Ejemplo de cláusula sobre periodo de carencia
clausula_ejemplo = """
【Periodo de carencia】Desde la fecha de inicio de la póliza (o su reactivación) hasta 90 días después, no se cubren enfermedades graves. Sin embargo, accidentes están cubiertos de inmediato.
"""

consulta_cliente = "¿Qué significa el periodo de carencia de 90 días en mi seguro?"
prompt_completo = generar_prompt_asegurador(consulta_cliente, clausula_ejemplo)


Al enviar este prompt al modelo, se genera una respuesta adaptada, como por ejemplo:

"El periodo de carencia es un lapso de 90 días tras la activación de la póliza, durante el cual no se cubren enfermedades graves diagnosticadas. Si ocurre un accidente, la cobertura aplica desde el inicio. Esto protege contra aseguraciones de riesgos ya existentes." Para automatizar el proceso, se puede desarrollar un prototipo de sistema de preguntas y respuestas. Este sistema integra una base de conocimiento, búsqueda de cláusulas relevantes y generación de respuestas. Un ejemplo básico en Python:

class SistemaQASeguro:
    def __init__(self, cliente_ollama):
        self.cliente = cliente_ollama
        self.base_conocimiento = {}  # Almacena cláusulas por tema
    
    def agregar_clausula(self, tema, texto):
        """Añade una cláusula a la base de conocimiento."""
        self.base_conocimiento[tema] = texto
    
    def buscar_clausula_relevante(self, pregunta):
        """
        Busca cláusulas relacionadas usando palabras clave.
        En producción, usar búsqueda semántica con embeddings.
        """
        pregunta_minusculas = pregunta.lower()
        temas_coincidentes = []
        
        mapeo_palabras = {
            'carencia': ['carencia', 'período de espera', '90 días'],
            'exclusiones': ['no cubierto', 'exclusiones', 'excepciones'],
            'reclamaciones': ['reclamar', 'proceso de pago', 'reportar'],
        }
        
        for tema, palabras in mapeo_palabras.items():
            if any(p in pregunta_minusculas for p in palabras) and tema in self.base_conocimiento:
                temas_coincidentes.append(tema)
        
        if temas_coincidentes:
            return self.base_conocimiento[temas_coincidentes[0]]
        return ""
    
    def responder(self, pregunta_usuario):
        """Genera una respuesta basada en la cláusula encontrada."""
        clausula = self.buscar_clausula_relevante(pregunta_usuario)
        if not clausula:
            return "No se encontró información relevante en la póliza. Contacte a soporte humano."
        prompt = generar_prompt_asegurador(pregunta_usuario, clausula)
        try:
            respuesta = self.cliente.generar(modelo="internlm2:1.8b", prompt=prompt)
            return respuesta
        except Exception as error:
            return f"Error en el sistema: {error}. Intente más tarde."

# Ejemplo de uso
sistema = SistemaQASeguro(cliente_ollama=None)  # Reemplazar con cliente real
sistema.agregar_clausula("carencia", clausula_ejemplo)


Para mejorar el sistema, se pueden implementar técnicas avanzadas. En la gestión de bases de conocimiento, estructurar las cláusulas por tipo de seguro (salud, vida, auto) y capítulos (coberturas, exclusiones). Incorporar pares de preguntas y respuestas comunes para aumentar la precisión. En la ingeniería de prompts, añadir ejemplos de respuestas ideales y restricciones para evitar invención de información. Para robustez, manejar consultas fuera de contexto con rechazos educados y mecanismos de transferencia a agentes humanos cuando el modelo muestre baja confianza.

Etiquetas: internlm2-chat-1.8b seguros interpretación-de-pólizas atención-al-cliente ollama

Publicado el 6-1 05:56