Saltar al contenido principal

La guía más sencilla para crear su propio juguete LLM en 2024

· 14 min de lectura
CEO of Pu'ersa Technology Co., Ltd.

2024 está aquí y ¿juguetes DIY LLM? Totalmente una cosa ahora. No se necesita magia tecnológica, sólo tu curiosidad. Di el paso, mezclé un poco de codificación con mucha diversión y, ¡bam!, creé mi propio juguete parlante. Si estás dispuesto a crear un compañero de IA con facilidad, estás en el lugar correcto. Desmitifiquemos juntos la tecnología y demos vida a tu amigo AI. En un mundo donde la tecnología se cruza cada vez más con la vida diaria, crear su propio juguete LLM no solo desmitifica la IA sino que también proporciona una puerta de entrada personalizada a las maravillas de la tecnología interactiva.

Primero echemos un vistazo al efecto final.

Sinceramente, es bastante impresionante. ¿Listo para empezar? ¡Vamos a sumergirnos!

¿Como funciona?

Hay tres pasos clave:

  1. Grabación: reciba datos de grabación en tiempo real enviados por el juguete a través de UDP y llame a la API STT (Sound-To-Text) para convertir el sonido en texto.
  2. Pensamiento: Después de recibir el texto anterior, se llamará inmediatamente a la API LLM (Large-Language-Model) para obtener oraciones generadas por el LLM en forma de transmisión. Luego, se llama a la API TTS (Text-To-Sound) para convertir las oraciones en habla humana.
  3. Reproducir audio: los juguetes recibirán secuencias de archivos de audio TTS (texto a sonido) generados por el servidor FoloToy y los reproducirán según el orden.

Preparación antes del desarrollo

Antes de comenzar a fabricar su juguete LLM, es fundamental comprender el hardware, el software y los conocimientos técnicos necesarios. Esta sección lo guiará en la preparación de todos los elementos esenciales para garantizar un comienzo sin problemas.

Hardware

Folotoy Core: La placa central de conversación de voz ChatGPT AI sirve como el cerebro de su proyecto, permitiendo interacciones de voz con AI.

Componentes del juguete: Se necesitan elementos esenciales como un micrófono, un altavoz, botones, interruptores y una fuente de alimentación. Me quedo con el Alilo Honey Bunny G6 por su configuración lista para usar.

Octopus Dev Suit (Otra elección): Ideal para aquellos que buscan modernizar juguetes existentes con capacidades de IA.

Al realizar una compra, proporcione mi código de promoción F-001–9 para recibir un descuento.

Servidor

Utilizar su propia máquina, como una MacBook Pro, garantiza que su juguete tenga un servidor confiable para procesar y responder a las interacciones de voz. Alternativamente, los servicios en la nube como Google Cloud Engine (GCE) pueden escalar su proyecto para aplicaciones más amplias.

Conocimiento

  1. Docker (obligatorio): comprender Docker es fundamental para implementar software en contenedores, lo que hace que su proyecto sea portátil y escalable. Lo uso para iniciar el servidor Folo.
  2. Git (obligatorio): el control de versiones es esencial para administrar la base de código de su proyecto. Lo uso para administrar el código base del servidor Folo.
  3. MQTT (opcional): si busca una personalización avanzada, la familiaridad con MQTT (un protocolo de mensajería liviano) será beneficiosa para la comunicación entre el juguete y el servidor.
  4. EMQX (opcional): corredor MQTT de código abierto para IoT, IIoT y vehículos conectados. Se utiliza para gestionar tus juguetes.
  5. ollama (opcional): si desea ejecutar modelos de lenguaje grandes localmente, es una buena elección.

Servicios y registro

Para que tu juguete cobre vida, necesitarás acceso a servicios de inteligencia artificial específicos. Para este proyecto, elegí utilizar las ofertas de OpenAI:

  1. TTS (Text-to-Speech): el servicio Whisper de OpenAI convierte las respuestas de texto de la IA en voz, lo que hace que la interacción sea natural.
  2. LLM (modelo de lenguaje grande): utilización de modelos de OpenAI para comprender y generar respuestas de texto similares a las humanas.
  3. STT (Voz a texto): el servicio TTS de OpenAI transcribe palabras habladas en texto, lo que permite a la IA comprender consultas o comandos de voz.

