Corso
Se vuoi integrare nel tuo applicativo un modello linguistico più naturale e altamente accurato, Claude 2 di Anthropic è un'ottima scelta. Include un'app di chat pubblica (simile a ChatGPT), un'API e un playground per varie versioni dei modelli.
Scopri le differenze tra le risposte di Claude e quelle di ChatGPT nell'articolo Claude vs. ChatGPT: qual è il miglior assistente AI per i data scientist nel 2023?
In questo tutorial vedremo i modelli Claude 2X e come accedervi tramite l'API Python. Tratteremo la configurazione dell'API, l'invio di query di base e la gestione delle risposte. Impareremo anche lo streaming delle query, le richieste asincrone e alcune funzioni più avanzate dell'API. Tutto il codice sorgente di questo tutorial è disponibile in questo workbook DataLab; puoi facilmente crearne una copia per modificare ed eseguire il codice, direttamente dal browser, senza dover installare nulla sul tuo computer.
Alla fine, dovresti avere una buona comprensione di come integrare Claude 2 nella tua applicazione per sfruttarne le avanzate capacità di linguaggio naturale.
Se sei nuovo alla generative AI, il nostro percorso AI Fundamentals ti aiuta a imparare nuove tecnologie e modelli per prepararti al mondo dell'IA di domani.
Nozioni di base su Claude 2
Anthropic ha lanciato di recente Claude 2, l'ultima versione del suo large language model. Ha mostrato prestazioni migliorate su diversi compiti con risposte più lunghe e coerenti. Inoltre, offre accesso via API e un sito pubblico in beta, disponibile su claude.ai.

Immagine da claude.ai
Claude 2 è noto per la conversazione naturale, con capacità di ragionamento migliorate, memoria ampliata e tracciamento del contesto, riducendo al minimo gli output dannosi. Ha mostrato progressi in capacità come coding, ragionamento matematico e logica.
Per esempio, nel ragionamento legale, Claude 2 ha ottenuto il 76,5% nella sezione a scelta multipla dell'esame da avvocato, il 3,5% in più rispetto a Claude 1.3. Valutato nei test di attitudine accademica, Claude 2 supera il 90º percentile nelle sezioni di lettura e scrittura del GRE, allineandosi ai candidati medi nel ragionamento quantitativo.
Presentazione di Claude 2.1
Il 21 novembre 2023, Anthropic ha rilasciato Claude 2.1, con notevoli miglioramenti che abilitano un ragionamento più avanzato riducendo i contenuti allucinati. Un obiettivo chiave è stato aumentare l'affidabilità attraverso una maggiore onestà. Claude 2.1 ora è più trasparente riguardo alle lacune nella sua base di conoscenza, invece di tentare di inventare informazioni.
Offre anche una finestra di contesto più ampia, da 200K, che consente a Claude di riferirsi e fare cross-check su contenuti lunghi come articoli scientifici per mantenere la coerenza fattuale in sintesi o analisi estese.
Claude 2.1 ha inoltre introdotto un uso degli strumenti in via sperimentale. Consente a Claude 2 di recuperare ed elaborare dati da fonti aggiuntive con alta accuratezza, invocando funzioni ed eseguendo azioni.
Configurare Claude 2
L'accesso all'API di Anthropic è attualmente limitato a un gruppo selezionato di persone e organizzazioni. Se vuoi essere tra i primi a provarla, puoi compilare il modulo di richiesta disponibile sul sito. Anthropic sta concedendo l'accesso gradualmente per garantire sicurezza e scalabilità dell'API. Tieni presente che, a causa dell'alto volume di richieste, potrebbe volerci del tempo per ottenere l'accesso all'API.
Una volta ricevuta l'email di approvazione da Anthropic e creato il tuo account, verrai reindirizzato alla dashboard. La dashboard include un link al workbench, simile a OpenAI Playground, dove puoi passare tra diversi modelli e analizzare le risposte. Inoltre, contiene anche i link per generare le chiavi API e la documentazione.

Immagine dalla Dashboard
Per creare una chiave API, fai clic sul pulsante "Get API Keys" e inserisci il nome della chiave. Una volta fatto, riceverai una chiave che potrai usare per generare risposte tramite l'API di Claude 2.

Immagine da Anthropic
Per impostare una chiave API come variabile d'ambiente, puoi usare un comando Bash o impostarla in un workbook DataLab. Per prima cosa, avvia un nuovo workbook e poi vai al pulsante "Environment" nel pannello di sinistra. Clicca sul pulsante con il più e aggiungi nome e valore della variabile. Infine, premi Salva per applicare le modifiche.

