Cómo entrenar un bot conversacional de IA con una base de conocimientos personalizada mediante la API de ChatGPT

En nuestro artículo anterior, demostramos cómo crear un chatbot de IA con la API de ChatGPT y asignarle un rol para personalizarlo. Pero, ¿qué sucede si desea entrenar la IA con sus propios datos? Por ejemplo, puede tener un libro, datos financieros o un gran conjunto de bases de datos y desea buscarlos con facilidad. En este artículo, le traemos un tutorial fácil de seguir sobre cómo entrenar un chatbot de IA con su base de conocimientos personalizada con LangChain y ChatGPT API. Estamos implementando LangChain, GPT Index y otras potentes bibliotecas para entrenar el chatbot de IA utilizando el modelo de lenguaje grande (LLM) de OpenAI. Entonces, en esa nota, veamos cómo entrenar y crear un AI Chatbot usando su propio conjunto de datos.

Capacite a un chatbot de IA con una base de conocimiento personalizada mediante la API de ChatGPT, LangChain y el índice GPT (2023)

En este artículo, hemos explicado con mayor detalle los pasos para enseñar el chatbot de IA con tus propios datos. Desde la configuración de herramientas y software hasta el entrenamiento del modelo de IA, hemos incluido todas las instrucciones en un lenguaje fácil de entender. Es muy recomendable seguir las instrucciones de arriba hacia abajo sin saltarse ninguna parte.

Puntos notables antes de entrenar IA con sus propios datos

1. Puede entrenar el chatbot de IA en cualquier plataforma, ya sea Windows, macOS, Linux o ChromeOS. En este artículo, uso Windows 11, pero los pasos son casi idénticos para otras plataformas.

2. La guía está destinada a usuarios generales y las instrucciones se explican en un lenguaje sencillo. Entonces, incluso si tiene un conocimiento superficial de las computadoras y no sabe cómo codificar, puede entrenar y crear fácilmente un chatbot de IA de preguntas y respuestas en unos minutos. Si siguió nuestro artículo anterior sobre el bot ChatGPT, sería aún más fácil entender el proceso.

3. Dado que vamos a entrenar un AI Chatbot basado en nuestros propios datos, se recomienda usar una computadora capaz con una buena CPU y GPU. Sin embargo, puede usar cualquier computadora de gama baja para realizar pruebas y funcionará sin problemas. Usé un Chromebook para entrenar el modelo de IA usando un libro con 100 páginas (~100 MB). Sin embargo, si desea entrenar un gran conjunto de datos que se ejecutan en miles de páginas, se recomienda encarecidamente utilizar una computadora potente.

4. Finalmente, el conjunto de datos debe estar en inglés para obtener los mejores resultados, pero según OpenAI, también funcionará con idiomas internacionales populares como francés, español, alemán, etc. Así que adelante, pruébelo en su propio idioma. idioma.

Configurar el entorno de software para entrenar un chatbot de IA

Al igual que nuestro artículo anterior, debe saber que Python y Pip deben instalarse junto con varias bibliotecas. En este artículo, configuraremos todo desde cero para que los nuevos usuarios también puedan comprender el proceso de configuración. Para darle una breve idea, instalaremos Python y Pip. Después de eso, instalaremos las bibliotecas de Python, que incluyen OpenAI, GPT Index, Gradio y PyPDF2. A lo largo del proceso, aprenderá lo que hace cada biblioteca. Una vez más, no se preocupe por el proceso de instalación, es bastante sencillo. En esa nota, saltemos directamente.

Instalar Python

1. En primer lugar, debe instalar Python (Pip) en su computadora. Abierto este enlace y descargue el archivo de instalación para su plataforma.

2. A continuación, ejecute el archivo de instalación y asegúrese de habilitar la casilla de verificación «Agregar Python.exe a PATH». Este es un paso extremadamente importante. Después de eso, haga clic en «Instalar ahora» y siga los pasos habituales para instalar Python.

3. Para verificar si Python está correctamente instalado, abra la Terminal en su computadora. Estoy usando Windows Terminal en Windows, pero también puedes usar el símbolo del sistema. Una vez aquí, ejecute el siguiente comando a continuación y generará la versión de Python. En Linux y macOS, es posible que deba usar python3 –version en lugar de python –version.

