Rust Ai Stream Analyzer Twitch Bot
RSLLM es AI Pipeline 100% en Rust para el código de transformador/tensor que está aprovechando el marco de la vela de Huggingface. Representa un enfoque de lenguaje de programación de sistemas para la interacción del modelo de IA y el análisis de flujo. Puede ejecutarse localmente en GPU, se centra en el soporte de dispositivos MacOS equipados con GPU M1/M2/M3 ARM. Esta tubería de IA está diseñada para desarrolladores e investigadores que tienen como objetivo integrar modelos locales de lenguaje grande (LLM) con óxido, evitando la necesidad de dependencias externas y código Python para chatbots y otros programas de IA. En esencia, RSLLM enfatiza la utilización de LLM locales para generar texto, imágenes y habla dentro de un entorno de óxido, ofreciendo un conjunto robusto de características para el análisis de flujo de datos en tiempo real y la creación de contenido impulsado por la IA. RSLLM puede ejecutar un video/audio de Twitch Channell Chat y NDI con imágenes de difusión estables generadas y salida de voz TTS a través de un software compatible con NDI. Puede configurar OBS para tomar la alimentación NDI y configurar su canal Twitch y luego tener un chat y hablar/imagen para generar el canal Twitch personalizable. Completamente impulsado por la IA, puede automatizar un poco un streamer de twitch. También puede analizar las transmisiones de MPEGTS o las estadísticas del sistema del sistema operativo también, si lo desea, puede combinar los dos y hacer que los usuarios de chat comenten y consulten la transmisión que lo analiza de manera efectiva.
Características clave
- Local LLM : utiliza LLM basados en Rust, Mistral y Gemma, para interacciones de IA directas y eficientes, priorizando la ejecución local para aprovechar toda la potencia de las GPU de MacOS Metal.
- Analizador de IA integral : incorpora un analizador AI sofisticado capaz de procesar entradas y generar salidas a través de texto, voz, voz e imágenes, facilitando un flujo perfecto de contenido generado por IA. (Trabajo en progreso)
- Integración de voz y habla : planea incorporar Whisper para interacciones impulsadas por la voz, similar a Alexa, lo que permite a los usuarios comunicarse con el kit de herramientas utilizando comandos de voz y recibir entradas de texto de transmisión en respuesta. (Característica planificada)
- Generación de imágenes y salida NDI : admite la generación de imágenes a partir de descripciones de texto y la salida a través de NDI para una amplia gama de aplicaciones, incluida la creación y transmisión de contenido en tiempo real. (En pruebas beta)
- Soporte de TTS : la vela implementa TTS utilizando Metavoice (predeterminado, WIP), API TTS OpenAI (alta calidad, tiempo real) y API TTS MIMIC3 (local, libre). Metavoice se está optimizando para las GPU metálicas, mientras que la API de OpenAI TTS genera un discurso premium a un costo. MIMIC3 TTS API requiere ejecutar el servidor MIMIC3, pero ofrece una buena alternativa a la API de OpenAI TTS. Mimic3 github
- Twitch Chat Interactive AI : chat de contracción integrada para interacciones de IA en tiempo real, lo que permite a los usuarios interactuar con el conjunto de herramientas a través de comandos de chat y recibir respuestas generadas por AI.
- Generación de imágenes de difusión estable : admite difusión estable de vela o el servidor API automático111111. https://github.com/automatic1111/stable-diffusion-webui/
Componentes centrales
Integración del marco de las velas
Candle, un proyecto de Huggingface, ofrece LLM nativos de óxido como Mistral y Gemma, optimizado para GPU de metal en MacOS. Esta integración facilita la ejecución local de LLM, asegurando un alto rendimiento y baja latencia en las interacciones del modelo de IA.
Soporte de API de OpenAI para Llama.CPP LLM Server Backend
Si bien el enfoque principal de RSLLM es ejecutar LLM locales, también proporciona soporte para la API de OpenAI, lo que permite a los usuarios aprovechar los modelos de IA externos cuando sea necesario. Esta característica garantiza la versatilidad y la amplia aplicabilidad en varios proyectos impulsados por la IA utilizando modelos personalizados.
Análisis de IA en tiempo real y generación de contenido
RSLLM se destaca en el análisis de los flujos de datos en tiempo real y la generación de contenido impulsado por la IA, incluidos textos, imágenes y discursos. Su objetivo es crear un modelo de interacción dinámica donde las entradas de voz se pueden convertir en comandos de texto para el LLM, y las salidas generadas se pueden transmitir como voz o contenido visual.
Instalación y configuración
Requisitos previos
- Asegúrese de que se instalen el óxido y la carga. Guía de instalación de óxido.
- Idealmente, un sistema MacOS con una GPU ARM M1/M2/M3. Nvidia puede funcionar, necesitar a alguien que lo arregle, ya que no tengo GPU NVIDIA.
- Biblioteca NDI para la salida de transmisión Obs NDI. Esto es opcional.
Guía de configuración
Clon el repositorio :
git clone https://github.com/groovybits/rsllm.git
Navegue al directorio del proyecto :
Compilar con soporte de GPU de metal y soporte de SDK NDI :
./scripts/compile.sh # Script handles NDI SDK dependency and DYLD_LIBRARY_PATH
Configuración
- Copie
.env.example a .env y personalice la configuración, incluida la tecla API de OpenAI si tiene la intención de usar modelos AI externos.
Uso
RSLLM está diseñado para facilitar una amplia gama de operaciones impulsadas por la IA, desde la generación de contenido basado en texto hasta analizar las secuencias de red y el procesamiento de entradas visuales y de audio. Las características avanzadas como la salida de audio NDI y el procesamiento de entrada de voz a texto están en desarrollo, con el objetivo de mejorar las capacidades interactivas del kit de herramientas.
Comandos de ejemplo
Use los scripts en el directorio ./scripts.
./scripts/compile.sh # Build RsLLM
./scripts/broadcast_personality.sh # Full command line shown for most features (use personalities in ./personalities dir as an arg)
./scripts/mpeg_analyzer.sh # Experimental MpegTS Analyzer mode (WIP)
./scripts/mpeg_poetry.sh # Fun poetry about MpegTS Broadcasting with stream input prompt injection
./scripts/system_health.sh # System health status from OS Stats prompt injection
Transmitido a Obs con NDI con tuberías completos :
./scripts/broadcast_personality.sh buddha
Ejecutando con estadísticas de vela y sistema operativo para el análisis del sistema de IA :
cargo run --release --features fonts,ndi,mps,metavoice,audioplayer --
--candle_llm gemma
--model-id " 2b-it "
--max-tokens 800
--temperature 0.8
--ai-os-stats
--sd-image
--ndi-images
--ndi-audio
--system-prompt " You create image prompts from OS system stats health state. "
--query " How is my system doing? Create a report on the system health as visual image descriptions. "
Capacidades de salida mejoradas y características futuras
Salida NDI para imágenes y audio de discurso TTS
RSLLM está mejorando sus capacidades de salida para incluir el soporte de NDI (interfaz de dispositivo de red) para el audio de imágenes y TTS (texto a voz), facilitando la transmisión de video de alta calidad y baja latencia a través de las redes IP.
- (Opcional) Instalación de NDI SDK : El script Compile.sh descargará el libndi.dylib para usted. Si lo desea, puede descargar e instalar el NDI SDK desde aquí. Este SDK es útil para ver la salida NDI y explorar otras herramientas.
- Pasos de configuración :
- Agregue
--features ndi al comando de compilación de carga para incluir el soporte NDI en su compilación. - Ejecute
scripts/compile.sh , que recuperará el libndi.dylib que funciona mejor para macOS. - Para asegurarse de que la biblioteca se reconoce correctamente cuando se construye con
cargo --features=ndi , establezca la variable de entorno DYLD_LIBRARY_PATH :
export DYLD_LIBRARY_PATH= ` pwd ` : $DYLD_LIBRARY_PATH
- Configuración adicional : Iniciar sesión en el HuB Huggingface a través de la CLI puede resolver algunas advertencias potenciales. Ejecute
huggingface-cli login para autenticar.
Metavoice TTS Text to Speech (WIP)
Velle, nuestro marco de Rust Core para la interacción LLM, ahora incluye metavoice, una innovadora tecnología de texto a voz (TTS). A medida que esta característica mejora, habilitará las funcionalidades LLM, TTI (texto a imagen) y TTS a base de óxido puro, integradas sin problemas con las optimizaciones de GPU de metal para los MacOS.
- Estado de desarrollo : la integración de metavoice se realiza y se optimiza en la vela para que coincida con la calidad de la implementación de referencia.
- Beneficios anticipados : una vez totalmente optimizado, Metavoice mejorará significativamente la capacidad del conjunto de herramientas para generar un habla realista a partir del texto sin costo y con baja latencia en una LLM local. También proporcionará la capacidad de aprender una voz de un pequeño clip y generar discurso a partir de él. Por ahora, es posible que desee utilizar OpenAI para la Generación de Audio de Speech de Calidad/En tiempo real.
La misión de RSLLM es investigar y explorar la implementación de un kit de herramientas versátil y de alto rendimiento para la creación y análisis de contenido impulsado por la IA en MacOS, aprovechando todo el potencial de las GPU metálicas y la eficiencia de Rust.
Hoja de ruta
Prioridad:
- Preserve el historial utilizando una base de datos local (por ejemplo, SQLite o MongoDB) y aliméntelo en un DB de Chroma para RAG.
- MPEGTS Chat de análisis de forma libre sobre datos de flujo MPEG-TS actuales e históricos.
- Mejorar la latencia de imagen/TTS y la coordinación de la producción de asíncrono. Utilice una pre-cola de NDI para imágenes y audio para garantizar la sincronización y minimizar la latencia.
- Implemente el trapo (generación de recuperación aumentada) utilizando el cromo para el almacenamiento en caché e integración de documentos, proporcionando un contexto LLM basado en la documentación aumentada.
- Fusionar las soluciones de metavoice de la vela a medida que están disponibles (WIP).
- Implemente hashes perceptuales (basado en DCT64) para las huellas dactilares de cuadro para detectar cambios en los marcos de video, reconocer y aprender secuencias de contenido repetidas, verificar las rupturas comerciales y detectar inserciones publicitarias. Integre SCTE-35 y mantenga una base de datos de contenido de huellas digitales para varias comprobaciones de calidad, confirmación de fidelidad de descanso/logotipo y detección de presencia.
- Habilite el modo Daemon para ejecutar y escuche las solicitudes a través de la entrada ZEROMQ y pase a la salida.
- Expanda opciones para LLM y la API de OpenAI.
Mejoras futuras:
- Utilice ffmpeg-next-sys para procesar videos y audio en tiempo real para generar marcos, audio y texto a video, así como transformar videos y crear videos de humor o historias temáticas. Explore las posibilidades de combinar un LLM con FFMPEG.
- Mejorar el analizador MPEGTS para el análisis en tiempo real de las transmisiones MPEG-TS, los informes y la detección de problemas impulsados por la IA.
- Mejorar los analizadores de redes y sistemas.
- Utilice Chroma DB para RAG con documentos para aumentar las indicaciones con información relevante.
- Implemente CAP'N Proto para la serialización, la deserialización y la comunicación modular del protocolo ZEROMQ.
- Integre el metamusico para la generación musical basada en el estado de ánimo basada en resultados.
- Desarrolle la generación de videos de cabeza parlante con un contexto de marco consistente, asegurando que los objetos sigan siendo los mismos dentro de los cuadros.
- Implemente el habla a texto utilizando la vela Whisper para la entrada de audio, la ingestión de LLM y la subtitulación de video.
- Permitir opciones de entrada Freeform para que el LLM interprete las intenciones de los usuarios.
- Explore la generación de código dinámico en Python para nuevas tareas como el procesamiento de videos (considere los riesgos).
- Implemente la salida iterativa y multigeneracional con contornos que conducen a múltiples pases hasta que se alcanza un resultado final.
- Utilice el discurso en el texto con una vela Whisper para la entrada de audio, lo que permite comandos de voz al LLM para la IA conversacional.
Que contribuye
Las contribuciones son bienvenidas, especialmente en áreas como el desarrollo de características, la optimización del rendimiento y la documentación. Su experiencia puede mejorar significativamente las capacidades del conjunto de herramientas y la experiencia del usuario.
Licencia
Este proyecto tiene licencia bajo la licencia MIT. Consulte el archivo de licencia para obtener información detallada.
Expresiones de gratitud
- Transformadores/tensores de óxido de vela de Huggingface: Vela
- OpenAI para especificaciones de API: OpenAI
- OpenAI para la integración de TTS: OpenAi
- Metavoice para la integración de TTS: Metavoice
- MIMIC3 para la integración de TTS: MIMIC3
- Susurros para el discurso al texto: Whisper
- Google Gemini LLM: Géminis
- Mistral LLM: Mistral
Autor
Chris Kennedy, liderando el desarrollo de soluciones innovadoras de IA con el kit de herramientas MacOS Metal GPU Rust LLM. Febrero de 2024.
Estamos comprometidos a impulsar los límites de la integración de IA con tecnología de video y entrada/salida multimodal en CPU MacOS ARM en Rust Pure Rust, asegurando que los desarrolladores e investigadores de los medios tengan acceso a herramientas potentes, eficientes y versátiles para sus proyectos basados en IA.