Esta guía le ayudará a desarrollar un agente de IA especializado utilizando Gaia. En este ejemplo, estamos construyendo un chatbot especializado en datos de Fórmula 1 que responderá a consultas en torno a su historia, competiciones y reglamentos. Esta guía te mostrará cómo configurar un nodo Gaia, construir una base de conocimiento y lanzar un chatbot LLM personalizado. Al final de esta guía, tendremos un chatbot en vivo que responderá a las preguntas sobre la F1.
¿Qué es Gaia?
Gaia es una infraestructura informática descentralizada que permite a todo el mundo crear, desplegar, escalar y monetizar sus propios agentes de IA que reflejen sus estilos, valores, conocimientos y experiencia. Permite a particulares y empresas crear agentes de IA.
Cada nodo GaiaNet proporciona:
una interfaz de chatbot basada en web
una API compatible con OpenAI
Instalación de un nodo Gaia en su sistema
Antes de empezar a construir nuestro chatbot F1, primero debemos instalar un nodo en tu sistema. Un nodo Gaia puede ser instalado en una variedad de dispositivos y sistemas operativos. Para obtener más información, consulte los requisitos del sistema.
Vamos a instalar rápidamente un nodo en tu sistema.
Utilizando su terminal, ejecute este script para descargar la última versión del nodo GaiaNet:
Después de ejecutar el script, verá lo siguiente en su terminal:
ID de nodo
Un comando que hará que la herramienta GaiaNet CLI esté disponible en el shell
Un comando que te permitirá inicializar el nodo.
Ejecute el comando que hará que la herramienta CLI esté disponible, comenzará con fuente.
Inicialice su nodo utilizando la función gaianet init comando. La herramienta CLI le ayudará a descargar los modelos y recuperar las incrustaciones de conocimiento.
Después de inicializar el nodo, inícielo utilizando la función inicio de gaianet mando.
¡Enhorabuena! ¡Has instalado e iniciado tu nodo GaiaNet! Ahora que hemos completado nuestro paso inicial, podemos empezar a preparar nuestro chatbot F1.
Crear una base de conocimientos
Preparación de los datos F1
Nuestro nodo Gaia está en marcha, así que ahora necesitamos preparar nuestros datos F1. La preparación de los datos sigue los siguientes pasos:
Agregación de fuentes de datos
Creación de un archivo .txt y adición de datos.
Segmentar los datos
En este tutorial, utilizaremos las siguientes fuentes de datos para entrenar a nuestro chatbot:
Su archivo .txt debe estar estructurado con secciones claras de menos de 768 palabras.
Ejemplo
El siguiente ejemplo muestra la estructura del archivo .txt y cómo debe formatearse. Si su archivo tiene menos de 768 palabras, no necesita saltos de línea. Si su archivo tiene más de 768 palabras, entonces necesitará saltos de línea.
¿Qué es la Fórmula Uno, la F1 o el Campeonato del Mundo de la FIA?
La Fórmula 1, comúnmente conocida como Fórmula 1 o F1, es la categoría más alta de las carreras internacionales de monoplazas de ruedas abiertas sancionada por la Federación Internacional del Automóvil (FIA). El Campeonato del Mundo de Fórmula 1 de la FIA ha sido una de las competiciones más importantes del mundo desde su primera edición en 1950. La palabra fórmula en el nombre se refiere al conjunto de reglas que deben seguir todos los coches de los participantes. Una temporada de Fórmula 1 consiste en una serie de carreras, conocidas como Grandes Premios. Los Grandes Premios se celebran en varios países y continentes, en circuitos construidos a tal efecto o en carreteras públicas cerradas. En los Grandes Premios se utiliza un sistema de puntos para determinar dos Campeonatos del Mundo anuales: uno para los pilotos y otro para los constructores (los equipos).
¿Qué es la Fórmula 1, la F1 o el Campeonato del Mundo de la FIA?
Cada piloto debe ser titular de una Superlicencia válida, la clase más alta de licencia de carreras que expide la FIA, y las carreras deben celebrarse en circuitos de grado uno, la calificación de grado más alto que expide la FIA para los circuitos. Los monoplazas de Fórmula 1 son los coches de carreras regulados más rápidos del mundo, debido a las altas velocidades que alcanzan en las curvas generando grandes cantidades de carga aerodinámica. Gran parte de esta carga aerodinámica es generada por los alerones delanteros y traseros, que tienen el efecto secundario de causar fuertes turbulencias detrás de cada coche. La turbulencia reduce la carga aerodinámica que generan los coches que van justo detrás, lo que dificulta los adelantamientos.
¿Qué es la Fórmula Uno, la F1 o el Campeonato del Mundo de la FIA?
Los principales cambios introducidos en los coches para la temporada 2022 se han traducido en un mayor uso de la aerodinámica de efecto suelo y alerones modificados para reducir las turbulencias detrás de los coches, con el objetivo de facilitar los adelantamientos. Los coches dependen de la electrónica, la aerodinámica, la suspensión y los neumáticos. El control de tracción, el control de lanzamiento, el cambio automático y otras ayudas electrónicas a la conducción se prohibieron por primera vez en 1994. Se reintrodujeron brevemente en 2001, y más recientemente se han prohibido desde 2004 y 2008, respectivamente. Con el coste medio anual del funcionamiento de un equipo -diseño, construcción y mantenimiento de los coches, salarios, transporte- en aproximadamente 220.000.000 de libras (o 265.000.000 de dólares), las batallas financieras y políticas de la Fórmula 1 son ampliamente conocidas.
¿Qué es la Fórmula Uno, la F1 o el Campeonato Mundial de la FIA?
El grupo Fórmula Uno es propiedad de Liberty Media, que lo adquirió en 2017 a la empresa de capital riesgo CVC Capital Partners por 6.400 millones de libras (8.000 millones de dólares).
Construir su base de conocimientos y su modelo de integración
Ahora que los datos han sido agregados, serán convertidos en una base de datos vectorial. Para este tutorial, utilizaremos la herramienta GaiaNet, desarrollada para crear archivos de instantáneas de colecciones vectoriales. Esta herramienta facilita a todo el mundo la creación de su propia base de conocimientos.
En primer lugar, carga el archivo .txt creado anteriormente en la herramienta arrastrándolo o cargándolo.
En la sección "snapshot_name", indique un nombre para la instantánea.
El nombre de la instantánea no debe contener caracteres especiales ni espacios.
Haga clic en "Hacer un RAG", este proceso puede tardar unos minutos dependiendo del tamaño de su archivo.
Una vez creado el RAG, se generará una respuesta JSON con el siguiente aspecto:
Felicidades, ¡ya has hecho tu RAG y vamos a proceder a configurar tu nodo!
Configuración de su nodo GaiaNet
Hasta ahora, hemos instalado un nodo en nuestro sistema, construido una base de conocimientos, y hecho un RAG para nuestros datos de Fórmula 1. Ahora tenemos que configurar nuestro nodo para utilizar nuestra base de conocimientos de F1.
Actualiza el modelo LLM, usaremos un modelo con mejor rendimiento que el predeterminado. Ejecuta este código para actualizar con Meta Llama 3.1-8B:
gaianet config \
--snapshot https://huggingface.co/datasets/max-id/gaianet-qdrant-snapshot/resolve/main/formula1-b38b0f78-374b-44cc-a7ad-5157e7867760/formula1-b38b0f78-374b-44cc-a7ad-5157e7867760.snapshot \
--embedding-url https://huggingface.co/gaianet/nomic-embed-text-gguf/resolve/main/nomic-embed-text-v1.5.f16.gguf \
--embedding-ctx-size 8192 \
--chat-url https://huggingface.co/gaianet/Meta-Llama-3.1-8B-Instruct-GGUF/resolve/main/Meta-Llama-3.1-8B-Instruct-Q5_K_M.gguf \
--chat-ctx-size 8192 \
--prompt-template llama-3-chat \
--system-prompt "Eres un experto en Fórmula 1, con un profundo conocimiento de la historia de las carreras, las estadísticas de los pilotos y las estrategias de los equipos. Responda de forma breve y precisa a las preguntas sobre F1. Preste especial atención al formato: utilice viñetas, negrita y saltos de línea para facilitar la lectura del texto." \
--rag-prompt "El siguiente texto es el contexto de la pregunta del usuario. \n----------------\n"
Actualice los cambios de configuración:
gaianet init
inicio de gaianet
Ahora que tu nodo está reiniciado y configurado con los datos de la Fórmula 1, ¡empieza la diversión!
Pruebe su Agente F1
Utilice la URL del nodo que se generó cuando su nodo se creó por primera vez, para acceder al agente y probarlo.