Immagine da DataLab
Nota: puoi inserire la chiave API direttamente nella funzione Python, ma è fortemente sconsigliato per motivi di sicurezza.
Per accedere all'API di Anthropic in Python, devi prima installare l'Anthropic SDK per Python usando PIP.
pip install anthropicAccedere all'API di Claude 2
In questa sezione, vedremo come accedere all'API di Anthropic per generare risposte usando il modello Claude 2.1. Puoi seguire il codice creando una copia di questo workbook: Primi passi con Claude 2 e l'API di Claude 2.
Caricheremo la libreria os per accedere alla chiave API e la libreria anthropic per creare la pipeline di IA conversazionale usando la chiave API.
from anthropic import Anthropic, HUMAN_PROMPT, AI_PROMPTimport osanthropic_api_key = os.environ["ANTHROPIC_API_KEY"]anthropic = Anthropic( api_key= anthropic_api_key,)"HUMAN_PROMPT" e "AI_PROMPT" sono in realtà stringhe per creare la struttura corretta del prompt per la pipeline di generazione.

Ora genereremo la risposta specificando la versione del modello, la lunghezza massima dei token e il prompt. Assicurati che il tuo prompt segua il template di Claude 2X.
completion = anthropic.completions.create( model="claude-2.1", max_tokens_to_sample=350, prompt=f"{HUMAN_PROMPT} How do I learn Python in a week?{AI_PROMPT}",)print(completion.completion)Abbiamo ottenuto un ottimo risultato. Claude 2.1 ci fornisce un piano dettagliato per imparare Python in una settimana.

Anthropic offre supporto per richieste API sia sincrone che asincrone.
Le API sincrone eseguono le richieste in sequenza, bloccando fino a quando non si riceve una risposta prima di effettuare la chiamata successiva. Le API asincrone, invece, consentono più richieste concorrenti senza bloccare, gestendo le risposte man mano che arrivano. Questo rende le API asincrone più efficienti e scalabili rispetto a quelle sincrone.
Per chiamare l'API in modo asincrono, importa AsyncAnthropic invece di Anthropic. Definisci una funzione usando la sintassi async e usa await con ogni chiamata API.
from anthropic import AsyncAnthropicanthropic = AsyncAnthropic()async def main(): completion = await anthropic.completions.create( model="claude-2.1", max_tokens_to_sample=300, prompt=f"{HUMAN_PROMPT}How many moons does Jupiter have?{AI_PROMPT}", ) print(completion.completion)await main()Abbiamo ottenuto un risultato quasi accurato. Alcune fonti indicano 79, ma la NASA afferma che Giove ha 95 lune.
Nota: usa asyncio.run(main()) invece di await main() quando esegui il codice in un file Python .py invece che in un Jupyter Notebook.
LLM streaming con Claude 2
Lo streaming è diventato una tecnica essenziale per i large language model, offrendo diversi vantaggi rispetto ai metodi di elaborazione tradizionali. Invece di attendere l'intera risposta, lo streaming consente di elaborare l'output non appena è disponibile. Questo approccio riduce la latenza percepita restituendo l'output del modello linguistico token per token, anziché tutto in una volta.
Per attivare lo streaming, imposta l'argomento 'stream' su `True` nella funzione di completion.
anthropic = Anthropic()stream = anthropic.completions.create( prompt=f"{HUMAN_PROMPT}Could you please write a Python code to train a simple classification model?{AI_PROMPT}", max_tokens_to_sample=350, model="claude-2.1", stream=True,)for completion in stream: print(completion.completion, end="", flush=True)Sembra che stiamo ricevendo la risposta riga per riga molto più velocemente, come se Claude 2.1 la stesse digitando.

Allo stesso modo, possiamo eseguire lo streaming anche in modalità `async`. Nota che abbiamo semplicemente aggiunto `await` davanti alla funzione di completion e `async` prima del ciclo for.
anthropic = AsyncAnthropic()stream = await anthropic.completions.create( prompt=f"{HUMAN_PROMPT}Please write a blog post on Neural Networks and use Markdown format. Kindly make sure that you proofread your work for any spelling, grammar, or punctuation errors.{AI_PROMPT}", max_tokens_to_sample=350, model="claude-2.1", stream=True,)async for completion in stream: print(completion.completion, end="", flush=True)La nostra IA generativa sta facendo un buon lavoro nello scrivere un post ben fatto.

