Auto GPT spiegato: una guida completa ad Auto-GPT per il tuo caso d’uso specifico
Questo articolo è stato pubblicato originariamente su The Sequence e viene ripubblicato qui con autorizzazione.
Nel dicembre del 2022, ChatGPT, l’interfaccia chatbot basata su GPT, ha introdotto i modelli linguistici di grandi dimensioni (LLM) nei media mainstream. Da allora sono nate numerose app GPT. Una delle più popolari? Auto-GPT. Un’app open-source basata su GPT che mira a rendere GPT completamente autonomo. In poche settimane ha accumulato oltre 120k stelle su GitHub, superando PyTorch, Scikit-Learn, HuggingFace Transformers e qualsiasi altra libreria AI/ML open-source ti venga in mente.
Cosa rende Auto-GPT un progetto così popolare? Innanzitutto, mostra promesse nel realizzare la visione, da esso stesso descritta, di GPT autonomo. Auto-GPT ha “agenti” integrati per cercare sul web, parlare, tenere traccia delle conversazioni e altro ancora. Le persone lo hanno usato per ordinare pizza, programmare app e vendere merchandising. Ora tocca a te imparare come sfruttare Auto-GPT per potenziare il tuo flusso di lavoro e automatizzare le attività noiose.
In questo tutorial su Auto GPT imparerai:
- Che cos’è Auto-GPT?
- Come configurare Auto GPT in pochi minuti
- Configurare
.envper Auto-GPT
- Configurare
- Eseguire il tuo primo compito con Auto-GPT
- Aggiungere memoria ad Auto-GPT
- Usare Milvus Standalone (Docker Compose)
- Usare Milvus Lite(Pip Install)
- Riepilogo di "Auto-GPT Explained"
Che cos’è Auto-GPT?
L’AI è stata un tema caldo di recente. Si dice che ChatGPT sia l’app con la crescita più rapida di tutti i tempi, raggiungendo oltre 1 miliardo di visitatori mensili a febbraio 2023. Gli LLM sono stati celebrati come l’avvento dell’Intelligenza Artificiale Generale (AGI), il futuro del software e la svolta tecnologica che porterà l’umanità all’illuminazione o alla distruzione. Tuttavia, gli LLM hanno un difetto evidente. Non possono agire da soli. Richiedono che qualcuno li solleciti ripetutamente da un’attività all’altra.
Auto-GPT si propone di risolvere questo problema. Auto-GPT è un software open-source che mira a consentire a GPT-4 di funzionare autonomamente. Come fornisce questa autonomia? Attraverso l’uso di agenti. Auto-GPT consente agli utenti di avviare agenti per svolgere attività come navigare in internet, parlare tramite strumenti di sintesi vocale, scrivere codice, tenere traccia dei propri input e output e altro ancora.
Questa funzionalità estesa alimenta l’hype e la narrativa apocalittica dei media. Tuttavia, non devi avere paura dell’AI. Finché capisci come sfruttare l’AI a tuo vantaggio, la tua narrativa sull’AI può essere positiva e produttiva. Quindi vediamo come puoi avviare Auto GPT sulla tua macchina locale in pochi minuti.
Come configurare Auto-GPT in pochi minuti
Come configurare auto-GPT
Auto-GPT è sorprendentemente facile da configurare. Per prima cosa, vai alla pagina GitHub di Auto-GPT e copia il link di clonazione. Poi, apri il tuo terminale o la tua istanza di VSCode e naviga in una directory di lavoro. Per me, è ~/Documents/workspace. Usa git clone [git@github.com](mailto:git@github.com):Significant-Gravitas/Auto-GPT.git per clonare il repo localmente. Successivamente, naviga nella cartella appena creata.
Nella cartella appena creata, crea un nuovo ambiente virtuale Python così da avere una base pulita. Una volta entrato nel tuo ambiente virtuale, esegui pip install -r requirements.txt per installare tutte le dipendenze. Ora abbiamo Auto-GPT installato. L’ultima cosa che dobbiamo fare per avviare un’istanza è inserire la nostra chiave API di OpenAI nelle variabili d’ambiente.
Configurare .env per Auto-GPT
configure-env.png
Auto-GPT ha un file chiamato .env.template nella sua directory root. Dobbiamo cambiare questo nome file semplicemente in .env. Quindi, possiamo usare questo file per archiviare tutte le informazioni di cui abbiamo bisogno per connetterci agli strumenti esterni che danno ad Auto-GPT le sue capacità autonome. C’è una modifica che dobbiamo apportare prima ancora di poter avviare Auto-GPT. Dobbiamo cambiare il valore di OPENAI_API_KEY con la nostra chiave OpenAI API.
Eseguire il tuo primo task con Auto-GPT
run-task-auto-gpt.png
Con la tua chiave OpenAI API aggiornata, puoi iniziare a usare Auto-GPT per automatizzare parte del lavoro per te. In questo esempio, automatizziamo la creazione di una newsletter sugli sviluppi più significativi nell’IA del mese scorso. Esegui python -m autogpt nel tuo terminale per avviarlo. Quando avviamo Auto-GPT, ci chiede di assegnargli un nome, definire un ruolo per esso e dargli alcuni obiettivi.
run-first-task-auto-gpt.png
In questo esempio, chiamiamo la nostra IA “Newsletter-Generator”. Per il prompt successivo, diciamo all’IA che Newsletter-Generator è un’IA progettata per ricercare e scrivere autonomamente newsletter sugli sviluppi dell’IA. Successivamente, Auto-GPT ci chiede di dare fino a cinque obiettivi alla nostra IA.
Ho dato a Newsletter-Generator tre obiettivi. Primo, ricercare e trovare gli sviluppi dell’IA più significativi dell’ultimo mese. Secondo, raccogliere e riassumere articoli sugli sviluppi dell’IA più significativi dell’ultimo mese. Terzo, scrivere una newsletter sulla ricerca che è stata svolta. Una volta completata la configurazione, Auto-GPT genera un file chiamato ai_settings.yaml per salvare questa configurazione e inizia i suoi task.
Per ogni task , fornisce pensieri, ragionamenti, un piano, una critica del suo piano e il passaggio successivo. Prima di eseguire un task, ci chiede approvazione o feedback sul suo piano. Possiamo consentirgli di eseguire i successivi N task autonomamente senza chiederci approvazione, se vogliamo.
auto-gpt-ability.png
Nell’immagine sopra, vediamo la capacità di Auto-GPT di capire che il primo articolo trovato su Google in realtà non contiene le informazioni necessarie per completare il suo task. Ce lo restituisce e poi elabora il passaggio successivo per ottenere gli sviluppi dell’IA significativi del mese scorso.
Aggiungere memoria ad Auto-GPT
adding-memory-auto-gpt.png
Quando si usa l’opzione di archiviazione predefinita “local” di Auto-GPT, Auto-GPT genera un documento chiamato auto-gpt.json che assomiglia all’immagine sopra. Contiene un blocco di testo seguito da una serie di numeri. I blocchi di testo tengono traccia della conversazione corrente con Auto-GPT e i numeri sono gli embedding vettoriali che rappresentano quella conversazione.
Usare un file JSON per la memoria non è una soluzione scalabile. Man mano che lavori di più con Auto-GPT, produce più dati. Non solo sotto forma di memoria della tua conversazione fino a quel momento, ma anche file da scrivere e ulteriori “agents”. Sebbene JSON possa tenere traccia di queste informazioni, se mai vorrai cercare, recuperare o modificare qualsiasi cosa tu abbia creato, avrai bisogno di un backend di archiviazione permanente.
Fortunatamente, Auto-GPT può utilizzare molti backend di memoria diversi. Poiché stiamo archiviando dati vettoriali, un database vettoriale come Milvus è una soluzione ideale. Milvus è un database vettoriale open-source con molteplici soluzioni, incluse soluzioni distribuite da eseguire su Kubernetes o Docker e un modo per eseguire un’istanza locale. In questo esempio, trattiamo due modi per usare Milvus come backend.
Innanzitutto, trattiamo come usare Milvus Standalone, una soluzione distribuita che utilizza Docker Compose e che puoi eseguire localmente. In secondo luogo, trattiamo come usare Milvus Lite, per istanziare e utilizzare un database vettoriale nel tuo codice Python. La prima soluzione richiede solo un paio di modifiche al codice di Auto-GPT, ma richiede di scaricare Milvus tramite Docker Compose. La seconda soluzione richiede qualche modifica in più al pacchetto esistente, ma ti consente di usare Milvus con un semplice pip install.
Utilizzo di Milvus Standalone (Docker Compose)
L’utilizzo di Milvus Standalone come soluzione di memoria richiede meno modifiche al codice di Auto-GPT, ma richiede Docker. Segui le istruzioni di Milvus Standalone e avvia un’istanza in esecuzione su un container Docker locale.
Una volta che abbiamo un’istanza Milvus attiva e in esecuzione, dobbiamo apportare solo alcune modifiche per far sì che Auto-GPT utilizzi la nostra istanza Milvus per l’archiviazione a lungo termine. Nel file .env, trova MEMORY_BACKEND e cambialo da local a milvus. Quindi, trova MILVUS. Sotto MILVUS ci sono due variabili d’ambiente, MILVUS_ADDR e MILVUS_COLLECTION. Decommentale. Puoi lasciare i valori predefiniti.
Esegui pip install pymilvus per ottenere l’SDK di Milvus. Quindi, avvia di nuovo Auto-GPT usando python -m autogpt. Questa volta, dovresti notare un cambiamento. Il terminale dovrebbe visualizzare un messaggio Using memory of type: MilvusMemory. Questo è tutto ciò che serve per aggiungere Milvus ad Auto-GPT.
add-milvus-auto-gpt.png
Utilizzo di Milvus Lite (Pip Install)
Nota: La pull request per integrare queste modifiche in Auto-GPT è aperta.
A differenza di Milvus Standalone, Milvus Lite non ha dipendenze aggiuntive. Installiamo Milvus Lite e l’SDK Python di Milvus con pip eseguendo pip install milvus pymilvus. Poiché non avvieremo Milvus esternamente prima di avviare Auto-GPT, dobbiamo farlo avviare mentre Auto-GPT si sta configurando.
Lo facciamo apportando modifiche in tre file: .env, autogpt/memory/milvus.py e autogpt/config/config.py. Iniziamo apportando le stesse modifiche che abbiamo fatto con l’istanza Milvus Standalone. Cambia la variabile MEMORY_BACKEND in milvus e decommenta le variabili MILVUS_ADDR e MILVUS_COLLECTION. Sotto la sezione Milvus nel file .env, aggiungi una nuova variabile d’ambiente chiamata MILVUS_TYPE e impostala uguale a lite.
milvus-type.png
Ci sono due file sotto la cartella autogpt a cui apportiamo modifiche. Nel file config.py sotto la cartella config, imposta il valore milvus_type per ottenere MILVUS_TYPE dalle variabili d’ambiente.
# milvus type can be standalone, lite, or cloud
self.milvus_type = os.getenv("MILVUS_TYPE")
Nel file milvus.py sotto la cartella memory aggiungiamo un’istruzione if che controlla il valore di milvus_type nella configurazione. Se il valore è lite, allora importiamo Milvus, avviamo un server e ci connettiamo al server Milvus Lite predefinito. Spostiamo la riga di codice originale nell’istruzione else.
if cfg.milvus_type == "lite":
from milvus import default_server
print("Starting Milvus Lite")
default_server.start()
connections.connect(host='127.0.0.1', port=default_server.listen_port)
else:
connections.connect(address=cfg.milvus_addr)
Una volta apportate queste modifiche, possiamo eseguire Auto-GPT normalmente. L’esecuzione di python -m autogpt avvia un’istanza di Auto-GPT con un output di avvio leggermente diverso. Il terminale dovrebbe visualizzare una riga che dice “Starting Milvus Lite” e il testo di output di Milvus Lite. Dovrebbe comunque mostrare “Using memory of type: MilvusMemory”.
milvus-memory.png
Riepilogo di "Auto GPT Explained"
In questo articolo abbiamo fatto una panoramica delle basi di Auto-GPT. Per prima cosa abbiamo scaricato Auto-GPT da GitHub e avviato un’istanza. Dopo averla avviata, abbiamo esaminato i file generati da Auto-GPT. Osservando i file di Auto-GPT, abbiamo scoperto che utilizza un file JSON pieno di vettori per tenere traccia della sua memoria localmente.
I file JSON non sono scalabili. Per un backend di memoria più robusto, utilizziamo il database vettoriale Milvus, una delle altre opzioni di memoria integrate in Auto-GPT. Mostriamo come aggiungere un backend Milvus in due modi: come un insieme di container Docker autonomi oppure come un’istanza avviata da Auto-GPT. Restate sintonizzati per altri post sui database vettoriali con gli LLM.
Continua a leggere

Smarter Autoscaling in Zilliz Cloud: Always Optimized for Every Workload
With the latest upgrade, Zilliz Cloud introduces smarter autoscaling—a fully automated, more streamlined, elastic resource management system.

How to Build RAG with Milvus, QwQ-32B and Ollama
Hands-on tutorial on how to create a streamlined, powerful RAG pipeline that balances efficiency, accuracy, and scalability using the QwQ-32B and Milvus.

1 Table = 1000 Words? Foundation Models for Tabular Data
TableGPT2 automates tabular data insights, overcoming schema variability, while Milvus accelerates vector search for efficient, scalable decision-making.