Lo más importante es que debe registrarse en la plataforma OpenAI y crear una clave, como sk-...i7TL.

Arma tu juguete

Ahora es el momento de juntar todas las piezas y hacer tu propio juguete LLM.

Los pasos generales son los siguientes, se recomienda ver el video tutorial primero.

  1. Compruebe si la grabación y reproducción de Alilo G6 son normales.
  2. Utilice un destornillador para desatornillar los 6 tornillos de la parte posterior de Alilo G6.
  3. Abra con cuidado la carcasa de Alilo G6, desconecte todos los enchufes de la placa base, primero desconecte el enchufe de alimentación, hay pegamento en el enchufe, puede usar un cuchillo para cortarlo suavemente y abrirlo, asegúrese de no cortarse la mano.
  4. Desatornille los 4 tornillos de la placa base y retírela.
  5. Reemplace la placa base original con la placa base de FoloToy y apriete 3 tornillos para fijarla.
  6. Conecte el micrófono, la luz, el altavoz y las tomas de corriente, finalmente conecte la toma de corriente.
  7. Después de enchufar todos los enchufes, no cierre la carcasa ni instale tornillos todavía. Primero encienda el interruptor de encendido/apagado en la cola del conejo para ver si la luz recién instalada puede encenderse y parpadear lentamente en color azul.
  8. Si no hay ningún problema, instale la carcasa y apriete los tornillos para completar el proceso de reemplazo.

Configurar el servidor

Un sólido soporte de backend es clave para que sus juguetes LLM comprendan y respondan a los comandos de voz. Esta sección le enseñará cómo clonar la base del código del servidor, configurar el servidor e iniciar contenedores Docker para garantizar que sus juguetes tengan soporte de backend estable.

Primero clone el código base del servidor Folo desde GitHub.

git clone [email protected]:FoloToy/folotoy-server-self-hosting.git

Luego cambie la configuración del servidor base en el archivo docker-compose.yml por la suya.

NombreDescripciónEjemplo
OPENAI_OPENAI_KEYSu clave API de OpenAI.sk-...i7TL
OPENAI_TTS_KEYSu clave API de OpenAI.sk-...i7TL
OPENAI_WHISPER_KEYSu clave API de OpenAI.sk-...i7TL
AUDIO_DOWNLOAD_URLLa URL del archivo de audio.http://192.168.xx:8082
SPEECH_UDP_SERVER_HOSTLa dirección IP de su servidor.192.168.xx

Luego configure sus roles en el archivo config/roles.json, aquí hay un ejemplo mínimo; para una configuración completa, consulte la documentación de Folotoy .

{
"1": {
"start_text": "Hola, ¿qué puedo hacer por ti?",
"prompt": "You are a helpful assistant."
}
}

Luego inicia los contenedores Docker.

docker compose up -d

Ejecuto el servidor Folo en mi propia máquina, si quieres ejecutarlo en la nube, casi lo mismo. Una cosa a tener en cuenta es que debe exponer los puertos 1883, 8082, 8085, 18083 y 8083 a la red pública.

Para obtener más información, consulte la documentación de Folotoy.

Chatea con tu juguete

Una vez que todo esté listo, es hora de interactuar con tu juguete LLM.

Enciende el interruptor en la parte posterior del juguete para encenderlo. La luz azul parpadeante en los oídos indica que el juguete ha entrado en modo de emparejamiento.

Encienda su teléfono o computadora y seleccione la red inalámbrica "FoloToy-xxxx". Después de un momento, su teléfono o computadora abrirá automáticamente una página de configuración donde podrá establecer a qué red WiFi (SSID y contraseña) conectarse, así como la dirección del servidor (como 192.168.xx) y el número de puerto (mantenga el predeterminado 1883).

Una vez que la red esté configurada y conectada al servidor, presione el botón redondo grande en el medio para iniciar la conversación. Después de que dejes de hablar, FoloToy emitirá un pitido para indicar el final de la grabación.

Los 7 pequeños botones redondos alrededor son botones de cambio de roles. Después de hacer clic, el cambio de rol surte efecto.

Depuración

Ya sea un servidor o un juguete, es posible que encuentre algunos problemas técnicos. Esta sección proporcionará algunos consejos y herramientas de depuración básicos para ayudarle a diagnosticar y resolver posibles problemas y garantizar que sus juguetes LLM puedan funcionar sin problemas.

