LangChain: Introduzione e Installazione

LangChain: Introduzione e Installazione

28 Aprile 2024 ai 1

Introduzione

LangChain è un framework per lo sviluppo di applicazioni alimentate da Large Language Model (come gpt-4) e consente di creare applicazioni che:

  • Sono consapevoli del contesto: collegano un modello linguistico a fonti esterne come prompt che danno instruzioni specifiche, contenuti su cui basare la propria risposta che provengono da fonti esterne, ecc.
  • Ragionano: si affidano a un LLM per ragionare (su come rispondere basandosi sul contesto fornito, quali azioni intraprendere, ecc.).

Permettono quindi di creare chatbots, Generative Question-Answering (GQA) e molto altro.

Per maggiori dettagli rimandiamo alle spiegazioni più discorsive disponibili in rete come su amazon aws.

Schema funzionamento Langchain

L’idea principale di LangChain è quella di collegare (“chain”) insieme diversi componenti per creare casi d’uso avanzati utilizzando LLMs. Questi collegamenti, che d’ora in poi chiameremo “Chain”, possono consistere di diversi componenti che provengono da vari moduli:

  • Prompt Templates: I Prompt Template sono un insieme di istruzioni o input forniti da un utente per guidare la risposta del modello, aiutandolo a comprendere il contesto e generare un output basato sul linguaggio pertinente e coerente, come rispondere a domande, completare frasi o partecipare a una conversazione.
  • LLMs: Large language models come GPT-3, BLOOM, ect..
  • Agents: Gli agents usano gli LLMs per decidere quali azioni dovrebbero essere prese. Questi agents possiedono al loro interno diversi strumenti (chiamati Tool) che grazie alla capacità intrinseca di ragionamento, decidono, per l’appunto, quali di questi utilizzare. Quindi un agent riesce a risolvere più task anche totalmente diversi tra loro, basta che possieda i tool necessari per eseguirli.
  • Memory: Possiede sia memoria a breve termine che a lungo termine.

Installazione

Nel nostro esempio, procederemo con l’installazione di LangChain utilizzando Visual Studio Code come IDE e come LLM quello di OpenAI (si può scegliere di utilizzare anche altri LLM come, per esempio, quello di Hugging Face).

Apriamo una nuova cartella e creiamo un nuovo file main.py. Successivamente apriamo un terminale per eseguire i seguenti comandi:

pip install langchain
pip install openai

Ora è necessario importare la propria chiave API di OpenAI per poter utilizzare il Large Language Model (LLM).

Per fare ciò, andremo a installare python-dotenv tramite il comando:

pip install python-dotenv

che è una libreria Python che consente di caricare le variabili d’ambiente da un file di configurazione denominato .env all’interno di un’applicazione Python.
Questa libreria semplifica notevolmente il processo di gestione delle variabili d’ambiente all’interno di un’applicazione Python, garantendo che le informazioni sensibili siano separate dal codice sorgente e consentendo una maggiore flessibilità nell’adattare l’applicazione a diversi ambienti di sviluppo, test e produzione.

Nel nostro caso, quindi, nel file .env includeremo la definizione della variabile d’ambiente OPENAI_API_KEY e quindi conterrà:

OPENAI_API_KEY=<valore_OPEN_API_KEY>

Successivamente bisogna andare nella sezione “Run and Debug” e creare un file launch.json dove si deve andare a precisare la posizione delle variabili d’ambiente.

Il file sarà così scritto:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Davide Runner",
            "type": "debugpy",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal",
            "justMyCode": true,
            "envFile": "${workspaceFolder}/.env"
        }
    ]
}

Per verificare che tutto sia andato a buon fine, scrivere un main.py per assicurarsi che la nostra variabile d’ambiente OPEN_API_KEY sia stata correttamente inglobata nelle variabili d’ambiente:

import os
from dotenv import load_dotenv

load_dotenv()
if __name__ == "__main__":
    print("hello LangChain")
    print(os.environ["OPENAI_API_KEY"])

Si fornisce di seguito un breve script che utilizza un esempio di Prompt Template così da iniziare a familiarizzare al meglio con LangChain:

import os
from dotenv import load_dotenv
from langchain_core.prompts import PromptTemplate
from langchain_openai import OpenAI
from langchain.chains import LLMChain
load_dotenv()
if __name__ == "__main__":
    print("hello LangChain")
    print(os.environ["OPENAI_API_KEY"])
    
    prompt_template = "Asnwer to the question: {question}"
    
    prompt = PromptTemplate(
        input_variables=["question"], template=prompt_template
    )
    
    llm = LLMChain(llm=OpenAI(), prompt=prompt)
    
    print(llm.invoke("When Elon Musk died?"))

Conclusione su Langchain: introduzione e installazione

Vi abbiamo mostrato in modo semplice e veloce come avviare una installazione di Langchain, spiegandovi anche un po’ di contesto e di logica di questo potente ed innovativo framework. Ora sta a voi prova questa incredibile tecnologia! Se avete bisogno a livello aziendale, noi siamo qua per guidarvi e seguirvi nell’implementazione di un RAG specifico per le vostre esigenze!

 

Una risposta.

  1. Come implementare un mini ecommerce con Cheshire Cat Ai - NetAi ha detto:

    […] ci siamo presi del tempo per studiare approfonditamente una tecnologia che ci gira nascosta dentro: LangChain. Oggi arriveremo a capire con voi come implementare un mini ecommerce con Cheshire Cat […]

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *