Creazione semplice del team strategico di intelligenza artificiale con AutoGen

Guida alla creazione semplice del team strategico di intelligenza artificiale con AutoGen

Introduzione

In un mondo dove la frontiera digitale non conosce limiti, AutoGen emerge come l’architetto di un paradigma trasformativo. Immagina di avere una forza lavoro personalizzata di intelligenza artificiale, ognuna specializzata in diversi settori, che collabora in modo fluido, comunica senza sforzo e lavora instancabilmente per affrontare compiti complessi. Questa è l’essenza di AutoGen, un framework di conversazione multi-agente pionieristico che ti permette di creare il tuo team personalizzato di intelligenza artificiale. In questo articolo, sveliamo la magia di AutoGen, esplorando come ti permette di assemblare il tuo team digitale dei sogni e raggiungere l’straordinario. Benvenuti in un futuro in cui i confini tra umani e macchine svaniscono e la collaborazione diventa illimitata.

Obiettivi di Apprendimento

Prima di entrare nei dettagli, delineiamo gli obiettivi di apprendimento chiave di questo articolo:

  • Acquisire una comprensione completa di AutoGen come framework di conversazione multi-agente.
  • Imparare come gli agenti comunicano e collaborano autonomamente nel framework di conversazione multi-agente.
  • Conoscere il ruolo fondamentale di config_list nell’operazione di AutoGen. Comprendere le best practice per la sicurezza delle chiavi API e la gestione delle configurazioni per un efficiente funzionamento degli agenti.
  • Esplorare vari stili di conversazione, dalle interazioni totalmente autonome alle interazioni coinvolgenti l’elemento umano. Scoprire i modelli di conversazione statici e dinamici supportati da AutoGen.
  • Scoprire come utilizzare AutoGen per l’ottimizzazione dell’apprendimento automatico basato su linguaggio naturale (LLM) tramite dati di validazione, funzioni di valutazione e metriche di ottimizzazione.
  • Esplorare esempi come la creazione di un team collaborativo per la creazione di contenuti e la traduzione di lingue con contesto culturale per capire come AutoGen possa essere applicato in diverse situazioni.

Questo articolo è stato pubblicato come parte del Data Science Blogathon.

Cos’è AutoGen?

AutoGen è un framework unificato di conversazione multi-agente che agisce come un’astrazione di alto livello per l’utilizzo di modelli fondamentali. Riunisce agenti in grado, personalizzabili e conversabili che integrano modelli di apprendimento automatico basati su linguaggio naturale (LLMs), strumenti e partecipanti umani attraverso chat automatizzate. Fondamentalmente, consente agli agenti di comunicare e lavorare insieme in modo autonomo, semplificando efficacemente compiti complessi e automatizzando i flussi di lavoro.

Perché è Importante AutoGen?

AutoGen affronta la necessità di una comunicazione multi-agente efficiente e flessibile con l’intelligenza artificiale. La sua importanza risiede nella sua capacità di:

  • Semplificare l’orchestrazione, l’automazione e l’ottimizzazione di flussi di lavoro complessi di apprendimento automatico basato su linguaggio naturale (LLM).
  • Massimizzare le performance dei modelli LLM superando le loro limitazioni.
  • Consentire lo sviluppo di applicazioni LLM di prossima generazione basate su conversazioni multi-agente con uno sforzo minimo.

Preparazione dell’Ambiente di Sviluppo

Creare un Ambiente Virtuale

Gli ambienti virtuali sono una buona pratica per isolare le dipendenze specifiche del progetto e evitare conflitti con i pacchetti di sistema. Ecco come creare un ambiente Python:

Opzione 1: Venv

python -m venv nome_ambiente
  • Attivare l’Ambiente Virtuale:
\nome_ambiente\Scripts\activate
  • Su macOS e Linux:
source nome_ambiente/bin/activate

Il seguente comando disattiverà l’ambiente venv corrente:

deactivate

Opzione 2: Conda

conda create -n pyautogen python=3.10conda activate pyautogen

Il seguente comando disattiverà l’ambiente conda corrente:

conda deactivate

Python: AutoGen richiede Python versione ≥3.8

Installare AutoGen:

