Sviluppo di un Agente AI Semplice con Langchain
Introduzione
In questo tutorial, esploreremo come sviluppare un agente AI semplice utilizzando Langchain, una libreria open-source potente e flessibile. Partiremo dalle basi per comprendere come gli agenti AI stanno trasformando l'ingegneria del software, evolvendo da semplici strumenti di autocompletamento a copiloti IDE fino ad agenti complessi e asincroni. Impareremo a sfruttare Open SWE, un agente di codifica open-source, e il concetto di "agenti profondi" che superano i limiti degli approcci più semplici. Questo tutorial ti fornirà le competenze necessarie per iniziare a costruire i tuoi agenti AI personalizzati e automatizzare i flussi di lavoro di sviluppo software.
Panoramica e prerequisiti
In questa sezione, forniremo una panoramica generale degli agenti AI e dei prerequisiti necessari per seguire questo tutorial. Un agente AI è un sistema autonomo che può percepire l'ambiente circostante, prendere decisioni e agire per raggiungere un obiettivo specifico. Langchain è una libreria che facilita la creazione di questi agenti, offrendo strumenti e interfacce per interagire con modelli linguistici di grandi dimensioni (LLM) e altri strumenti.
Per seguire questo tutorial, avrai bisogno di: - Conoscenza base di Python. - Un account OpenAI con una chiave API valida (se utilizzi modelli OpenAI). - Installazione di Langchain e delle librerie correlate.
Perché/Quando usare: Utilizzare Langchain per sviluppare agenti AI quando si desidera automatizzare processi, interagire con dati complessi o creare assistenti virtuali. Evitare se si necessita di controllo completo sul modello linguistico sottostante o si lavora con risorse computazionali limitate. Trade-off/Alternative: Alternative a Langchain includono Transformers di Hugging Face (più basso livello, maggiore controllo) e AutoGen (progettato per agenti multi-agente). Langchain offre una maggiore astrazione, ma può essere meno flessibile. Errori comuni e mitigazioni: Un errore comune è l'uso improprio delle API di Langchain. Consultare sempre la documentazione ufficiale. Un altro errore è la mancata gestione delle eccezioni, che può portare a interruzioni impreviste. Performance: Le performance dipendono dal modello linguistico utilizzato e dalla complessità dell'agente. Ottimizzare i prompt e utilizzare modelli più efficienti può migliorare le performance. Sicurezza: Prestare attenzione alla sicurezza dei prompt e degli input degli utenti per prevenire attacchi di prompt injection. Testing: Testare l'agente con diversi input per verificare che funzioni correttamente. Verifica: Dopo l'installazione, esegui
pip show langchain
per verificare la presenza della libreria.
Setup e installazione
Per iniziare, è necessario installare Langchain e le dipendenze necessarie. Segui questi passaggi:
- Crea un ambiente virtuale Python:
python -m venv venv source venv/bin/activate # Linux/macOS # venv\Scripts\activate # Windows
-
Installa Langchain e le altre librerie necessarie:
bash pip install langchain openai python-dotenv
3. Crea un file .env nella directory del progetto e aggiungi la tua chiave API di OpenAI:OPENAI_API_KEY="YOUR_OPENAI_API_KEY"
Perché/Quando usare: L'installazione di Langchain è necessaria per utilizzare le sue funzionalità. Assicurati di avere un ambiente virtuale per isolare le dipendenze del progetto. Evita di installare Langchain globalmente.
Trade-off/Alternative: Puoi usare Anaconda per gestire gli ambienti virtuali, ma venv è sufficiente per progetti semplici.
Errori comuni e mitigazioni: Un errore comune è dimenticare di attivare l'ambiente virtuale. Verificare che l'ambiente virtuale sia attivo prima di installare le librerie. Un altro errore è non impostare correttamente la chiave API di OpenAI.
Performance: L'installazione è un'operazione una tantum.
Sicurezza: Conservare la chiave API di OpenAI in un file .env e non condividerla pubblicamente.
Testing: Dopo l'installazione, esegui python -c "import langchain"
per verificare che Langchain sia installata correttamente.
Verifica: L'assenza di errori durante l'importazione indica un'installazione corretta.
Concetti base con esempio
In questa sezione, introdurremo i concetti base di Langchain e mostreremo un esempio semplice di come creare un agente AI.
Un agente in Langchain è composto da:
- Un modello linguistico (LLM): Utilizzato per generare risposte e prendere decisioni.
- Strumenti: Funzioni o API che l'agente può utilizzare per interagire con l'ambiente.
- Un ciclo di esecuzione: Determina come l'agente utilizza gli strumenti per raggiungere un obiettivo.
Ecco un esempio di come creare un agente semplice che può cercare informazioni su Internet:
import os
from dotenv import load_dotenv
load_dotenv()
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
# Carica il modello linguistico
llm = OpenAI(temperature=0, openai_api_key=os.getenv("OPENAI_API_KEY"))
# Carica gli strumenti (in questo caso, lo strumento di ricerca DuckDuckGo)
tools = load_tools(["ddg-search"])
# Inizializza l'agente
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
# Esegui l'agente
response = agent.run("Qual è la capitale della Francia?")
print(response)
Questo codice crea un agente che utilizza il modello linguistico OpenAI e lo strumento di ricerca DuckDuckGo per rispondere alla domanda "Qual è la capitale della Francia?".
Perché/Quando usare: Comprendere i concetti base è fondamentale per creare agenti AI efficaci. Utilizzare questo esempio come punto di partenza per esplorare le funzionalità di Langchain. Trade-off/Alternative: Esistono diversi tipi di agenti in Langchain, ognuno con i suoi pro e contro. "zero-shot-react-description" è un agente versatile, ma potrebbe non essere ottimale per tutti i casi d'uso. Errori comuni e mitigazioni: Un errore comune è non configurare correttamente la chiave API di OpenAI. Verificare che la chiave API sia valida e impostata correttamente nell'ambiente. Performance: Le performance dipendono dal modello linguistico utilizzato e dalla complessità della query. Sicurezza: Prestare attenzione alla sicurezza dei prompt e degli input degli utenti. Testing: Eseguire l'agente con diverse query per verificare che risponda correttamente. Verifica: L'output atteso è "Parigi".
Caso d’uso completo end-to-end
Creiamo un agente più complesso che può interagire con il codice Python. Questo agente sarà in grado di scrivere, eseguire e correggere codice Python per risolvere problemi specifici.
import os
from dotenv import load_dotenv
load_dotenv()
from langchain.agents import Tool, initialize_agent
from langchain.llms import OpenAI
from langchain.utilities import PythonREPL
from langchain.agents import AgentType
# Inizializza il modello linguistico
llm = OpenAI(temperature=0, openai_api_key=os.getenv("OPENAI_API_KEY"))
# Inizializza l'ambiente Python REPL
python_repl = PythonREPL()
# Definisci gli strumenti che l'agente può utilizzare
tools = [
Tool(
name='Python REPL',
func=python_repl.run,
description='utile quando hai bisogno di eseguire codice Python. Input dovrebbe essere codice Python valido.'
)
]
# Inizializza l'agente
agent = initialize_agent(
tools=tools,
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
# Esegui l'agente
response = agent.run("Calcola l'area di un cerchio con raggio 5.")
print(response)
Questo codice crea un agente che può utilizzare l'ambiente Python REPL per eseguire codice Python e calcolare l'area di un cerchio.
Perché/Quando usarlo: Questo caso d'uso dimostra come Langchain può essere utilizzato per creare agenti AI che possono interagire con il codice Python, aprendo nuove possibilità per l'automazione dello sviluppo software. Trade-off/Alternative: Esistono altre librerie per interagire con il codice Python, ma Langchain offre un'integrazione più semplice e flessibile con i modelli linguistici. Errori comuni e mitigazioni: Un errore comune è fornire codice Python non valido all'agente. Verificare che il codice Python sia valido prima di eseguirlo. Performance: Le performance dipendono dalla complessità del codice Python da eseguire. Sicurezza: Prestare attenzione alla sicurezza del codice Python da eseguire per prevenire attacchi di codice dannoso. Testing: Eseguire l'agente con diversi input per verificare che funzioni correttamente. Verifica: L'output atteso è un valore numerico che rappresenta l'area del cerchio.
Errori comuni e debugging
Durante lo sviluppo di agenti AI con Langchain, è possibile incontrare diversi errori comuni. Ecco alcuni esempi e come risolverli:
-
Errore di chiave API non valida:
- Causa: La chiave API di OpenAI non è valida o non è stata impostata correttamente.
- Soluzione: Verificare che la chiave API sia valida e impostata correttamente nel file .env.
-
Errore di dipendenza mancante:
-
Causa: Una o più dipendenze necessarie per eseguire l'agente non sono state installate.
- Soluzione: Installare le dipendenze mancanti utilizzando .
pip install <nome_dipendenza>
-
Errore di prompt non valido:
-
Causa: Il prompt fornito all'agente non è valido o non è formulato correttamente.
- Soluzione: Riformulare il prompt in modo più chiaro e specifico.
Perché/Quando usarlo: Comprendere gli errori comuni e le tecniche di debugging è fondamentale per risolvere i problemi durante lo sviluppo di agenti AI. Trade-off/Alternative: Utilizzare strumenti di debugging come pdb per analizzare il codice Python in esecuzione. Errori comuni e mitigazioni: Un errore comune è non leggere attentamente i messaggi di errore. Leggere attentamente i messaggi di errore per identificare la causa del problema. Performance: Il debugging può richiedere tempo, ma è fondamentale per garantire che l'agente funzioni correttamente. Sicurezza: Prestare attenzione alla sicurezza durante il debugging per prevenire attacchi di codice dannoso. Testing: Utilizzare unit test per testare singole componenti dell'agente. Verifica: Verificare che l'agente funzioni correttamente dopo aver risolto gli errori.
Esercizi Pratici
Esercizio 1: Creazione di un agente di traduzione
MedioCrea un agente che traduca il testo dall'inglese all'italiano. Utilizza lo strumento translate di Langchain.
💡 Suggerimenti
- Consulta la documentazione di Langchain per lo strumento translate.
- Imposta la lingua di origine e la lingua di destinazione.
- Utilizza un prompt chiaro e specifico.
✅ Soluzione di Esempio
```python
import os
from dotenv import load_dotenv
load_dotenv()
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain.utilities import GoogleSerperAPIWrapper
os.environ["SERPER_API_KEY"] = "YOUR_SERPER_API_KEY" # Inserisci la tua chiave API di Serper
def traduci_testo(testo: str, lingua_destinazione: str) -> str:
"""Traduce il testo nella lingua di destinazione specificata."""
search = GoogleSerperAPIWrapper()
query = f"translate {testo} to {lingua_destinazione}"
return search.run(query)
llm = OpenAI(temperature=0, openai_api_key=os.getenv("OPENAI_API_KEY"))
tools = [
Tool(
name="traduttore",
func=lambda q: traduci_testo(q, "Italian"), # Traduce in italiano
description="utile per tradurre testo in italiano. Input: il testo da tradurre."
),
]
agent = initialize_agent(llm, tools, agent="zero-shot-react-description", verbose=True)
testo_da_tradurre = "Hello, how are you?"
risultato = agent.run(f"Traduci questo in italiano: {testo_da_tradurre}")
print(risultato)
Esercizio 2: Debugging di un agente che somma numeri
FacileCorreggi l'errore nel seguente codice che dovrebbe sommare due numeri. Il codice non funziona correttamente.
import os
from dotenv import load_dotenv
load_dotenv()
from langchain.agents import Tool, initialize_agent
from langchain.llms import OpenAI
from langchain.utilities import PythonREPL
from langchain.agents import AgentType
llm = OpenAI(temperature=0, openai_api_key=os.getenv("OPENAI_API_KEY"))
python_repl = PythonREPL()
tools = [
Tool(
name='Python REPL',
func=python_repl.run,
description='utile quando hai bisogno di eseguire codice Python. Input dovrebbe essere codice Python valido.'
)
]
agent = initialize_agent(
tools=tools,
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
response = agent.run("Somma 5 e 10")
print(response)
💡 Suggerimenti
- L'agente deve eseguire codice Python per sommare i numeri.
- Verifica il prompt fornito all'agente.
✅ Soluzione di Esempio
```python
import os
from dotenv import load_dotenv
load_dotenv()
from langchain.agents import Tool, initialize_agent
from langchain.llms import OpenAI
from langchain.utilities import PythonREPL
from langchain.agents import AgentType
llm = OpenAI(temperature=0, openai_api_key=os.getenv("OPENAI_API_KEY"))
python_repl = PythonREPL()
tools = [
Tool(
name='Python REPL',
func=python_repl.run,
description='utile quando hai bisogno di eseguire codice Python. Input dovrebbe essere codice Python valido.'
)
]
agent = initialize_agent(
tools=tools,
llm=llm,
agent_type=AgentType.ZERO_SHOT_REACT_DESCRIPTION,
verbose=True
)
response = agent.run("Esegui il seguente codice Python: print(5 + 10)") # Prompt corretto
print(response)
Domande Frequenti
Repository e Fonti
Conclusione
In questo tutorial, abbiamo esplorato come sviluppare un agente AI semplice con Langchain. Abbiamo imparato i concetti base, creato un caso d'uso completo e discusso gli errori comuni e le tecniche di debugging. Speriamo che questo tutorial ti abbia fornito le competenze necessarie per iniziare a costruire i tuoi agenti AI personalizzati e automatizzare i flussi di lavoro di sviluppo software. Per approfondire ulteriormente, ti consigliamo di esplorare la documentazione di Langchain e di sperimentare con diversi modelli linguistici e strumenti.
Commenti 0
Nessun commento ancora. Sii il primo a dire la tua!
I commenti sono moderati e saranno visibili dopo l'approvazione.