Rust AI Stream Analyzer Twitch Bot
RSLLM adalah pipa AI 100% dalam karat untuk kode transformator/tensor yang memanfaatkan kerangka lilin dari Huggingface. Ini mewakili pendekatan bahasa pemrograman sistem untuk interaksi model AI dan analisis aliran. Ini dapat berjalan secara lokal pada GPU, fokus pada dukungan perangkat MacOS yang dilengkapi dengan GPU lengan M1/M2/M3. Pipa AI ini dirancang untuk pengembang dan peneliti yang bertujuan untuk mengintegrasikan model bahasa besar lokal (LLM) dengan karat, melewati kebutuhan akan dependensi eksternal dan kode Python untuk chatbots dan program AI lainnya. Pada intinya, RSLLM menekankan pemanfaatan LLM lokal untuk menghasilkan teks, gambar, dan pidato dalam lingkungan karat, menawarkan rangkaian fitur yang kuat untuk analisis aliran data real-time dan pembuatan konten yang digerakkan AI. RSLLM dapat menjalankan bot Chatnell Channell Twitch dan NDI Video/Audio dengan gambar difusi stabil yang dihasilkan dan output ucapan TTS melalui perangkat lunak yang kompatibel dengan NDI. Anda dapat mengatur OBS untuk mengambil umpan NDI dan menyiapkan saluran Twitch Anda kemudian memiliki saluran obrolan dan pembicaraan lengkap/gambar yang menghasilkan saluran kedutan yang dapat disesuaikan. Sepenuhnya digerakkan AI, Anda dapat mengotomatiskan streamer kedutan. Anda juga dapat menganalisis aliran MPEGTS atau statistik sistem OS juga, jika diinginkan Anda dapat menggabungkan keduanya dan meminta pengguna obrolan berkomentar dan meminta aliran menganalisisnya secara efektif.
Fitur utama
- LLM Lokal : Memanfaatkan LLM berbasis karat, Mistral dan Gemma, untuk interaksi AI langsung dan efisien, memprioritaskan eksekusi lokal untuk memanfaatkan kekuatan penuh GPU logam macOS.
- Analisis AI yang komprehensif : Menanamkan penganalisa AI canggih yang mampu memproses input dan menghasilkan output di seluruh teks, suara, ucapan, dan gambar, memfasilitasi aliran konten yang dihasilkan AI yang mulus. (Bekerja sedang berlangsung)
- Integrasi Suara dan Pidato : Berencana untuk menggabungkan Whisper untuk interaksi yang digerakkan oleh suara, mirip dengan Alexa, yang memungkinkan pengguna untuk berkomunikasi dengan toolkit menggunakan perintah suara dan menerima input teks streaming sebagai tanggapan. (Fitur yang direncanakan)
- Pembuatan gambar dan output NDI : Mendukung pembuatan gambar dari deskripsi teks dan output melalui NDI untuk berbagai aplikasi, termasuk pembuatan dan penyiaran konten real-time. (Dalam pengujian beta)
- Dukungan TTS : Lilin mengimplementasikan TTS menggunakan Metavoice (default, WIP), OpenAI TTS API (berkualitas tinggi, waktu-nyata), dan MIMIC3 TTS API (lokal, gratis). Metavoice sedang dioptimalkan untuk GPU logam, sementara OpenAI TTS API menghasilkan pidato premium dengan biaya. MIMIC3 TTS API membutuhkan menjalankan Mimic3-Server tetapi menawarkan alternatif yang baik untuk OpenAI TTS API. Mimic3 github
- Twitch Chat Interactive AI : Twitch Chat Terpadu untuk Interaksi AI Real-Time, memungkinkan pengguna untuk terlibat dengan toolkit melalui perintah obrolan dan menerima respons yang dihasilkan AI.
- Pembuatan gambar difusi yang stabil : Mendukung difusi lilin yang stabil atau server API otomatis111111. https://github.com/automatic1111/stable-diffusion-webui/
Komponen inti
Integrasi Kerangka Lilin
Candle, sebuah proyek oleh Huggingface, menawarkan LLM asli karat seperti Mistral dan Gemma, dioptimalkan untuk GPU logam pada macOS. Integrasi ini memfasilitasi eksekusi lokal LLM, memastikan kinerja tinggi dan latensi rendah dalam interaksi model AI.
Dukungan API OpenAI untuk llama.cpp llm server backend
Sementara fokus utama RSLLM adalah menjalankan LLM lokal, ini juga memberikan dukungan untuk API OpenAI, memungkinkan pengguna untuk memanfaatkan model AI eksternal bila diperlukan. Fitur ini memastikan fleksibilitas dan penerapan yang luas dalam berbagai proyek yang digerakkan AI menggunakan model khusus.
Analisis AI real-time dan pembuatan konten
RSLLM unggul dalam menganalisis aliran data real-time dan menghasilkan konten yang digerakkan AI, termasuk teks, gambar, dan ucapan. Ini bertujuan untuk membuat model interaksi dinamis di mana input suara dapat dikonversi menjadi perintah teks untuk LLM, dan output yang dihasilkan dapat dialirkan kembali sebagai suara atau konten visual.
Instalasi dan Konfigurasi
Prasyarat
- Pastikan karat dan kargo dipasang. Panduan Instalasi Karat.
- Idealnya sistem MacOS dengan GPU lengan M1/M2/M3. Nvidia mungkin bekerja, membutuhkan seseorang untuk memperbaikinya karena saya tidak memiliki NVIDIA GPU.
- Perpustakaan NDI untuk Obs NDI Streaming Output. Ini opsional.
Panduan Pengaturan
Klon Repositori :
git clone https://github.com/groovybits/rsllm.git
Arahkan ke Direktori Proyek :
Kompilasi dengan dukungan GPU logam dan dukungan NDI SDK :
./scripts/compile.sh # Script handles NDI SDK dependency and DYLD_LIBRARY_PATH
Konfigurasi
- Salin
.env.example to .env dan sesuaikan pengaturan, termasuk tombol API OpenAI jika bermaksud menggunakan model AI eksternal.
Penggunaan
RSLLM dirancang untuk memfasilitasi berbagai operasi yang digerakkan AI, dari menghasilkan konten berbasis teks hingga menganalisis aliran jaringan dan memproses input visual dan audio. Fitur canggih seperti output audio NDI dan pemrosesan input suara-ke-teks sedang dalam pengembangan, bertujuan untuk meningkatkan kemampuan interaktif toolkit.
Contoh Perintah
Gunakan skrip di direktori ./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
Disiarkan untuk obs dengan NDI dengan pipa penuh :
./scripts/broadcast_personality.sh buddha
Berjalan dengan statistik lilin dan OS untuk analisis sistem AI :
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. "
Kemampuan output yang ditingkatkan dan fitur mendatang
Output NDI untuk gambar dan Audio Pidato TTS
RSLLM meningkatkan kemampuan outputnya untuk memasukkan dukungan NDI (Antarmuka Perangkat Jaringan) untuk audio gambar dan TTS (teks-ke-speech), memfasilitasi streaming video latensi rendah berkualitas tinggi melalui jaringan IP.
- (Opsional) Instalasi NDI SDK : Skrip Compile.sh akan mengunduh libndi.dylib untuk Anda. Jika diinginkan, Anda dapat mengunduh dan menginstal NDI SDK dari sini. SDK ini berguna untuk melihat output NDI dan menjelajahi alat lain.
- Langkah Konfigurasi :
- Tambahkan
--features ndi ke perintah build kargo untuk memasukkan dukungan NDI dalam build Anda. - Jalankan
scripts/compile.sh , yang akan mengambil libndi.dylib yang paling cocok untuk macOS. - Untuk memastikan perpustakaan dikenali dengan benar saat membangun dengan
cargo --features=ndi , atur variabel lingkungan DYLD_LIBRARY_PATH :
export DYLD_LIBRARY_PATH= ` pwd ` : $DYLD_LIBRARY_PATH
- Konfigurasi Tambahan : Masuk ke hub HuggingFace melalui CLI dapat menyelesaikan beberapa peringatan potensial. Jalankan
huggingface-cli login untuk mengotentikasi.
Metavoice TTS Text to Speect (WIP)
Lilin, kerangka kerja inti karat inti kami untuk interaksi LLM, sekarang termasuk metavoice, teknologi teks-ke-speech (TTS) yang inovatif. Ketika fitur ini membaik, ini akan memungkinkan LLM, TTI (Text-to-Image), dan fungsionalitas TTS, TTS, terintegrasi dengan mulus dengan optimasi GPU logam untuk MacOS.
- Status Pengembangan : Integrasi Metavoice dilakukan dan dioptimalkan dalam lilin agar sesuai dengan kualitas implementasi referensi.
- Manfaat yang diantisipasi : Setelah sepenuhnya dioptimalkan, MetaVoice akan secara signifikan meningkatkan kemampuan toolkit untuk menghasilkan pidato seperti hidup dari teks tanpa biaya dan dengan latensi rendah pada LLM lokal. Ini juga akan memberikan kemampuan untuk belajar sekali-sekali belajar dari klip kecil dan menghasilkan pidato darinya. Untuk saat ini, Anda mungkin ingin menggunakan OpenAi untuk generasi wicara yang berkualitas/real-time.
Misi RSLLM adalah untuk meneliti dan mengeksplorasi implementasi toolkit berkinerja tinggi yang serba guna untuk pembuatan dan analisis konten yang digerakkan oleh AI pada macOS, memanfaatkan potensi penuh GPU logam dan efisiensi Rust.
Peta jalan
Prioritas:
- Lestarikan riwayat menggunakan database lokal (misalnya SQLite atau MongoDB) dan masukkan ke dalam chroma db untuk kain.
- MPEGTS mengobrol untuk analisis bentuk bebas atas data aliran MPEG-TS saat ini dan historis.
- Tingkatkan Latensi Gambar/TTS dan Koordinasi Output Async. Gunakan pre-queue NDI untuk gambar dan audio untuk memastikan sinkronisasi dan meminimalkan latensi.
- Menerapkan RAG (Retrieval Augmented Generation) menggunakan kromium untuk caching dan embeddings dokumen, memberikan konteks LLM berbasis dokumentasi yang ditambah.
- Gabungkan perbaikan metavoice dari lilin saat tersedia (WIP).
- Menerapkan hash perseptual (berbasis DCT64) untuk sidik jari bingkai untuk mendeteksi perubahan dalam bingkai video, mengenali dan mempelajari urutan konten yang mengulangi, memverifikasi istirahat komersial, dan mendeteksi insersi iklan. Integrasikan SCTE-35 dan pertahankan basis data konten sidik jari untuk berbagai pemeriksaan kualitas, konfirmasi kesetiaan break/logo, dan deteksi keberadaan.
- Aktifkan mode daemon untuk menjalankan dan mendengarkan permintaan melalui input nolomq dan lulus ke output.
- Perluas opsi untuk LLM dan API OpenAI.
Peningkatan di masa depan:
- Memanfaatkan FFMPEG-NEXT-SYS untuk memproses video dan audio secara real-time untuk menghasilkan bingkai, audio, dan teks-ke-video, serta mengubah video dan membuat video suasana hati atau cerita bertema. Jelajahi kemungkinan menggabungkan LLM dengan FFMPEG.
- Tingkatkan MPEGTS Analyzer untuk analisis real-time aliran MPEG-TS, pelaporan, dan deteksi masalah yang digerakkan AI.
- Tingkatkan Analisis Jaringan dan Sistem.
- Manfaatkan Chroma DB untuk Rag dengan dokumen untuk menambah petunjuk dengan informasi yang relevan.
- Menerapkan proto Cap'n untuk serialisasi, deserialisasi, dan komunikasi protokol zeromq modular.
- Integrasi metamusik untuk generasi musik berbasis suasana hati berdasarkan hasil.
- Kembangkan pembuatan video kepala berbicara dengan konteks bingkai yang konsisten, memastikan objek tetap sama dalam bingkai.
- Menerapkan ucapan-ke-teks menggunakan lilin Whisper untuk input audio, konsumsi LLM, dan subtitling video.
- Izinkan opsi input bentuk bebas untuk LLM untuk menafsirkan niat pengguna.
- Jelajahi pembuatan kode dinamis di Python untuk tugas -tugas baru seperti pemrosesan video (pertimbangkan risiko).
- Menerapkan output iteratif dan multi-generasi dengan garis besar yang mengarah ke beberapa operan sampai hasil akhir tercapai.
- Memanfaatkan pidato untuk teks dengan lilin bisikan untuk input audio, memungkinkan perintah suara ke LLM untuk percakapan AI.
Berkontribusi
Kontribusi disambut dengan hangat, terutama di bidang -bidang seperti pengembangan fitur, optimasi kinerja, dan dokumentasi. Keahlian Anda dapat secara signifikan meningkatkan kemampuan toolkit dan pengalaman pengguna.
Lisensi
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk informasi terperinci.
Ucapan Terima Kasih
- Candle Rust Transformers/Tensors By Huggingface: Candle
- Openai untuk spesifikasi API: OpenAI
- Openai untuk Integrasi TTS: OpenAI
- Metavoice untuk Integrasi TTS: Metavoice
- Mimic3 untuk integrasi TTS: mimic3
- Berbisik untuk berbicara ke teks: berbisik
- Google Gemini LLM: Gemini
- Mistral LLM: Mistral
Pengarang
Chris Kennedy, memimpin pengembangan solusi AI inovatif dengan MacOS Metal GPU Rust LLM Toolkit. Februari 2024.
Kami berkomitmen untuk mendorong batas-batas integrasi AI dengan teknologi video dan input/output multimodal pada CPU lengan macOS dalam karat murni, memastikan pengembang media dan peneliti memiliki akses ke alat yang kuat, efisien, dan serbaguna untuk proyek yang digerakkan AI.