Passa al contenuto principale

La guida più semplice al fai-da-te del tuo giocattolo LLM nel 2024

· 13 minuti di lettura
CEO of Pu'ersa Technology Co., Ltd.

Il 2024 è arrivato e i giocattoli LLM fai-da-te? Totalmente una cosa adesso. Non sono necessari trucchi tecnologici, solo la tua curiosità. Ho fatto il grande passo, mescolando un po' di programmazione con un sacco di divertimento, e bam... ho creato il mio giocattolo parlante. Se hai voglia di creare facilmente un compagno IA, sei nel posto giusto. Sfatiamo insieme la tecnologia e diamo vita al tuo amico AI. In un mondo in cui la tecnologia si interseca sempre più con la vita quotidiana, creare il proprio giocattolo LLM non solo demistifica l'intelligenza artificiale, ma fornisce anche un passaggio personalizzato alle meraviglie della tecnologia interattiva.

Diamo prima un'occhiata all'effetto finale.

Onestamente, è piuttosto fantastico. Pronto per iniziare? Ti immerviamo!

Come funziona?

Ci sono tre passaggi chiave:

  1. Registrazione: ricevi i dati di registrazione in tempo reale inviati dal giocattolo tramite UDP e chiama l'API STT (Sound-To-Text) per convertire il suono in testo.
  2. Pensiero: dopo aver ricevuto il testo precedente, l'API LLM (Large-Language-Model) verrà immediatamente chiamata per ottenere frasi generate dall'LLM in streaming. Quindi, l'API TTS (Text-To-Sound) viene chiamata per convertire le frasi in discorso umano.
  3. Riproduci audio: i giocattoli riceveranno flussi di file audio TTS (Text-To-Sound) generati dal server FoloToy e li riprodurranno in base all'ordine.

Preparazione prima dello sviluppo

Prima di iniziare a realizzare il tuo giocattolo LLM, è fondamentale comprendere l'hardware, il software e le conoscenze tecniche necessarie. Questa sezione ti guiderà nella preparazione di tutti gli elementi essenziali per garantire un inizio senza intoppi.

Hardware

Folotoy Core: la scheda centrale per conversazione vocale AI ChatGPT funge da cervello del tuo progetto, consentendo interazioni vocali con l'intelligenza artificiale.

Componenti del giocattolo: sono necessari elementi essenziali come microfono, altoparlante, pulsanti, interruttori e alimentatore. Scelgo Alilo Honey Bunny G6 per la sua configurazione pronta all'uso.

Octopus Dev Suit (Altra scelta): ideale per coloro che desiderano aggiornare i giocattoli esistenti con funzionalità di intelligenza artificiale.

Quando effettui un acquisto, fornisci il mio codice promozionale F-001–9 per ricevere uno sconto.

Server

Utilizzando la tua macchina, come un MacBook Pro, assicurati che il tuo giocattolo abbia un backend affidabile per elaborare e rispondere alle interazioni vocali. In alternativa, i servizi cloud come Google Cloud Engine (GCE) possono scalare il tuo progetto per applicazioni più ampie.

Conoscenza

  1. Docker (obbligatorio): comprendere Docker è fondamentale per distribuire software in contenitori, rendendo il progetto portatile e scalabile. Lo uso per avviare il server Folo.
  2. Git (obbligatorio): il controllo della versione è essenziale per gestire la base di codice del tuo progetto. Lo uso per gestire la codebase del server Folo.
  3. MQTT (facoltativo): se miri a una personalizzazione avanzata, la familiarità con MQTT (un protocollo di messaggistica leggero) sarà utile per la comunicazione tra il giocattolo e il server.
  4. EMQX (facoltativo): broker MQTT open source per IoT, IIoT e veicoli connessi. Utilizzato per gestire i tuoi giocattoli.
  5. ollama (facoltativo): se desideri eseguire modelli linguistici di grandi dimensioni a livello locale, è una buona scelta.

Servizi e registrazione

Per dare vita al tuo giocattolo, avrai bisogno dell'accesso a servizi IA specifici. Per questo progetto, ho scelto di utilizzare le offerte di OpenAI:

  1. TTS (Text-to-Speech): il servizio Whisper di OpenAI converte le risposte testuali dell'IA in parlato, rendendo l'interazione naturale.
  2. LLM (Large Language Model): utilizzo dei modelli OpenAI per comprendere e generare risposte testuali simili a quelle umane.
  3. STT (Speech-to-Text): il servizio TTS di OpenAI trascrive le parole pronunciate in testo, consentendo all'IA di comprendere comandi o query vocali.