pip install pyautogen

Impostare la tua API

Gestire in modo efficiente le configurazioni API è fondamentale quando si lavora con modelli multipli e versioni API. OpenAI fornisce funzioni di utilità per assistere gli utenti in questo processo. È importante proteggere le chiavi API e i dati sensibili, memorizzandoli in modo sicuro in file .txt o .env o come variabili d’ambiente per lo sviluppo locale, evitando esposizioni accidentali.

Passaggi

1. Ottenere le chiavi API da OpenAI e, opzionalmente, da Azure OpenAI o altri fornitori. 2. Memorizzare in modo sicuro queste chiavi utilizzando uno dei seguenti metodi:

  • Variabili di Ambiente: Usa export OPENAI_API_KEY=‘tua-chiave’ nel tuo shell.
  • File di Testo: Salva la chiave in un file key_openai.txt.
  • File Env: Memorizza la chiave in un file .env, ad esempio OPENAI_API_KEY=sk-

Cos’è una Config_list?

La config_list svolge un ruolo cruciale nell’operazione di AutoGen, consentendo agli assistenti intelligenti di selezionare dinamicamente la configurazione del modello appropriata. Gestisce dettagli essenziali come le chiavi API, i punti di accesso e le versioni, garantendo il funzionamento regolare e affidabile degli assistenti in diverse attività.

Passaggi:

1. Memorizza le configurazioni in una variabile di ambiente chiamata OAI_CONFIG_LIST come una stringa JSON valida.

2. In alternativa, salva le configurazioni in un file JSON locale chiamato OAI_CONFIG_LIST.json

3. Aggiungi OAI_CONFIG_LIST al tuo file .gitignore nel tuo repository locale.

assistant = AssistantAgent(    name="assistant",    llm_config={        "timeout": 400,        "seed": 42,        "config_list": config_list,        "temperature": 0,    },)

Modi per Generare una Config_list

Puoi generare una config_list utilizzando vari metodi, a seconda del tuo caso d’uso:

  • get_config_list: Genera configurazioni per chiamate API principalmente dalle chiavi API fornite.
  • config_list_openai_aoai: Crea una lista di configurazioni utilizzando sia gli endpoint di Azure OpenAI che OpenAI, utilizzando le chiavi API dalle variabili di ambiente o dai file locali.
  • config_list_from_json: Carica le configurazioni da una struttura JSON, consentendoti di filtrare le configurazioni in base a criteri specifici.
  • config_list_from_models: Crea configurazioni basate su una lista fornita di modelli, utile per mirare a modelli specifici senza configurazione manuale.
  • config_list_from_dotenv: Costruisce una lista di configurazione da un file .env, semplificando la gestione di più configurazioni e chiavi API da un singolo file.

Ora, vediamo due metodi essenziali per generare una config_list:

Get_config_list

Usato per generare le configurazioni per chiamate API.

api_keys = ["TUA_OPENAI_API_KEY"]base_urls = None      api_keys,    base_urls=base_urls,    api_type=api_type,    api_version=api_version)print(config_list)

Config_list_from_json

Questo metodo carica le configurazioni da una variabile di ambiente o da un file JSON. Fornisce flessibilità consentendo agli utenti di filtrare le configurazioni in base a determinati criteri.

La tua struttura JSON dovrebbe assomigliare a questa:

# Esempio di file OAI_CONFIG_LIST[    {        "model": "gpt-4",        "api_key": "TUA_OPENAI_API_KEY"    },    {        "model": "gpt-3.5-turbo",        "api_key": "TUA_OPENAI_API_KEY",        "api_version": "2023-03-01-preview"    }]