Dai un'occhiata all'elenco di 7 strumenti essenziali di generative AI che possono aiutarti a creare chatbot completi e sensibili al contesto.
Funzionalità avanzate e personalizzazioni
L'API di Anthropic offre diverse funzionalità avanzate e opzioni di personalizzazione oltre alla semplice generazione di risposte:
- Gestione degli errori: tipi di eccezioni specifici come APIConnectionError e APIStatusError consentono di gestire in modo pulito problemi di connessione ed errori HTTP.
- Header predefiniti: l'header anthropic-version viene inviato automaticamente per identificare il client. Può essere personalizzato modificando l'argomento
default_headersnell'oggettoanthropic. - Logging: il debug logging può essere abilitato impostando la variabile d'ambiente ANTHROPIC_LOG. Questo aiuta nella risoluzione dei problemi.
- Client HTTP: il client HTTPX che gestisce le richieste può essere configurato per proxy, transport e funzionalità avanzate aggiuntive.
- Gestione delle risorse: puoi chiudere manualmente il client usando il metodo
.close()o con un context manager che chiude automaticamente all'uscita. - Tecniche di prompting: la documentazione dell'API fornisce diverse parole chiave per ottimizzare i tuoi input per testo, documenti strutturati, snippet di codice e risultati RAG.
- Validazione dei prompt: l'API esegue una sanitizzazione e validazione di base del prompt per assicurarsi che sia ottimizzato per il modello Claude 2.
Per saperne di più sulle funzioni avanzate, consulta la documentazione dell'API di Anthropic.
Applicazioni pratiche dell'API di Claude 2
L'API di Claude 2 ha applicazioni pratiche diffuse in molti settori e domini. Nella creazione di contenuti e copywriting, può aiutare a redigere articoli di alta qualità, materiali di marketing e scrittura creativa. Inoltre, in:
- Traduzione linguistica: puoi creare applicazioni che forniscono traduzioni in tempo reale sfruttando capacità multilingue avanzate.
- Istruzione: è ottima per l'apprendimento personalizzato. Gli studenti possono sfruttarla per apprendere più velocemente argomenti complessi.
- Assistenza clienti: fornisce risposte contestuali migliorate, più accurate e simili a quelle umane.
- Assistenza alla programmazione: genera snippet di codice, effettua debugging e spiega concetti complessi per velocizzare lo sviluppo
- Arti creative: collabora con artisti per generare contenuti come composizioni musicali
- Legale/compliance: redige documenti, riassume normative e garantisce la conformità regolamentare.
Conclusione
L'API Python offre un modo potente per accedere ai modelli di IA conversazionale all'avanguardia di Anthropic. Abbiamo visto le basi della configurazione con le chiavi di accesso, le chiamate API sincrone e asincrone, le risposte in streaming e alcune funzionalità avanzate. Inoltre, abbiamo esplorato le applicazioni pratiche di Claude 2.
Sebbene l'API sia ancora a disponibilità limitata, Anthropic sta concedendo progressivamente più accessi nel tempo. Man mano che Claude 2 continua a evolversi, l'API Python permetterà agli sviluppatori di integrare facilmente le sue funzionalità all'avanguardia in un'ampia gamma di prodotti e servizi.
Spero che questa introduzione all'API di Claude 2 ti sia stata utile! Sentiti libero di sperimentare con gli esempi di codice per vedere in prima persona le impressionanti capacità di Claude 2. Ecco un elenco di 5 progetti che puoi creare con modelli di generative AI per ispirarti a costruire il tuo prossimo progetto generativo con Claude 2.
In quanto data scientist certificato, sono appassionato di sfruttare tecnologie all’avanguardia per creare applicazioni di machine learning innovative. Con una solida esperienza in riconoscimento vocale, analisi e reportistica dei dati, MLOps, AI conversazionale e NLP, ho affinato le mie competenze nello sviluppo di sistemi intelligenti in grado di avere un impatto concreto. Oltre alla mia expertise tecnica, sono anche un comunicatore efficace, con il talento di rendere chiari e sintetici concetti complessi. Di conseguenza, sono diventato un blogger molto seguito in ambito data science, condividendo idee ed esperienze con una community in crescita di professionisti dei dati. Attualmente mi concentro sulla creazione e sull’editing di contenuti, lavorando con large language model per sviluppare contenuti potenti e coinvolgenti che possano aiutare aziende e singoli a valorizzare al meglio i propri dati.