python --version

Actualizar Pip

Cuando instala Python, Pip se instala simultáneamente en su sistema. Así que vamos a actualizarlo a la última versión. Para aquellos que no lo saben, Pip es el administrador de paquetes de Python. Básicamente, te permite instalar miles de bibliotecas de Python desde la Terminal. Con Pip, podemos instalar las bibliotecas OpenAI, gpt_index, gradio y PyPDF2. Estos son los pasos a seguir.

1. Abra la Terminal de su elección en su computadora. Estoy usando la Terminal de Windows, pero también puedes usar el símbolo del sistema. Ahora, ejecute el siguiente comando para actualizar Pip. Nuevamente, es posible que deba usar python3 y pip3 en Linux y macOS.

python -m pip install -U pip

2. Para verificar si Pip se instaló correctamente, ejecute el siguiente comando. Dará salida al número de versión. Si recibe algún error, siga nuestra guía dedicada sobre cómo instalar Pip en Windows para solucionar problemas relacionados con PATH.

pip --version

Instale las bibliotecas OpenAI, GPT Index, PyPDF2 y Gradio

Una vez que hayamos configurado Python y Pip, es hora de instalar las bibliotecas esenciales que nos ayudarán a entrenar un chatbot de IA con una base de conocimientos personalizada. Estos son los pasos a seguir.

1. Abra la Terminal y ejecute el siguiente comando para instalar la biblioteca OpenAI. Lo usaremos como LLM (modelo de lenguaje grande) para entrenar y crear un chatbot de IA. Y también importaremos el marco LangChain de OpenAI. Tenga en cuenta que es posible que los usuarios de Linux y macOS tengan que usar pip3 en lugar de pip.

pip install openai

2. A continuación, instalemos GPT Index, que también se llama LlamaIndex. Permite que el LLM se conecte a los datos externos que son nuestra base de conocimiento.

pip install gpt_index

3. Después de eso, instale PyPDF2 para analizar archivos PDF. Si desea alimentar sus datos en formato PDF, esta biblioteca ayudará al programa a leer los datos sin esfuerzo.

pip install PyPDF2

4. Finalmente, instale la biblioteca Gradio. Esto está destinado a crear una interfaz de usuario simple para interactuar con el chatbot de IA capacitado. Ya hemos terminado de instalar todas las bibliotecas necesarias para entrenar un chatbot de IA.

pip install gradio

Descargar un editor de código

Finalmente, necesitamos un editor de código para editar parte del código. En Windows, recomendaría Notepad++ (Descargar). Simplemente descargue e instale el programa a través del enlace adjunto. También puede usar VS Code en cualquier plataforma si se siente cómodo con los potentes IDE. Además de VS Code, puede instalar Sublime Text (Descargar) en macOS y Linux.

Para ChromeOS, puede usar la excelente aplicación Caret (Descargar) para editar el código. Casi hemos terminado de configurar el entorno de software y es hora de obtener la clave API de OpenAI.

Obtenga la clave API de OpenAI de forma gratuita

Ahora, para entrenar y crear un chatbot de IA basado en una base de conocimiento personalizada, necesitamos obtener una clave de API de OpenAI. La clave API le permitirá usar el modelo de OpenAI como LLM para estudiar sus datos personalizados y sacar inferencias. Actualmente, OpenAI ofrece claves de API gratuitas con $5 de crédito gratuito durante los primeros tres meses para nuevos usuarios. Si creó su cuenta de OpenAI anteriormente, es posible que tenga un crédito de $18 gratis en su cuenta. Una vez que se agote el crédito gratuito, deberá pagar el acceso a la API. Pero por ahora, está disponible para todos los usuarios de forma gratuita.

1. Dirígete a plataforma.openai.com/signup y crea una cuenta gratis. Si ya tiene una cuenta de OpenAI, simplemente inicie sesión.

2. A continuación, haga clic en su perfil en la esquina superior derecha y seleccione «Ver claves API» en el menú desplegable.

3. Aquí, haga clic en «Crear nueva clave secreta» y copie la clave API. Tenga en cuenta que no puede copiar ni ver la clave API completa más adelante. Por lo tanto, se recomienda encarecidamente copiar y pegar la clave API en un archivo del Bloc de notas inmediatamente.

