En Kraz somos especialistas en desarrollar soluciones de inteligencia artificial que impulsen el valor de los datos de nuestros clientes. Un claro ejemplo es el proyecto de chatbot que realizamos para GB Foods, del que ya os hablamos en nuestro webinar “Aplicaciones LLM en entornos de negocio”.
Para este caso de éxito llevamos a cabo un proceso de construcción de un chatbot personalizado con el que obtener respuestas a preguntas específicas sobre el contenido con el que fue entrenado. Para esto último, utilizamos más de veinte documentos correspondientes a la transcripción de entrevistas personales realizadas por consultores de investigación de mercados a usuarios finales y restauradores. En ellas se hacía referencia al uso de la salsa de tomate en su día a día en la cocina.
Pero… ¿Cómo es el proceso de construcción de un chatbot? ¿Cuáles son sus posibles usos en negocio? ¡Te lo contamos todo en este artículo de nuestro blog!
Las 5 fases de desarrollo del chatbot
El proceso de desarrollo de un chatbot como este consiste básicamente de 5 fases:
1. Input data y preprocesamiento
Esta fase cubre la ingesta de datos y preprocesamiento del texto. En el caso de GB Foods, cargamos los 22 ficheros PDF de entrevistas en el sistema.
La extracción del texto del PDF se hizo mediante librerías como PyPDF2, PDFMiner o OCR.
Seguidamente, se procesaron los pasos para limpieza y normalización del texto.
A continuación se ejecutó la fragmentación del texto (chunking) para facilitar el análisis posterior. El chucking es un proceso clave, ya que corta el texto original de input en fragmentos más pequeños que posteriormente serán vectorizados.
Algunos de los parámetros importantes en este paso son:
- chunk_size: Número de tokens por fragmento
- chunk_overlap: Número de tokens que se solapan entre fragmentos.
2. Generación de embeddings
El proceso de embedding es la conversión de los fragmentos de texto en vectores numéricos.
Para ello, existen una gran cantidad de modelos pre-entrenados para la realización de este proceso: modelos de OpenAI (como text-embedding-3-large), modelos de Sentence Transformers (como paraphrase-MiniLM-L6-v2), etc.
Algunos de los parámetros importantes en este paso son:
- embedding_model_name: modelo seleccionado
- batch_size: número de fragmentos que se procesan simultáneamente
3. Procesamiento de la petición
La petición del usuario (prompt) se tokeniza y se genera su embedding con el mismo modelo para su posterior comparación con los fragmentos ya almacenados (base de conocimiento del chatbot)
4. Recuperación de la información
En esta fase se hace la correspondencia entre la petición del usuario y la información de base disponible. Existen varias técnicas para la recuperación de la información:
- Búsqueda vectorial: Vector Similarity Search
- Búsqueda de texto completo: Full-Text Search
- Búsqueda híbrida: Hybrid Search
Para la ordenación de los fragmentos candidatos hay varios modelos:
- Re-rank model: reordenación semántica de los fragmentos candidatos
- Weighted Score: reordenación priorizando la coincidencia semántica o de palabras clave
Algunos de los parámetros personalizables en este proceso son:
- top_k: usado para filtrar fragmentos más similares a la pregunta del usuario. Cuanto más alto sea este valor, más segmentos de texto se recuperarán (el número de fragmentos también depende del parámetro max_tokens que se verá más adelante)
- threshold: umbral de similitud para la filtración de fragmentos
5. Generación de la respuesta
El modelo genera una respuesta basada en la pregunta y los fragmentos seleccionados. Para esta generación se utilizan modelos LLM como gpt-4o, o1-mini (OpenAI), claude-3-5-sonnet (Anthropic), Gemini 1.5 Flash, Gemini 1.5 Pro (Google), etc.
Algunos de los parámetros personalizables son:
- temperature: controla la aleatoriedad. Valores cercanos al 0 darán una respuesta más determinista y valores cercanos al 1 darán una respuesta más aleatoria y creativa
- top_p: controla la diversidad a través de nucleus sampling (el modelo considera los tokens con una probabilidad acumulada hasta top_p)
- presence_penalty y frequency_penalty: Penaliza o favorece la aparición de nuevos tokens en la respuesta
- max_tokens: Máximo número de tokens en la respuesta.
Posibles usos del chatbot en negocio
Nuestro cliente GBFoods pudo interrogar el chatbot con preguntas relacionadas con las siguientes temáticas:
- Nuevos hábitos de compra, uso y consumo
- Motivos de preferencias por marcas concretas
- Motivos de cambios de marcasç
- Quejas detectadas sobre marcas concretas
- Cambios percibidos en precios y características de productos
- Diferencias entre comentarios de restaurador@s vs particulares
En concreto, el chatbot ofreció muchas respuestas que permitieron a GBFoods complementar las informaciones de paneles de consumidores (Kantar worldpanel) y paneles de distribuidores (Nielsen), para entender así con una mirada holística la situación de mercado de salsa de tomate en la geografía en la que se realizó el estudio.
Descubre el potencial de los LLM y chatbots en tu empresa
Hasta ahora, los usos más comunes de los chatbots estaban orientados al consumidor final. Sin embargo, gracias a los LLM, desde Kraz le hemos dado una vuelta a estas herramientas de IA para convertirlas en un elemento clave para nuestros clientes.
Al nutrirlos de diferentes bases de datos, estos “robots” son capaces de responder al momento a preguntas clave sobre los hábitos de consumo de los clientes, facilitando la toma de decisiones. ¡Y esta es solo una de sus posibles aplicaciones!
Si quieres entender mejor algunas de las múltiples soluciones que los LLM pueden aportar a tu compañía, no te pierdas nuestro último webinar. Y si ya te has decidido a dar el salto, ¡contacta con nuestro equipo! Estaremos encantados de poder ayudarte.