La cosa più importante è che devi registrarti sulla piattaforma OpenAI e creare una chiave, come sk-...i7TL.

Assembla il tuo giocattolo

Ora è il momento di mettere insieme tutti i pezzi e creare il tuo giocattolo LLM.

I passaggi generali sono i seguenti, si consiglia di guardare prima il tutorial video.

  1. Controlla se la registrazione e la riproduzione di Alilo G6 sono normali.
  2. Utilizzare un cacciavite per svitare le 6 viti sul retro di Alilo G6.
  3. Apri con attenzione l'involucro di Alilo G6, scollega tutte le spine sulla scheda madre, scollega prima la spina di alimentazione, c'è della colla sulla spina, puoi usare un coltello da disegno per aprirla delicatamente, assicurati di non tagliarti la mano.
  4. Svitare le 4 viti sulla scheda madre e rimuoverla.
  5. Sostituisci la scheda madre originale con la scheda madre di FoloToy e stringi 3 viti per fissarla.
  6. Collegare il microfono, la luce, l'altoparlante e le prese di corrente, infine collegare la presa di corrente.
  7. Dopo aver collegato tutte le prese, non chiudere ancora l'involucro né installare le viti. Per prima cosa accendi/spegni la coda del coniglio per vedere se la luce appena installata può accendersi e lampeggiare lentamente in colore blu.
  8. Se non ci sono problemi, installare l'involucro e serrare le viti per completare il processo di sostituzione.

Configura il server

Un forte supporto di backend è la chiave per far capire e rispondere i tuoi giocattoli LLM ai comandi vocali. Questa sezione ti insegnerà come clonare la base di codice del server, configurare il server e avviare i contenitori Docker per assicurarti che i tuoi giocattoli abbiano un supporto back-end stabile.

Prima clona la base di codice del server Folo da GitHub.

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

Quindi modifica la configurazione del server di base nel file docker-compose.yml con la tua.

NomeDescrizioneEsempio
OPENAI_OPENAI_KEYLa tua chiave API OpenAI.sk-...i7TL
OPENAI_TTS_KEYLa tua chiave API OpenAI.sk-...i7TL
OPENAI_WHISPER_KEYLa tua chiave API OpenAI.sk-...i7TL
AUDIO_DOWNLOAD_URLL'URL del file audio.http://192.168.xx:8082
SPEECH_UDP_SERVER_HOSTL'indirizzo IP del tuo server.192.168.xx

Quindi configura i tuoi ruoli nel file config/roles.json, ecco un esempio minimo, per la configurazione completa, fai riferimento alla documentazione Folotoy .

{
"1": {
"start_text": "Ciao, cosa posso fare per te?",
"prompt": "You are a helpful assistant."
}
}

Quindi avvia i contenitori Docker.

docker compose up -d

Eseco il server Folo nella mia macchina, se vuoi eseguirlo nel cloud, quasi lo stesso. Una cosa da notare è che è necessario esporre la porta 1883, 8082, 8085, 18083 e 8083 alla rete pubblica.

Per ulteriori informazioni, fare riferimento alla documentazione di Folotoy.

Chatta con il tuo giocattolo

Una volta che tutto è pronto, è il momento di interagire con il tuo giocattolo LLM.

Accendi l'interruttore sul retro del giocattolo per accenderlo. La luce lampeggiante blu nelle orecchie indica che il giocattolo è entrato in modalità di accoppiamento.

Accendi il tuo telefono o computer e seleziona la rete wireless "FoloToy-xxxx". Dopo un momento, il telefono o il computer aprirà automaticamente una pagina di configurazione in cui è possibile impostare a quale rete WiFi (SSID e password) connettersi, nonché l'indirizzo del server (come 192.168.x.x) e il numero di porta (mantenere il 1883 predefinito).

Dopo che la rete è stata configurata e connessa al server, premere il grande pulsante rotondo al centro per avviare la conversazione. Dopo aver smesso di parlare, FoloToy emetterà un segnale acustico per indicare la fine della registrazione.