Depuración del servidor

Para verificar los registros del servidor, ejecute el siguiente comando.

docker compose logs -f

LOG_LEVEL se puede configurar en el archivo docker-compose.yml para controlar el nivel de registro.

Depuración de juguetes

Folo Toy proporciona una forma sencilla de depurar la base del juguete en el puerto serie USB. Puede utilizar la Herramienta web Folo Toy para depurar el juguete.

  1. Conecte el juguete a su computadora mediante un cable USB.
  2. Abra la herramienta web Folo Toy y luego haga clic en el botón "Consola" para conectarse al juguete.
  3. Una vez conectado, debería poder ver los registros en tiempo real desde su dispositivo en la consola.

También hay un LED en el juguete, se iluminará en diferentes colores para indicar el estado del juguete .

Depuración MQTT

Abra el Panel EMQX para comprobar los mensajes MQTT. El nombre de usuario predeterminado es admin y la contraseña es public. De todos modos, cambie la contraseña por una segura después de iniciar sesión.

Personalización avanzada

Para los usuarios avanzados que desean explorar y personalizar más sus juguetes LLM, esta sección presentará cómo ejecutar localmente modelos de lenguaje grandes, usar herramientas como CloudFlare AI Gateway y personalizar la voz de los personajes. Esto le abrirá un mundo más amplio de juguetes DIY LLM.

Ejecute LLM localmente

Ejecutar grandes modelos de lenguaje localmente es algo interesante. Puede ejecutar Llama 2, Gemma y todo tipo de modelos grandes de código abierto de todo el mundo, incluso modelos entrenados por usted mismo. Usando ollama, puedes hacerlo fácilmente. Instale ollama primero y luego ejecute el siguiente comando para ejecutar el modelo Llama 2.

ollama run llama2

Luego, cambie la configuración de roles para usar el modelo LLM local.

{
"1": {
"start_text": "Hola, ¿qué puedo hacer por ti?",
"prompt": "You are a helpful assistant.",
"llm_type": "ollama",
"llm_config": {
"api_base": "http://host.docker.internal:11434",
"model": "llama2"
}
}
}

api_base debe ser la dirección de su servidor ollama y no olvide reiniciar el servidor Folo para que los cambios surtan efecto.

docker compose restart folotoy

Eso es todo, cambia de modelo a Gemma u otros modelos como quieras y disfrútalo.

Utilice la puerta de enlace AI de CloudFlare

AI Gateway de Cloudflare le permite obtener visibilidad y control sobre sus aplicaciones de IA. Al conectar sus aplicaciones a AI Gateway, puede recopilar información sobre cómo las personas usan su aplicación con análisis y registro y luego controlar cómo su aplicación escala con funciones como almacenamiento en caché, limitación de velocidad, así como reintentos de solicitud, respaldo de modelo y más. .

Primero, debe crear una nueva puerta de enlace AI.

Luego edite el archivo docker-compose.yml para cambiar OPENAI_OPENAI_API_BASE a la dirección de su AI Gateway, así:

services:
folotoy:
environment: OPENAI_OPENAI_API_BASE=https://gateway.ai.cloudflare.com/v1/${ACCOUNT_TAG}/${GATEWAY}/openai

Luego tiene un panel para ver métricas sobre solicitudes, tokens, almacenamiento en caché, errores y costos.

Y una página de registro para ver solicitudes individuales, como el mensaje, la respuesta, el proveedor, las marcas de tiempo y si la solicitud fue exitosa, se almacenó en caché o si hubo un error.

Eso es fantástico, ¿no?

Personalización de la voz del rol

Puede personalizar la voz del rol cambiando el campo voice_name en el archivo de configuración del rol.

{
"1": {
"tts_type": "openai-tts",
"tts_config": {
"voice_name": "alloy"
}
}
}

Busque la voz que le guste en la Lista de voces OpenAI TTS.

Edge tts tiene muchas voces para elegir, disfrútalo así:

{
"1": {
"tts_type": "edge-tts",
"tts_config": {
"voice_name": "en-NG-EzinneNeural"
}
}
}

Soporte de la base de conocimientos