4. Además, no comparta ni muestre la clave API en público. Es una clave privada destinada solo para acceder a su cuenta. También puede eliminar claves API y crear varias claves privadas (hasta cinco).

Entrene y cree un chatbot de IA con una base de conocimientos personalizada

Ahora que configuramos el entorno de software y obtuvimos la clave API de OpenAI, entrenemos el chatbot de IA. Aquí, usaremos el modelo «text-davinci-003» en lugar del último modelo «gpt-3.5-turbo» porque Davinci funciona mucho mejor para completar texto. Si lo desea, puede muy bien cambiar el modelo a Turbo para reducir el costo. Con eso fuera del camino, pasemos a las instrucciones.

Agregue sus documentos para entrenar el chatbot de IA

1. Primero, cree una nueva carpeta llamada docs en una ubicación accesible como el escritorio. También puede elegir otra ubicación según su preferencia. Sin embargo, mantenga el nombre de la carpeta docs.

2. Luego, mueva los documentos que desea usar para entrenar la IA dentro de la carpeta «docs». Puede agregar varios archivos de texto o PDF (incluso escaneados). Si tiene una tabla grande en Excel, puede importarla como archivo CSV o PDF y luego agregarla a la carpeta «docs». Incluso puede agregar archivos de base de datos SQL, como se explica en este Tweet de IA de Langchain. No he probado muchos formatos de archivo además de los mencionados, pero puede agregar y verificar por su cuenta. Para este artículo, estoy agregando uno de mis artículos sobre NFT en formato PDF.

Nota: si tiene un documento grande, llevará más tiempo procesar los datos, dependiendo de su CPU y GPU. Además, utilizará rápidamente sus tokens OpenAI gratuitos. Entonces, al principio, comience con un documento pequeño (30-50 páginas o archivos de menos de 100 MB) para comprender el proceso.

Prepare el código

1. Ahora, inicie Notepad ++ (o el editor de código que elija) y pegue el código a continuación en un nuevo archivo. Una vez más, he recibido una gran ayuda de armrrs en Google Colab y modificó el código para hacerlo compatible con archivos PDF y creó una interfaz Gradio en la parte superior.

from gpt_index import SimpleDirectoryReader, GPTListIndex, GPTSimpleVectorIndex, LLMPredictor, PromptHelper
from langchain import OpenAI
import gradio as gr
import sys
import os

os.environ["OPENAI_API_KEY"] = 'Your API Key'

def construct_index(directory_path):
    max_input_size = 4096
    num_outputs = 512
    max_chunk_overlap = 20
    chunk_size_limit = 600

    prompt_helper = PromptHelper(max_input_size, num_outputs, max_chunk_overlap, chunk_size_limit=chunk_size_limit)

    llm_predictor = LLMPredictor(llm=OpenAI(temperature=0.7, model_name="text-davinci-003", max_tokens=num_outputs))

    documents = SimpleDirectoryReader(directory_path).load_data()

    index = GPTSimpleVectorIndex(documents, llm_predictor=llm_predictor, prompt_helper=prompt_helper)

    index.save_to_disk('index.json')

    return index

def chatbot(input_text):
    index = GPTSimpleVectorIndex.load_from_disk('index.json')
    response = index.query(input_text, response_mode="compact")
    return response.response

iface = gr.Interface(fn=chatbot,
                     inputs=gr.inputs.Textbox(lines=7, label="Enter your text"),
                     outputs="text",
                     title="Custom-trained AI Chatbot")

index = construct_index("docs")
iface.launch(share=True)

2. Así es como se ve el código en el editor de código.

3. A continuación, haga clic en «Archivo» en el menú superior y seleccione «Guardar como…» en el menú desplegable.

4. Después de eso, configure el nombre del archivo app.py y cambie «Guardar como tipo» a «Todos los tipos» en el menú desplegable. Luego, guarde el archivo en la ubicación donde creó la carpeta «docs» (en mi caso, es el escritorio). Puede cambiar el nombre a su gusto, pero asegúrese de agregar .py.

5. Asegúrese de que la carpeta «docs» y «app.py» estén en la misma ubicación, como se muestra en la captura de pantalla a continuación. El archivo «app.py» estará fuera de la carpeta «docs» y no dentro.