I 7 piccoli pulsanti rotondi intorno sono pulsanti di commutazione di ruolo. Dopo aver fatto clic, l'interruttore di ruolo ha effetto.

Debug

Che si tratti di un server o di un giocattolo, potresti incontrare alcuni problemi tecnici. Questa sezione fornirà alcuni suggerimenti e strumenti di debug di base per aiutarti a diagnosticare e risolvere possibili problemi e garantire che i tuoi giocattoli LLM possano funzionare senza intoppi.

Debug del server

Per controllare i registri del server, eseguire il seguente comando.

docker compose logs -f

LOG_LEVEL può essere impostato nel file docker-compose.yml per controllare il livello di registro.

Debug del giocattolo

Folo Toy fornisce un modo semplice per eseguire il debug della base del giocattolo sulla porta seriale USB. Puoi usare il Folo Toy Web Tool per eseguire il debug del giocattolo.

  1. Collega il giocattolo al computer utilizzando un cavo USB.
  2. Apri il Folo Toy Web Tool, quindi fai clic sul pulsante "Console" per connetterti al giocattolo.
  3. Una volta connesso, dovresti essere in grado di vedere i registri in tempo reale dal tuo dispositivo nella console.

Inoltre c'è un LED sul giocattolo, si illuminerà in diversi colori per indicare lo stato del giocattolo.

Debug MQTT

Aprire la EMQX Dashboard per controllare i messaggi MQTT. Il nome utente predefinito è admin e la password è public. Comunque, cambia la password in una sicura dopo aver effettuato l'accesso.

Personalizzazione avanzata

Per gli utenti avanzati che vogliono esplorare ulteriormente e personalizzare i loro giocattoli LLM, questa sezione introdurrà come eseguire localmente modelli linguistici di grandi dimensioni, utilizzare strumenti come CloudFlare AI Gateway e personalizzare la voce dei personaggi. Questo aprirà un mondo più ampio di giocattoli LLM fai-da-te per te.

Esegui LLM localmente

Eseguire modelli linguistici di grandi dimensioni a livello locale è una cosa interessante. Puoi eseguire Llama 2, Gemma e tutti i tipi di grandi modelli open-source da tutto il mondo, anche modelli addestrati da soli. Usando ollama, puoi farlo facilmente. Installa prima ollama, quindi eseguire il seguente comando per eseguire il modello Llama 2.

ollama run llama2

Quindi, cambiare la configurazione del ruolo per utilizzare il modello LLM locale.

{
"1": {
"start_text": "Ciao, cosa posso fare per te?",
"prompt": "You are a helpful assistant.",
"llm_type": "ollama",
"llm_config": {
"api_base": "http://host.docker.internal:11434",
"model": "llama2"
}
}
}

L'api_base dovrebbe essere l'indirizzo dell'indirizzo del tuo server ollama e non dimenticare di riavviare il server Folo per far sì che le modifiche abbiano effetto.

docker compose restart folotoy

Questo è tutto, cambia modello con Gemma o altri modelli come vuoi e divertiti.

Usa CloudFlare AI Gateway

L'AI Gateway di Cloudflare ti consente di ottenere visibilità e controllo sulle tue app di intelligenza artificiale. Collegando le tue app a AI Gateway, puoi raccogliere informazioni su come le persone utilizzano la tua applicazione con analisi e registrazione e quindi controllare come la tua applicazione scala con funzionalità come la memorizzazione nella cache, la limitazione della velocità, nonché i tentativi di richiesta, il fallback del modello e altro ancora.

Per prima cosa, devi creare un nuovo gateway AI.

Quindi modifica il file docker-compose.yml per cambiare OPENAI_OPENAI_API_BASE con l'indirizzo del tuo gateway AI, in questo modo:

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

Quindi hai una dashboard per vedere le metriche su richieste, token, memorizzazione nella cache, errori e costi.

E una pagina di registrazione per vedere le singole richieste, come il prompt, la risposta, il provider, i timestamp e se la richiesta è andata a buon fine, memorizzata nella cache o se si è verificato un errore.

È fantastico, vero?

Costomizzazione vocale del ruolo

È possibile personalizzare la voce del ruolo modificando il campo voice_name nel file di configurazione del ruolo.

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