config_list= autogen.config_list_from_json(    env_or_file="OAI_CONFIG_LIST",    # o OAI_CONFIG_LIST.json se viene aggiunta la estensione del filefilter_dict={"model": {            "gpt-4",            "gpt-3.5-turbo",        }    })

Caratteristiche Principali

  • AutoGen semplifica lo sviluppo di applicazioni LLM avanzate che coinvolgono conversazioni multi-agente, riducendo la necessità di uno sforzo manuale esteso. Semplifica l’orchestrazione, l’automazione e l’ottimizzazione di flussi di lavoro complessi di LLM, migliorando le prestazioni complessive e affrontando le limitazioni intrinseche.
  • Facilita la creazione di diversi pattern di conversazione per flussi di lavoro intricati, permettendo agli sviluppatori di creare agenti personalizzabili e interattivi. Con AutoGen, è possibile creare una vasta gamma di pattern di conversazione, tenendo conto di fattori come l’autonomia della conversazione, il numero di agenti e la topologia della conversazione.
  • La piattaforma offre una serie di sistemi operativi con diverse complessità, dimostrando la sua versatilità in diverse applicazioni di domini diversi. La capacità di AutoGen di supportare una vasta gamma di pattern di conversazione è esemplificata attraverso queste diverse implementazioni.
  • AutoGen fornisce un’inferenza LLM migliorata. Offre utilità come unificazione e caching delle API, insieme a pattern di utilizzo avanzati come gestione degli errori, inferenza multi-configurazione e programmazione del contesto, migliorando così le capacità di inferenza complessive.

Framework per la Conversazione Multi-Agent

AutoGen offre un framework unificato per la conversazione multi-agente come astrazione di alto livello nell’utilizzo di modelli fondamentali. Immagina di avere un gruppo di assistenti virtuali che possono parlare tra loro e lavorare insieme per completare compiti complessi, come organizzare un grande evento o gestire un progetto complicato. AutoGen li aiuta a farlo in modo efficiente ed efficace.

Agenti

Gli agenti AutoGen fanno parte del framework AutoGen. Questi agenti sono progettati per risolvere compiti tramite conversazioni tra agenti. Ecco alcune caratteristiche significative degli agenti AutoGen:

  • Conversabili: Gli agenti in AutoGen sono conversabili, il che significa che, proprio come le persone parlano tra loro, questi assistenti digitali possono inviare e ricevere messaggi per svolgere discussioni. Ciò li aiuta a lavorare insieme.
  • Personalizzabili: Gli agenti in AutoGen possono essere personalizzati per integrare LLM, esseri umani, strumenti o una combinazione di essi.

Agenti Incorporati in AutoGen

Abbiamo creato una classe speciale chiamata Agente Conversabile che aiuta i programmi informatici a comunicare tra loro per lavorare insieme su compiti. Questi agenti possono inviare messaggi e compiere diverse azioni in base ai messaggi che ricevono.

Ci sono due tipi principali di agenti:

  • Agente Assistente: Questo agente è come un assistente AI utile. Può scrivere codice Python per te da eseguire quando gli dai un compito. Utilizza un programma intelligente chiamato LLM (come GPT-4) per scrivere il codice. Può anche controllare i risultati e suggerire correzioni. Puoi modificare il suo comportamento fornendogli nuove istruzioni. Puoi anche regolare come LLM funziona con esso utilizzando llm_config.
  • Agente User-Proxy: Questo agente agisce come intermediario per le persone. Può chiedere assistenza agli esseri umani o eseguire codice quando necessario. Può anche utilizzare LLM per generare risposte quando non sta eseguendo codice. Puoi controllare l’esecuzione del codice e l’uso di LLM con impostazioni come code_execution_config e llm_config.

Questi agenti possono parlare tra loro senza l’aiuto degli esseri umani, ma gli umani possono intervenire se necessario. Puoi anche aggiungere ulteriori funzionalità utilizzando il metodo register_reply().

Caso d’uso: Framework Multi-agente di AutoGen per Rispondere all’Utente

Nel frammento di codice di seguito, definiamo un AssistenteAgente chiamato “Agente1” per svolgere la funzione di assistente per aiutare con domande generali, “Agente2” per svolgere la funzione di assistente per aiutare con domande tecniche e un UserProxyAgent chiamato “user_proxy” per agire come mediatore per l’utente umano. Utilizzeremo questi agenti successivamente per portare a termine un compito specifico.

import autogen# Importa la chiave API openaiconfig_list = config_list_from_json(env_or_file="OAI_CONFIG_LIST")# Crea due agentiagent1 = autogen.AssistantAgent(    name="Agente 1",    llm_config={        "seed": 42,        "config_list": config_list,        "temperature": 0.7,        "request_timeout": 1200,    },    system_message="Agente 1. Posso aiutare con domande generali.",)agent2 = autogen.AssistantAgent(    name="Agente 2",    llm_config={        "seed": 42,        "config_list": config_list,        "temperature": 0.7,        "request_timeout": 1200,    },    system_message="Agente 2. Sono qui per assistere con domande tecniche.",)# Crea un agente User Proxyuser_proxy = autogen.UserProxyAgent(    name="User Proxy",    human_input_mode="ALWAYS",    code_execution_config=False,)# Crea un gruppo di chat per la conversazionechat_group = autogen.GroupChat(    agents=[agent1, agent2, user_proxy],    messages=[],    max_round=10,)# Crea un manager di chat di gruppochat_manager = autogen.GroupChatManager(groupchat=chat_group, llm_config=agent_config)# Avvia la conversazione con una domanda dell'utenteuser_proxy.initiate_chat(    chat_manager,    message="Puoi spiegare il concetto di apprendimento automatico?")

In questo semplice esempio, due agenti, “Agente 1” e “Agente 2”, lavorano insieme per fornire risposte alle domande di un utente. L’agente “User Proxy” facilita la comunicazione tra l’utente e gli altri agenti. Questo dimostra un caso d’uso di base del framework di conversazione multi-agente di AutoGen per rispondere alle query degli utenti.

Supporto a Diverse Pattern di Conversazione

AutoGen supporta una varietà di stili di conversazione, consentendo sia interazioni completamente automatizzate che coinvolgimento umano.

Stili di Conversazione Diversi

  1. Conversazioni Autonome: Dopo una configurazione iniziale, è possibile avere conversazioni completamente automatizzate in cui gli agenti lavorano in modo indipendente.
  2. Umano-In-The-Loop: AutoGen può essere configurato per coinvolgere gli esseri umani nel processo di conversazione. Ad esempio, è possibile impostare il human_input_mode su “SEMPRE” per assicurarsi che l’input umano venga incluso quando necessario, il che è prezioso in molte applicazioni.

Conversazioni Statiche vs Dinamiche

AutoGen consente sia modelli di conversazione statici che dinamici.

  1. Conversazioni Statiche: Queste seguono strutture di conversazione predefinite e sono consistenti indipendentemente dall’input.
  2. Conversazioni Dinamiche: Le conversazioni dinamiche si adattano al flusso effettivo della conversazione, rendendole adatte per applicazioni complesse in cui i modelli di interazione non possono essere predeterminati.

Approcci per Conversazioni Dinamiche

AutoGen offre due metodi per ottenere conversazioni dinamiche:

Risposta Automatica Registrata

È possibile configurare funzioni di risposta automatica, consentendo agli agenti di decidere chi dovrebbe parlare successivamente in base al messaggio e al contesto attuali. Questo approccio è dimostrato in un esempio di chat di gruppo, in cui LLM determina il prossimo interlocutore nella chat.

esploriamo un nuovo caso d’uso per la “Risposta Automatica Registrata” nel contesto di uno scenario di chat di gruppo dinamico in cui un LLM (Modello di Linguaggio) decide chi dovrebbe parlare successivamente in base al contenuto e al contesto della conversazione.

Caso d’Uso: Creazione di Contenuti Collaborativi

In questo caso d’uso, abbiamo una chat di gruppo dinamica che coinvolge tre agenti: un UserProxyAgent che rappresenta un utente, un Writer Agent e un Editor Agent. L’obiettivo è creare collaborativamente dei contenuti scritti. La funzione di Risposta Automatica Registrata consente al LLM di decidere quando passare da un ruolo all’altro tra scrittori e editor in base alla qualità e al completamento del contenuto.

# Importa la chiave API openaiconfig_list = config_list_from_json(env_or_file = "OAI_CONFIG_LIST")# Crea agenti con configurazioni de LLMllm_config = {"config_list": config_list, "seed": 42}user_proxy = autogen.UserProxyAgent(    name = "User_proxy",    system_message = "Crea un contenuto.",    code_execution_config = {"last_n_messages": 2, "work_dir": "creazione_contenuto"},    human_input_mode = "TERMINATE")

Costruzione Agenti

writer = autogen.AssistantAgent(    name = "Scrittore",    llm_config = llm_config,)editor = autogen.AssistantAgent(    name = "Editor",    system_message = "Un editor per contenuti scritti.",    llm_config = llm_config,)groupchat = autogen.GroupChat(agents = [user_proxy, writer, editor], messages = [], max_round = 10)manager = autogen.GroupChatManager(groupchat = groupchat, llm_config = llm_config)

Inizia Chat

# Avvia la chat con l'utente come creatore di contenutiuser_proxy.initiate_chat(  manager,   message = "Scrivi un breve articolo sull'intelligenza artificiale in campo medico.")# Digita 'exit' per terminare la chat.

In questo scenario, l’utente, rappresentato dall’UserProxyAgent, avvia una conversazione per creare un articolo scritto. Inizialmente, WriterAgent assume il ruolo di stesura del contenuto. EditorAgent, d’altra parte, è disponibile per fornire modifiche e suggerimenti. La chiave qui è la funzione di Risposta Automatica Registrata, che consente al LLM di valutare la qualità del contenuto scritto. Quando riconosce che il contenuto è pronto per la revisione, può passare automaticamente all’EditorAgent, che affinerà e migliorerà l’articolo.

Questa conversazione dinamica garantisce che il processo di scrittura sia collaborativo ed efficiente, con la LLM che decide quando coinvolgere l’editore in base alla qualità dei contenuti scritti.

Chiamata di funzione basata su LLM

LLM (ad esempio GPT-4) può decidere se chiamare funzioni specifiche in base alla conversazione in corso. Queste funzioni possono coinvolgere agenti aggiuntivi, consentendo conversazioni dinamiche tra più agenti.

Caso d’uso: Traduzione linguistica e contesto culturale

In questo scenario, abbiamo due agenti: un Assistant Agent, che è esperto nella traduzione tra lingue, e un User-Proxy Agent che rappresenta un utente che ha bisogno di aiuto nella traduzione. La sfida non è solo tradurre parole, ma anche comprendere il contesto culturale per garantire traduzioni accurate e culturalmente sensibili.

import autogen# Definire la configurazione degli agenticonfig_list = autogen.config_list_from_json(    "OAI_CONFIG_LIST",    filter_dict={        "model": ["gpt-4", "gpt4", "gpt-4-32k", "gpt-4-32k-0314", "gpt-4-32k-v0314"],    },)# Definire una funzione per la conversazione dinamicad# Creare un assistente per la traduzione    assistant_translator = autogen.AssistantAgent(        name="assistant_translator",        llm_config={            "temperature": 0.7,            "config_list": config_list,        },    )# Creare un agente proxy utente che rappresenta l'utente    user = autogen.UserProxyAgent(        name="user",        human_input_mode="ALWAYS",        code_execution_config={"work_dir": "user"},    )123456bash# Avviare una sessione di chat con l'assistente per la traduzione    user.initiate_chat(assistant_translator, message=message)    user.stop_reply_at_receive(assistant_translator)123bash# Inviare un segnale all'assistente per# finalizzare la traduzione    user.send("Per favore, fornisci una traduzione culturalmente sensibile.", assistant_translator)    # Restituisce l'ultimo messaggio ricevuto dall'assistente return user.last_message()["content"]12345bash# Creare agenti per l'utente e l'assistenteassistant_for_user = autogen.AssistantAgent(    name="assistant_for_user",    system_message="Sei un assistente linguistico.     Rispondi TERMINATE quando la traduzione è completa.",    llm_config={        "timeout": 600,        "seed": 42,        "config_list": config_list,        "temperature": 0.7,        "functions": [            {                "name": "translate_with_cultural_context",                "description": "Traduci e assicura                 sensibilità culturale.",                "parameters": {                    "type": "object",                    "properties": {                        "message": {                            "type": "string",                            "description": "Testo da tradurre                             con considerazione della sensibilità culturale."                        }                    },                    "required": ["message"],                }            }        ],    })# Creare un agente proxy utente che rappresenta l'utenteuser = autogen.UserProxyAgent(    name="user",    human_input_mode="TERMINATE",    max_consecutive_auto_reply=10,    code_execution_config={"work_dir": "user"},    function_map={"translate_with_cultural_context": translate_with_cultural_context},)# Tradurre una frase con sensibilità culturaleuser.initiate_chat(    assistant_for_user,    message="Traduci la frase     'Grazie' in una lingua che mostra rispetto nella cultura del destinatario.")

In questo caso d’uso, l’utente avvia una conversazione con una richiesta di traduzione. L’assistente cerca di fornire la traduzione, ma quando è richiesta sensibilità culturale, chiama la funzione “translate_with_cultural_context” per interagire con l’utente, che potrebbe avere conoscenze culturali. Questa conversazione dinamica garantisce che le traduzioni siano non solo linguisticamente accurate, ma anche culturalmente appropriate.

Versatilità in diverse applicazioni

  • Generazione, esecuzione e debug del codice
  • Collaborazione tra più agenti (oltre 3 agenti)
  • Applicazioni
  • Utilizzo di strumenti
  • Insegnamento e apprendimento dell’agente

Inferenza avanzata

AutoGen fornisce capacità avanzate di inferenza dei modelli di linguaggio (LLM). Include autogen.OpenAIWrapper per openai>=1 e autogen.Completion, che può essere utilizzato come sostituto di openai.Completion e openai.ChatCompletion con funzionalità aggiuntive per openai<1. Utilizzare AutoGen per l’inferenza offre vari vantaggi, inclusa l’ottimizzazione delle prestazioni, unificazione dell’API, caching, gestione degli errori, inferenza multi-configurazione, filtraggio dei risultati, templating e altro ancora.

Regolazione dei parametri di inferenza (per openai<1)

Nel caso dei modelli di base per la generazione di testo, il costo complessivo è spesso legato al numero di token utilizzati sia in ingresso che in uscita. Dal punto di vista di uno sviluppatore di applicazioni che utilizza questi modelli, l’obiettivo è massimizzare l’utilità del testo generato rimanendo entro un budget prefissato per l’inferenza. Per ottenere questa ottimizzazione è necessario regolare specifici iperparametri che possono influenzare significativamente sia la qualità del testo generato che il suo costo.

  1. Selezione del modello: È necessario specificare l’ID del modello che si desidera utilizzare, il quale influisce notevolmente sulla qualità e lo stile del testo generato.
  2. Prompt o messaggi: Questi sono gli input iniziali che impostano il contesto per la generazione di testo. Fungono da punto di partenza per il modello per generare testo.
  3. Limite massimo di token (Max_tokens): Questo parametro determina il numero massimo di parole o componenti di parole nel testo generato. Aiuta a gestire la lunghezza dell’output.
  4. Controllo della temperatura: La temperatura, su una scala da 0 a 1, influenza il livello di casualità nel testo generato. Valori più alti producono maggiore diversità, mentre valori più bassi rendono il testo più prevedibile.
  5. Probabilità top (Top_p): Questo valore, anch’esso compreso tra 0 e 1, influisce sulla probabilità di scegliere i token. Valori più bassi danno priorità ai token comuni, mentre valori più alti incoraggiano il modello a esplorare una gamma più ampia.
  6. Numero di risposte (N): N indica quante risposte il modello genera per un prompt dato. Avere più risposte può produrre output diversi ma comporta costi maggiori.
  7. Condizioni di stop: Le condizioni di stop sono parole o frasi specifiche che, quando incontrate nel testo generato, interrompono il processo di generazione. Sono utili per controllare la lunghezza e il contenuto dell’output.

Questi iperparametri sono interconnessi e le loro combinazioni possono avere effetti complessi sul costo e sulla qualità del testo generato.

Utilizzo di AutoGen per la Regolazione

È possibile utilizzare AutoGen per regolare il vostro LLM in base a:

  • Dati di validazione: Raccogliere diverse istanze per validare l’efficacia del processo di regolazione. Queste istanze vengono tipicamente memorizzate come dizionari, ognuno contenente descrizioni del problema e soluzioni.
  • Funzione di valutazione: Creare una funzione di valutazione per valutare la qualità delle risposte in base ai dati di validazione. Questa funzione prende una lista di risposte e altri input dai dati di validazione e produce metriche, come ad esempio il successo.
  • Metrica da ottimizzare: Scegliere una metrica da ottimizzare, di solito basata su metriche aggregate su tutti i dati di validazione. Ad esempio, si può ottimizzare per il “successo” con diverse modalità di ottimizzazione.
  • Spazio di ricerca: Definire lo spazio di ricerca per ciascun iperparametro. Ad esempio, specificare il modello, il prompt/i messaggi, max_tokens e altri parametri, sia come costanti che utilizzando intervalli di ricerca predefiniti.
  • Budget: Impostare budget per l’inferenza e l’ottimizzazione. Il budget di inferenza riguarda il costo medio per istanza di dati, mentre il budget di ottimizzazione determina il budget totale allocato per il processo di regolazione.

Per eseguire la regolazione, utilizzare autogen.Completion.tune, che restituirà la configurazione ottimizzata e fornirà informazioni su tutte le configurazioni e i risultati testati.

Unificazione dell’API

autogen.OpenAIWrapper.create() per creare completamenti sia per modelli di chat che non di chat, nonché sia per l’API OpenAI che per l’API Azure OpenAI. Ciò unifica l’utilizzo dell’API per diversi modelli e punti di accesso.

Caching

I risultati delle chiamate API vengono memorizzati localmente per garantire la riproducibilità e il risparmio dei costi. È possibile controllare il comportamento della cache specificando un seed.

Gestione degli errori

AutoGen consente di mitigare gli errori di runtime passando una lista di configurazioni di modelli/punti di accesso diversi. Proverà diverse configurazioni finché non verrà restituito un risultato valido, il che può essere vantaggioso quando ci si preoccupa dei limiti di velocità.

Template

I template nei prompt e nei messaggi possono essere automaticamente popolati con il contesto, rendendo più comodo lavorare con contenuti dinamici.

Logging

AutoGen fornisce funzionalità di logging per le chiamate API, consentendo di tenere traccia e analizzare la cronologia delle richieste e delle risposte delle API per il debug e l’analisi. È possibile passare tra i formati di logging delle chiamate API compatti e individuali.

Grazie a queste capacità, AutoGen è uno strumento prezioso per la regolazione e l’ottimizzazione dell’inferenza LLM in funzione delle vostre specifiche esigenze e vincoli.

Conclusione

In questo viaggio attraverso AutoGen, abbiamo svelato la prospettiva di un futuro in cui la collaborazione tra umani e intelligenza artificiale non conosce confini. Questo framework di conversazione multi-agente ci permette di creare i nostri team personalizzati di intelligenza artificiale, cancellando le linee di demarcazione tra esseri umani e macchine. AutoGen ci spinge verso un regno di possibilità infinite. Semplifica compiti complessi, massimizza il potenziale dei modelli LLM e permette lo sviluppo della prossima generazione di applicazioni AI. Mentre concludiamo, la domanda non è “se”, ma “come” intraprenderai il tuo viaggio AutoGen e abbraccerai un mondo in cui la collaborazione è davvero illimitata. Inizia a costruire, inizia a innovare e sblocca oggi il potenziale di AutoGen!

Punti principali

  • AutoGen introduce una nuova era in cui è possibile creare il proprio team personalizzato di intelligenza artificiale, composto da agenti conversabili specializzati in vari ambiti, che collaborano senza soluzione di continuità.
  • AutoGen semplifica compiti complessi e automatizza flussi di lavoro, diventando uno strumento potente per orchestrare ed ottimizzare compiti che coinvolgono i modelli linguistici di grandi dimensioni (LLM).
  • Gestire in modo sicuro le chiavi API e i dati sensibili è fondamentale quando si lavora con AutoGen. È essenziale seguire le migliori pratiche per proteggere le proprie informazioni.
  • La config_list è un componente cruciale, che permette agli agenti di adattarsi ed eccellere in vari compiti gestendo efficacemente configurazioni multiple e interazioni con l’API di OpenAI.

Domande frequenti

I media mostrati in questo articolo non sono di proprietà di Analytics Vidhya e sono utilizzati a discrezione dell’autore.