6. Vuelva al código nuevamente en Notepad++. Aquí, reemplace su clave API con la generada en el sitio web de OpenAI anterior.

7. Finalmente, presione «Ctrl + S» para guardar el código. Ahora está listo para ejecutar el código.

Cree ChatGPT AI Bot con base de conocimientos personalizada

1. Primero, abra la Terminal y ejecute el siguiente comando para pasar al Escritorio. Es donde guardé la carpeta «docs» y el archivo «app.py». Si guardó ambos elementos en otra ubicación, muévase a esa ubicación a través de la Terminal.

cd Desktop

2. Ahora, ejecute el siguiente comando. Es posible que los usuarios de Linux y macOS tengan que usar python3.

python app.py

3. Ahora, comenzará a analizar el documento utilizando el modelo OpenAI LLM y comenzará a indexar la información. Según el tamaño del archivo y la capacidad de su computadora, tomará algún tiempo procesar el documento. Una vez hecho esto, se creará un archivo «index.json» en el escritorio. Si la Terminal no muestra ningún resultado, no se preocupe, es posible que aún esté procesando los datos. Para su información, se tarda unos 10 segundos en procesar un documento de 30 MB.

4. Una vez que el LLM haya procesado los datos, recibirá algunas advertencias que puede ignorar de manera segura. Finalmente, en la parte inferior, encontrarás una URL local. Cópialo.

5. Ahora, pegue la URL copiada en el navegador web, y ahí lo tiene. Su chatbot de IA potenciado por ChatGPT entrenado a la medida está listo. Para comenzar, puede preguntarle al chatbot de IA de qué trata el documento.

6. Puede hacer más preguntas y el bot ChatGPT responderá a partir de los datos que proporcionó a la IA. Entonces, así es como puede crear un chatbot de IA entrenado a la medida con su propio conjunto de datos. Ahora puede entrenar y crear un chatbot de IA basado en cualquier tipo de información que desee. Las posibilidades son infinitas.

7. También puede copiar la URL pública y compartirla con sus amigos y familiares. El enlace estará activo durante 72 horas, pero también debe mantener su computadora encendida ya que la instancia del servidor se está ejecutando en su computadora.

8. Para detener el chatbot de IA personalizado, presione «Ctrl + C» en la ventana de la Terminal. Si no funciona, presione «Ctrl + C» nuevamente.

9. Para reiniciar el servidor AI chatbot, simplemente muévase a la ubicación del escritorio nuevamente y ejecute el siguiente comando. Tenga en cuenta que la URL local será la misma, pero la URL pública cambiará después de cada reinicio del servidor.

python app.py

10. Si desea entrenar el chatbot de IA con nuevos datos, elimine los archivos dentro de la carpeta «docs» y agregue otros nuevos. También puede agregar varios archivos, pero alimentar información sobre el mismo tema; de lo contrario, puede obtener una respuesta incoherente.

11. Ahora, ejecute el código nuevamente en la Terminal y se creará un nuevo archivo «index.json». Aquí, el antiguo archivo «index.json» se reemplazará automáticamente.

python app.py

12. Para realizar un seguimiento de sus tokens, diríjase a OpenAI en línea panel y verifique cuánto crédito libre queda.

13. Por último, no necesita tocar el código a menos que desee cambiar la clave API o el modelo OpenAI para una mayor personalización.

Cree un chatbot de IA personalizado utilizando sus propios datos

Así es como puede entrenar un chatbot de IA con una base de conocimientos personalizada. He usado este código para entrenar a la IA en libros médicos, artículos, tablas de datos e informes de archivos antiguos, y ha funcionado perfectamente. Así que adelante, cree su propio chatbot de IA utilizando el modelo de lenguaje grande de OpenAI y ChatGPY. De todos modos, eso es todo de nuestra parte. Si está buscando las mejores alternativas de ChatGPT, diríjase a nuestro artículo vinculado. Y para usar ChatGPT en su Apple Watch, siga nuestro tutorial detallado. Finalmente, si tiene algún tipo de problema, háganoslo saber en la sección de comentarios a continuación. Definitivamente intentaremos ayudarte.