Construye un Bot de Preguntas y Respuestas Transparente para tus Documentos con LangChain y GPT-3

Construye un Bot de Preguntas y Respuestas con LangChain y GPT-3

Guía para desarrollar un bot de preguntas y respuestas informativo con fuentes mostradas

Foto de Justin Ha en Unsplash.

Un sistema de preguntas y respuestas puede ser de gran ayuda para analizar grandes cantidades de datos o documentos. Sin embargo, las fuentes (es decir, partes de su documento) que el modelo utilizó para crear la respuesta generalmente no se muestran en la respuesta final.

Comprender el contexto y origen de las respuestas es valioso no solo para los usuarios que buscan información precisa, sino también para los desarrolladores que desean mejorar continuamente sus bots de preguntas y respuestas. Con las fuentes incluidas en la respuesta, los desarrolladores obtienen información valiosa sobre el proceso de toma de decisiones del modelo, lo que facilita las mejoras y ajustes iterativos.

Este artículo muestra cómo utilizar LangChain y GPT-3 (text-davinci-003) para crear un bot de preguntas y respuestas transparente que muestre las fuentes utilizadas para generar la respuesta mediante el uso de dos ejemplos.

En el primer ejemplo, aprenderá cómo crear un bot de preguntas y respuestas transparente que aproveche el contenido de su sitio web para responder preguntas. En el segundo ejemplo, exploraremos el uso de transcripciones de diferentes videos de YouTube, tanto con como sin marcas de tiempo.

Procesar los datos y crear un almacén de vectores

Antes de poder aprovechar las capacidades de un LMM como GPT-3, necesitamos procesar nuestros documentos (por ejemplo, contenido de un sitio web o transcripciones de YouTube) en el formato correcto (primero en trozos, luego en incrustaciones) y almacenarlos en un almacén de vectores. La Figura 1 a continuación muestra el flujo de proceso de izquierda a derecha.

Figura 1. Flujo de proceso de procesamiento de datos y creación de un almacén de vectores (imagen del autor).

Ejemplo de contenido de sitio web

En este ejemplo, procesaremos el contenido del portal web, It’s FOSS, que se especializa en tecnologías de código abierto, con un enfoque particular en Linux.

Primero, necesitamos obtener una lista de todos los artículos que queremos procesar y almacenar en nuestro almacén de vectores. El siguiente código lee el archivo sitemap-posts.xml, que contiene una lista de enlaces a todos los artículos.