Para niveles más altos de personalización, como soporte de base de conocimientos. Se recomienda utilizar Dify, que combina los conceptos de Backend como servicio y LLMOps, cubriendo la pila de tecnología central necesaria para crear aplicaciones nativas de IA generativa, incluido un motor RAG integrado. Con Dify, puede implementar capacidades como Asistentes API y GPT según cualquier modelo.

Centrémonos en el motor RAG integrado, que es un modelo generativo basado en recuperación que se puede utilizar para tareas como preguntas y respuestas, diálogos y resúmenes de documentos. Dify incluye varias capacidades RAG basadas en indexación de texto completo o incrustación de bases de datos vectoriales, lo que permite la carga directa de varios formatos de texto como PDF y TXT. Cargue su base de conocimientos para no tener que preocuparse de que el juguete haga tonterías porque no conoce los conocimientos previos.

Dify puede implementarse por sí solo o utilizar la versión en la nube directamente. La configuración en Folo también es muy sencilla:

{
"1": {
"llm_type": "dify",
"llm_config": {
"api_base": "http://192.168.52.164/v1",
"key": "app-AAAAAAAAAAAAAAAAAAa"
}
}
}

Forma de juguete personalizada

En cuanto al principio de funcionamiento, cualquier juguete puede modificarse. Folo Toy también ofrece el kit de desarrollo de IA Octopus, que puede transformar cualquier juguete común y corriente en un juguete parlante inteligente. El chip es pequeño y liviano y puede caber fácilmente en cualquier tipo de juguete, ya sea de felpa, plástico o madera.

Hice yo mismo un cactus que habla Shaanxi. Usa tu imaginación, puedes ponerla en tus juguetes favoritos, y no es especialmente complicado hacerlo:

  1. abre el juguete
  2. Coloque el kit de desarrollo Octopus AI en él.
  3. cierra el juguete

El servidor todavía usa el mismo. Puede asignar diferentes roles a diferentes juguetes a través de sn, que no se ampliará aquí. Puede consultar el documento de configuración en el sitio web oficial.

Notas de seguridad

Tenga en cuenta que nunca coloque la clave en un lugar público, como GitHub, o se abusará de ella. Si se filtra su clave, elimínela inmediatamente en la plataforma OpenAI y genere una nueva.

También puede usar variables de entorno en docker-compose.yml y pasarlas al iniciar el contenedor, para evitar exponer la clave en el código.

services:
folotoy:
environment:
- OPENAI_OPENAI_KEY=${OPENAI_OPENAI_KEY}
OPENAI_OPENAI_KEY=sk-...i7TL docker compose up -d

En caso de que desee que FoloToy Server esté disponible públicamente en Internet, se recomienda encarecidamente proteger el servicio EMQX y permitir el acceso a EMQX solo con una contraseña. Obtenga más información sobre Seguridad EMQX.

Conclusión

Crear tu propio juguete LLM es un viaje emocionante al mundo de la inteligencia artificial y la tecnología. Ya sea que sea un entusiasta del bricolaje o un principiante, esta guía le proporciona la hoja de ruta para crear algo verdaderamente interactivo y personalizado. Si encuentra dificultades para adquirir Folotoy Core o enfrenta algún problema en el camino, unirse a nuestro grupo de Telegram ofrece apoyo comunitario y asesoramiento de expertos.

Para aquellos que prefieren una solución ya preparada, el producto terminado está disponible para su compra aquí. Esta opción ofrece la misma experiencia interactiva sin necesidad de montaje. Folo Toys también ofrece muchos otros productos que se pueden encontrar aquí. Esta es la dirección de su tienda: https://folotoy.taobao.com/

Compre productos Folo Toy ahora y disfrute de descuentos proporcionando mi código de promoción, F-001–9, cuando se comunique con el servicio de atención al cliente. Puede ahorrar 20 RMB en el Fofo G6, 15 RMB en el Octopus Dev Suit y 10 RMB en el Cactus. La mayoría de los demás artículos también califican para un descuento de 10 RMB, pero comuníquese con el servicio de atención al cliente para realizar una consulta.

Embárquese en esta aventura creativa para darle vida a su compañero de IA, aprovechando el vasto potencial de los juguetes LLM para la educación, el entretenimiento y más.

Enlaces de referencia:

  1. https://medium.com/@chenzhiqing/simplest-guide-to-creating-your-own-llm-toy-in-2024-ab5a5fe5d440
  2. https://docs.folotoy.com/