Creazione di agenti IA locali: una guida a LangGraph, agenti IA e Ollama
Introduzione
In questa era tecnologica in continua evoluzione, l’intelligenza artificiale (AI) sta guidando l’innovazione e trasformando le industrie. Tra i vari progressi nel campo dell’intelligenza artificiale, è noto che lo sviluppo e l’implementazione di agenti AI rimodellano il modo in cui operano le aziende, migliorano l’esperienza degli utenti e automatizzano attività complesse.
Gli agenti IA, entità software in grado di eseguire compiti specifici in modo autonomo, sono diventati indispensabili in molte applicazioni, dai chatbot del servizio clienti agli strumenti avanzati di analisi dei dati fino agli agenti finanziari.
In questo articolo creeremo un agente AI di base per esplorare il significato, le funzionalità e le strutture tecnologiche che facilitano la creazione e l'implementazione di questi agenti. Nello specifico, comprenderemo LangGraph e Ollama, due potenti strumenti che semplificano la creazione di agenti IA locali.
Al termine di questa guida avrai una conoscenza approfondita dell'utilizzo di queste tecnologie per creare agenti IA efficienti ed efficaci su misura per le tue esigenze specifiche.
Comprendere gli agenti AI
Gli agenti di intelligenza artificiale sono entità o sistemi che percepiscono il loro ambiente e intraprendono azioni per raggiungere scopi o obiettivi specifici. Questi agenti possono variare da semplici algoritmi a sistemi sofisticati capaci di processi decisionali complessi. Ecco alcuni punti chiave sugli agenti AI:
- Percezione: gli agenti IA utilizzano sensori o meccanismi di input per percepire il loro ambiente. Ciò potrebbe comportare la raccolta di dati da varie fonti come fotocamere, microfoni o altri sensori.
- Ragionamento: gli agenti IA ricevono informazioni e utilizzano algoritmi e modelli per elaborare e interpretare i dati. Questo passaggio implica comprendere modelli, fare previsioni o generare risposte.
- Processo decisionale: gli agenti di intelligenza artificiale, come gli esseri umani, decidono azioni o risultati in base alla loro percezione e ragionamento. Queste decisioni mirano a raggiungere scopi o obiettivi specifici definiti dalla loro programmazione o dal processo di apprendimento. Inoltre, gli agenti IA agiranno più come assistenti piuttosto che come sostituti degli esseri umani.
- Attuazione: gli agenti IA eseguono azioni in base alle loro decisioni. Ciò potrebbe comportare azioni fisiche nel mondo reale (come muovere un braccio robotico) o azioni virtuali in un ambiente digitale (come fornire consigli in un’app).
Un esempio di agenti IA in azione sono i sistemi sanitari che analizzano i dati dei pazienti da varie fonti, come: cartelle cliniche, risultati dei test e dispositivi di monitoraggio in tempo reale. Questi agenti di intelligenza artificiale possono utilizzare questi dati per prendere decisioni informate, come prevedere la probabilità che un paziente sviluppi una condizione specifica o raccomandare piani di trattamento personalizzati basati sulla storia medica del paziente e sullo stato di salute attuale.
Differenza tra agente AI e applicazione RAG
Le applicazioni RAG (Retrieval-Augmented Generation) e gli agenti IA si riferiscono a concetti diversi all'interno dell'intelligenza artificiale.
RAG viene utilizzato per migliorare le prestazioni dei modelli LLM incorporando metodi di recupero delle informazioni. Il sistema di recupero ricerca documenti o informazioni rilevanti da un ampio corpus in base alla query di input. Il modello generativo (ad esempio, un modello linguistico basato su trasformatore) utilizza quindi queste informazioni recuperate per generare risposte più accurate e contestualmente rilevanti. Ciò aiuta ad aumentare la precisione del contenuto generato grazie all’integrazione delle informazioni recuperate. Inoltre, questa tecnica elimina la necessità di mettere a punto o addestrare un LLM su nuovi dati.
D'altra parte, gli agenti AI sono entità software autonome progettate per eseguire compiti specifici o una serie di compiti. Funzionano in base a regole predefinite, modelli di apprendimento automatico o entrambi. Spesso interagiscono con gli utenti o altri sistemi per raccogliere input, fornire risposte o eseguire azioni. Le prestazioni di alcuni agenti IA aumentano poiché possono apprendere e adattarsi nel tempo sulla base di nuovi dati ed esperienze. L’intelligenza artificiale può gestire più attività contemporaneamente, fornendo scalabilità alle aziende.
- RAG is a technique used to improve the performance of generative models by incorporating information retrieval methods
Un assistente personale AI può svolgere compiti autonomi e prendere decisioni
- Retrieval system + generative model
Sistemi basati su regole, modelli di machine learning o una combinazione di tecniche di intelligenza artificiale
- Improved accuracy and relevance, leverage external data
Maggiore versatilità e adattabilità
- Question answering, customer support, content generation
Assistenti virtuali, veicoli autonomi, sistemi di raccomandazione
- Ability to leverage large, external datasets for enhancing generative responses without requiring the generative model itself to be trained on all that data
Capacità di interagire con gli utenti e adattarsi ai cambiamenti dei requisiti o degli ambienti.
- A chatbot that retrieves relevant FAQs or knowledge base articles to answer user queries more effectively.
-
Un motore di consigli che suggerisce prodotti o contenuti in base alle preferenze e al comportamento dell'utente.
In sintesi, le applicazioni RAG sono specificamente progettate per migliorare le capacità dei modelli generativi incorporando meccanismi di recupero; Gli agenti IA sono entità più ampie destinate a svolgere una vasta gamma di compiti in modo autonomo.
Breve panoramica di LangGraph
LangGraph è una potente libreria per la creazione di applicazioni stateful e multi-attore utilizzando modelli linguistici di grandi dimensioni (LLM). Aiuta a creare flussi di lavoro complessi che coinvolgono agenti singoli o multipli, offrendo vantaggi critici come cicli, controllabilità e persistenza.
Vantaggi principali
- Cicli e ramificazioni: a differenza di altri framework che utilizzano semplici grafici aciclici diretti (DAG), LangGraph supporta cicli e condizionali, essenziali per creare comportamenti sofisticati dell'agente.
- Controllo granulare: LangGraph fornisce un controllo dettagliato sul flusso e sullo stato dell'applicazione come framework di basso livello, rendendolo ideale per lo sviluppo di agenti affidabili.
- Persistenza: include la persistenza integrata, che consente di salvare lo stato dopo ogni passaggio, mettere in pausa e riprendere l'esecuzione e supportare funzionalità avanzate come il ripristino degli errori e flussi di lavoro human-in-the-loop.
Caratteristiche
- Cicli e ramificazioni: implementa cicli e condizionali nelle tue app.
- Persistenza: salva automaticamente lo stato dopo ogni passaggio, supportando il ripristino degli errori.
- Human-in-the-Loop: interrompi l'esecuzione per l'approvazione o le modifiche umane.
- Supporto streaming: streaming degli output man mano che ciascun nodo li produce.
- Integrazione con LangChain: si integra perfettamente con LangChain e LangSmith ma può anche essere utilizzato in modo indipendente.
LangGraph si ispira a tecnologie come Pregel e Apache Beam, con un'interfaccia user-friendly simile a NetworkX. Sviluppato da LangChain Inc., offre uno strumento robusto per creare applicazioni affidabili e avanzate basate sull'intelligenza artificiale.
Breve introduzione a Ollama
Ollama è un progetto open source che rende l'esecuzione di LLM sul tuo computer locale semplice e intuitiva. Fornisce una piattaforma intuitiva che semplifica le complessità della tecnologia LLM, rendendola accessibile e personalizzabile per gli utenti che desiderano sfruttare la potenza dell'intelligenza artificiale senza bisogno di competenze tecniche approfondite.
È facile da installare. Inoltre, disponiamo di una selezione di modelli e di un set completo di caratteristiche e funzionalità progettate per migliorare l'esperienza dell'utente.
Caratteristiche principali
- Distribuzione locale: esegui LLM sofisticati direttamente sul tuo computer locale, garantendo la privacy dei dati e riducendo la dipendenza da server esterni.
- Interfaccia intuitiva: progettata per essere intuitiva e facile da usare, rendendola accessibile a utenti con diversi livelli di conoscenza tecnica.
- Personalizzabilità: ottimizza i modelli di intelligenza artificiale per soddisfare le tue esigenze specifiche, sia per la ricerca, lo sviluppo o i progetti personali.
- Open Source: essendo open source, Ollama incoraggia i contributi della comunità e il miglioramento continuo, promuovendo l'innovazione e la collaborazione.
- Installazione semplice: Ollama si distingue per il suo processo di installazione intuitivo, offrendo metodi di configurazione intuitivi e senza problemi per utenti Windows, macOS e Linux. Abbiamo creato un articolo sul download e l'utilizzo di Ollama; si prega di consultare il blog (link fornito nella sezione delle risorse).
- Comunità Ollama: la comunità Ollama è una comunità vivace, guidata da progetti che promuove la collaborazione e l'innovazione, con una comunità open source attiva che ne migliora lo sviluppo, gli strumenti e le integrazioni.
Una guida passo passo per creare un agente AI utilizzando LangGraph e Ollama
In questa demo creeremo un semplice esempio di un agente che utilizza il modello Mistral. Questo agente può eseguire ricerche sul Web utilizzando l'API Tavily Search e generare risposte.
Inizieremo installando Langgraph, una libreria progettata per creare applicazioni stateful e multi-attore con LLM ideali per creare flussi di lavoro con agenti e multi-agente. Ispirato da Pregel, Apache Beam e NetworkX, LangGraph è sviluppato da LangChain Inc. e può essere utilizzato indipendentemente da LangChain.
Utilizzeremo Mistral come modello LLM, che sarà integrato con l'API di ricerca di Ollama e Tavily. L'API di Tavily è ottimizzata per i LLM, fornendo un'esperienza di ricerca fattuale, efficiente e persistente.
Nel nostro articolo precedente, abbiamo imparato come utilizzare Qwen2 utilizzando Ollama e abbiamo collegato l'articolo. Segui l'articolo per installare Ollama e come eseguire LLM utilizzando Ollama.
Prima di iniziare con l'installazione, controlliamo la nostra GPU. Puoi aprire un terminale e digitare il codice seguente per verificare la configurazione della GPU.
nvidia-smi
Ora inizieremo con le nostre installazioni.
pip install -U langgraph
pip install -U langchain-nomic langchain_community tiktoken langchainhub chromadb langchain langgraph tavily-python
pip install langchain-openai
Dopo aver completato le installazioni, passeremo al passaggio cruciale successivo: fornire la chiave API Travily.
export TAVILY_API_KEY="apikeygoeshere"
Ora eseguiremo il codice seguente per recuperare il modello. Per favore provalo usando Llama o qualsiasi altra versione di Mistral.
ollama pull mistral
Importa tutte le librerie necessarie per creare l'agente.
from langchain import hub
from langchain_community.tools.tavily_search import TavilySearchResults
from langchain.prompts import PromptTemplate
from langgraph.prebuilt import create_react_agent
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import JsonOutputParser
from langchain_community.chat_models import ChatOllama
Inizieremo definendo gli strumenti che vogliamo utilizzare e collegheremo gli strumenti con llm. Per questo semplice esempio, utilizzeremo uno strumento di ricerca integrato tramite Tavily.
tools = [TavilySearchResults(max_results=3)]
llm_with_tools = llm.bind_tools(tools)
Il frammento di codice seguente recupera un modello di prompt e lo stampa in un formato leggibile. Questo modello può quindi essere utilizzato o modificato secondo necessità per l'applicazione.
prompt = hub.pull("wfh/react-agent-executor")
prompt.pretty_print()
Successivamente configureremo l'utilizzo di Mistral tramite la piattaforma Ollama.
llm = ChatOpenAI(model="mistral", api_key="ollama", base_url="http://localhost:11434/v1",
)
Infine, creeremo un esecutore dell'agente utilizzando il nostro modello linguistico (llm
), un set di strumenti (tools
) e un modello di prompt (prompt
). L'agente è configurato per reagire agli input, utilizzare gli strumenti e generare risposte in base al prompt specificato, consentendogli di eseguire attività in modo controllato ed efficiente.
agent_executor = create_react_agent(llm, tools, messages_modifier=prompt)
================================ System Message ================================
You are a helpful assistant.
============================= Messages Placeholder =============================
{{messages}}
Il frammento di codice fornito richiama l'esecutore dell'agente per elaborare il messaggio di input. Questo passaggio ha lo scopo di inviare una query all'esecutore dell'agente e ricevere una risposta. L'agente utilizzerà il modello linguistico configurato (Mistral in questo caso), gli strumenti e le richieste per elaborare il messaggio e generare una risposta appropriata
response = agent_executor.invoke({"messages": [("user", "explain artificial intelligence")]})
for message in response['messages']:
print(message.content)
e questo genererà la risposta seguente.
Conclusione
LangGraph e strumenti come AI Agents e Ollama rappresentano un significativo passo avanti nello sviluppo e nell'implementazione di soluzioni di intelligenza artificiale localizzate. Sfruttando la capacità di LangGraph di semplificare vari componenti AI e la sua architettura modulare, gli sviluppatori possono creare soluzioni AI versatili e scalabili, efficienti e altamente adattabili alle mutevoli esigenze.
Come descritto nel nostro blog, gli agenti AI offrono un approccio flessibile per automatizzare le attività e migliorare la produttività. Questi agenti possono essere personalizzati per gestire varie funzioni, dalla semplice automazione delle attività a complessi processi decisionali, rendendoli strumenti indispensabili per le aziende moderne.
Ollama, come parte di questo ecosistema, fornisce ulteriore supporto offrendo strumenti e servizi specializzati che completano le capacità di LangGraph.
In sintesi, l’integrazione di LangGraph e Ollama fornisce un quadro solido per la creazione di agenti IA efficaci ed efficienti. Questa guida è una risorsa preziosa per chiunque desideri sfruttare il potenziale di queste tecnologie per promuovere l'innovazione e raggiungere i propri obiettivi nel panorama in continua evoluzione dell'intelligenza artificiale.
Risorse aggiuntive
- Come migrare dagli agenti LangChain legacy a LangGraph
- Chiamata dello strumento
- Documentazione di LangGraph
- Confronto tra sistemi RAG e agenti AI
- Riferimento al codice