Trova la voce che ti piace nell'Elenco voci TTS OpenAI.

Edge tts ha molte voci tra cui scegliere, divertiti in questo modo:

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

Supporto della Knowledge base

Per livelli più elevati di personalizzazione, come il supporto della knowledge base. Si consiglia di utilizzare Dify, che combina i concetti di Backend as Service e LLMOps, coprendo lo stack tecnologico di base necessario per creare applicazioni native di intelligenza artificiale generativa, incluso un motore RAG integrato. Con Dify, puoi auto-distribuire funzionalità come Assistants API e GPT in base a qualsiasi modello.

Concentriamoci sul motore RAG integrato, che è un modello generativo basato sul recupero che può essere utilizzato per attività come domande e risposte, dialogo e riepilogo dei documenti. Dify include varie funzionalità RAG basate sull'indicizzazione full-text o sull'incorporamento del database vettoriale, consentendo il caricamento diretto di vari formati di testo come PDF e TXT. Carica la tua base di conoscenze, in modo da non doverti preoccupare che il giocattolo fa sciocchezze perché non conosci le conoscenze di base.

Dify può essere distribuito da solo o utilizzare direttamente la versione cloud. Anche la configurazione su Folo è molto semplice:

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

Forma di giocattolo personalizzata

In termini di principio di funzionamento, qualsiasi giocattolo può essere modificato. Folo Toy offre anche l'Octopus AI Development Kit, che può trasformare qualsiasi giocattolo ordinario in un giocattolo parlante intelligente. Il chip è piccolo e leggero e può facilmente adattarsi a qualsiasi tipo di giocattolo, che sia peluche, plastica o legno.

Ho fatto da te un cactus che parla Shaanxi. Usa la tua immaginazione, puoi metterla nei tuoi giocattoli preferiti, e non è particolarmente complicato farlo:

  1. apri il giocattolo
  2. Mettici il kit di sviluppo Octopus AI
  3. chiudere il giocattolo

Il server usa ancora lo stesso. Puoi assegnare ruoli diversi a diversi giocattoli tramite sn, che non verrà ampliato qui. Puoi controllare il documento di configurazione sul sito ufficiale.

Note di sicurezza

Si prega di notare che non mettere mai la chiave in un luogo pubblico, come GitHub, o verrà abusata. Se la tua chiave è trapelata, eliminala immediatamente sulla piattaforma OpenAI e generane una nuova.

Puoi anche usare le variabili di ambiente in docker-compose.yml e passarle all'avvio del contenitore, in modo da evitare di esporre la chiave nel codice.

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

Nel caso in cui si desideri rendere FoloToy Server pubblicamente disponibile su Internet, si consiglia vivamente di proteggere il servizio EMQX e consentire l'accesso a EMQX solo con una password. Scopri di più su EMQX Security.

Conclusione

Creare il tuo giocattolo LLM è un viaggio emozionante nel mondo dell'IA e della tecnologia. Che tu sia un appassionato di fai da te o un principiante, questa guida fornisce la tabella di marcia per creare qualcosa di veramente interattivo e personalizzato. Se incontri difficoltà nell'acquisizione del Folotoy Core o affronti problemi lungo la strada, l'adesione al nostro gruppo Telegram offre supporto della comunità e consulenza di esperti.

Per coloro che preferiscono una soluzione ready-made, il prodotto finito è disponibile per l'acquisto qui. Questa opzione offre la stessa esperienza interattiva senza la necessità di assemblaggio. I giocattoli Folo offrono anche molti altri prodotti che si possono trovare qui. Questo è l'indirizzo del loro negozio: https://folotoy.taobao.com/

Acquista subito i prodotti Folo Toy e goditi gli sconti fornendo il mio codice promozionale, F-001–9, quando contatti il servizio clienti. Puoi risparmiare 20 RMB sul Fofo G6, 15 RMB sul Octopus Dev Suit e 10 RMB sul Cactus. La maggior parte degli altri articoli ha anche diritto a uno sconto di 10 RMB, ma si prega di contattare il servizio clienti per chiedere informazioni.

Intraprendi questa impresa creativa per dare vita al tuo compagno di intelligenza artificiale, sfruttando il vasto potenziale dei giocattoli LLM per l'istruzione, l'intrattenimento e oltre.

Link di riferimento:

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