Costruisci i tuoi strumenti AI in Python utilizzando l’API OpenAI

Con OpenAI che ora supporta modelli fino a GPT-4 Turbo, i sviluppatori Python hanno un’opportunità incredibile per esplorare funzionalità AI avanzate. Questo tutorial offre uno sguardo approfondito su come integrare l’API ChatGPT nei tuoi script Python, guidandoti attraverso le fasi iniziali di setup e portandoti all’uso efficace dell’API.

L’API ChatGPT si riferisce all’interfaccia di programmazione che consente agli sviluppatori di interagire con e utilizzare i modelli GPT per generare risposte conversazionali. Ma in realtà è solo l’API universale di OpenAI che funziona per tutti i loro modelli.

Poiché GPT-4 Turbo è più avanzato e tre volte meno costoso di GPT-4, non c’è mai stato un momento migliore per sfruttare questa potente API in Python, quindi iniziamo!

Table of Contents

Configurazione dell’ambiente

Per iniziare, ti guideremo attraverso la configurazione dell’ambiente per lavorare con l’API OpenAI in Python. Le prime fasi includono l’installazione delle librerie necessarie, la configurazione dell’accesso all’API e la gestione delle chiavi API e dell’autenticazione.

Installazione delle librerie Python necessarie

Prima di iniziare, assicurati di avere Python installato nel tuo sistema. Consigliamo di utilizzare un ambiente virtuale per mantenere tutto organizzato. Puoi creare un ambiente virtuale con il seguente comando:

python -m venv chatgpt_env

Attiva l’ambiente virtuale eseguendo:

  • chatgpt_env\Scripts\activate (Windows)
  • source chatgpt_env/bin/activate (macOS o Linux)

Successivamente, dovrai installare le librerie Python richieste che includono la libreria client Python OpenAI per interagire con l’API OpenAI e il pacchetto python-dotenv per gestire la configurazione. Per installare entrambi i pacchetti, esegui il seguente comando:

pip install openai python-dotenv

Configurazione dell’accesso all’API OpenAI

Per effettuare una richiesta all’API OpenAI, devi prima registrarti sul platform di OpenAI e generare la tua chiave API unica. Segui questi passaggi:

  1. Visita la pagina delle chiavi API di OpenAI e crea un nuovo account, o effettua il login se hai già un account.
  2. Una volta effettuato il login, naviga nella sezione delle chiavi API e clicca su Crea nuova chiave segreta.
  3. Copia la chiave API generata per un uso successivo. In caso contrario, dovrai generarne una nuova se la perdi. Non sarai in grado di visualizzare le chiavi API attraverso il sito web di OpenAI.

pagina delle chiavi API di OpenAI

Chiave API generata che può essere utilizzata ora

Chiave API e Autenticazione

Dopo aver ottenuto la tua chiave API, consigliamo di memorizzarla come variabile di ambiente per motivi di sicurezza. Per gestire le variabili di ambiente, utilizza il pacchetto python-dotenv. Per impostare una variabile di ambiente contenente la tua chiave API, segui questi passaggi:

  1. Crea un file chiamato .env nella directory del tuo progetto.

  2. Aggiungi la seguente riga al file .env, sostituendo your_api_key con la chiave API effettiva che hai copiato in precedenza: CHAT_GPT_API_KEY=your_api_key.

  3. Nel tuo codice Python, carica la chiave API dal file .env utilizzando la funzione load_dotenv dal pacchetto python-dotenv:

  import openai
  from openai import OpenAI
  import os
  from dotenv import load_dotenv

  # Carica la chiave API dal file .env
  load_dotenv()
  client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))

Nota: Nella versione più recente della libreria Python di OpenAI, è necessario instanziare un client OpenAI per effettuare chiamate API, come mostrato di seguito. Questa è una modifica rispetto alle versioni precedenti, dove si utilizzavano direttamente metodi globali.

Ora che hai aggiunto la tua chiave API e l’ambiente è configurato e pronto per l’uso dell’API OpenAI in Python. Nelle prossime sezioni di questo articolo, esploreremo l’interazione con l’API e la costruzione di app di chat utilizzando questo potente strumento.

Ricorda di aggiungere il frammento di codice sopra a ogni sezione di codice qui sotto prima di eseguirlo.

Utilizzo dell’API OpenAI in Python

Dopo aver caricato l’API dal file .env, possiamo effettivamente iniziare ad utilizzarla all’interno di Python. Per utilizzare l’API OpenAI in Python, possiamo effettuare chiamate API utilizzando l’oggetto client. Quindi possiamo passare una serie di messaggi come input all’API e ricevere un messaggio generato dal modello come output.

Creazione di una semplice richiesta ChatGPT

  1. Assicurati di aver completato i passaggi precedenti: creazione di un ambiente virtuale, installazione delle librerie necessarie e generazione della tua chiave segreta OpenAI e del file .env nella directory del progetto.

  2. Utilizza il seguente frammento di codice per impostare una semplice richiesta ChatGPT:

  # Creare una completamento di chat
  chat_completion = client.chat.completions.create(
      model="gpt-4",
      messages=[{"role": "user", "content": "query"}]
  )
  print(chat_completion.choices[0].message.content)

In questo caso, client.chat.completions.create è un metodo chiamato sull’oggetto client. L’attributo chat accede alle funzionalità specifiche della chat dell’API, e completions.create è un metodo che richiede al modello AI di generare una risposta o una completamento basato sull’input fornito.

Sostituisci il query con il prompt che desideri eseguire, e sentiti libero di utilizzare qualsiasi modello GPT supportato al posto del GPT-4 selezionato sopra.

Gestione degli errori

Durante la creazione di richieste, possono verificarsi vari problemi, inclusi problemi di connettività di rete, superamento dei limiti di velocità, o altri codici di stato di risposta non standard. Pertanto, è essenziale gestire correttamente questi codici di stato. Possiamo utilizzare i blocchi try e except di Python per mantenere il flusso del programma e una migliore gestione degli errori:

# Prova a creare una completamento di chat
try:
    chat_completion = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": "query"}],
        temperature=1,
        max_tokens=150  # Regola il numero di token come necessario
    )
    print(chat_completion.choices[0].message.content)

except openai.APIConnectionError as e:
    print("The server could not be reached")
    print(e.__cause__)

except openai.RateLimitError as e:
    print("A 429 status code was received; we should back off a bit.")

except openai.APIStatusError as e:
    print("Another non-200-range status code was received")
    print(e.status_code)
    print(e.response)

Nota: è necessario disporre di crediti disponibili per poter utilizzare qualsiasi modello dell’API di OpenAI. Se sono trascorsi più di tre mesi dalla creazione del tuo account, i tuoi crediti gratuiti probabilmente sono scaduti e dovrai acquistare ulteriori crediti (un minimo di $5).

Ecco alcuni modi in cui puoi configurare ulteriormente le tue richieste all’API:

  • Max Tokens. Limita la lunghezza massima dell’output possibile in base alle tue esigenze impostando il parametro max_tokens. Questo può essere una misura di risparmio, ma tieni presente che questo taglia semplicemente il testo generato che supera il limite, non rendendo l’output complessivo più breve.
  • Temperatura. Regola il parametro temperatura per controllare la casualità. (Valori più alti rendono le risposte più diverse, mentre valori più bassi producono risposte più coerenti.)

Se alcuni parametri non vengono impostati manualmente, utilizzano il valore predefinito del modello corrispondente, come 0 – 7 e 1 per GPT-3.5-turbo e GPT-4, rispettivamente.

Oltre ai parametri sopra, ci sono numerosi altri parametri e configurazioni che puoi fare per utilizzare le capacità di GPT esattamente come vuoi. Studiare la documentazione dell’API di OpenAI è consigliato per riferimento.

Tuttavia, sono ancora necessari prompt efficaci e contestuali, indipendentemente da quante configurazioni di parametri vengano fatte.

Tecniche avanzate nell’integrazione dell’API

In questa sezione, esploreremo tecniche avanzate per integrare l’API OpenAI nei tuoi progetti Python, concentrandoci sull’automazione delle attività, sull’utilizzo delle richieste Python per il recupero dei dati e sulla gestione delle richieste di grandi dimensioni all’API.

Automazione delle attività con l’API OpenAI

Per rendere il tuo progetto Python più efficiente, puoi automatizzare varie attività utilizzando l’API OpenAI. Ad esempio, potresti voler automatizzare la generazione di risposte e-mail, risposte di supporto clienti o creazione di contenuti.

Ecco un esempio di come automatizzare un’attività utilizzando l’API OpenAI:

def automated_task(prompt):
    try:
        chat_completion = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}],
            max_tokens=250
        )
        return chat_completion.choices[0].message.content
    except Exception as e:
        return str(e)

# Esempio di utilizzo
generated_text = automated_task("Write an short note that's less than 50 words to the development team asking for an update on the current status of the software update")
print(generated_text)

Questa funzione accetta un prompt e restituisce il testo generato come output.

Utilizzo delle richieste Python per il recupero dei dati

Puoi utilizzare la popolare libreria requests per interagire direttamente con l’API OpenAI senza fare affidamento sulla libreria OpenAI. Questo metodo ti dà più controllo sulla richiesta get e flessibilità sulle tue chiamate API.

L’esempio seguente richiede la libreria requests (se non la hai, esegui prima pip install requests):

headers = {
    'Content-Type': 'application/json',
    'Authorization': f'Bearer {api_key}',
}

data = {
    'model': 'gpt-4',  # Aggiorna al modello desiderato
    'messages': [{'role': 'user', 'content': 'Write an interesting fact about Christmas.'}]
}

response = requests.post('https://api.openai.com/v1/chat/completions', headers=headers, json=data)
print(response.json())

Questo frammento di codice dimostra la creazione di una richiesta POST all’API OpenAI, con intestazioni e dati come argomenti. La risposta JSON può essere analizzata e utilizzata nel tuo progetto Python.

Gestione delle richieste di grandi dimensioni all’API

Quando si lavora con progetti su larga scala, è importante gestire in modo efficiente le richieste API. Ciò può essere ottenuto incorporando tecniche come il batching, il throttling e il caching.

  • Batching. Combina più richieste in una singola chiamata API, utilizzando il parametro n nella libreria OpenAI: n = numero_di_risposte_necessarie.
  • Throttling. Implementa un sistema per limitare la frequenza con cui vengono effettuate le chiamate API, evitando un uso eccessivo o il sovraccarico dell’API.
  • Caching. Memorizza i risultati delle richieste API completate per evitare chiamate ridondanti per prompt o richieste simili.

Per gestire efficacemente le richieste API, tenere traccia del proprio utilizzo e regolare di conseguenza le impostazioni di configurazione. Considerare l’uso della libreria time per aggiungere ritardi o timeout tra le richieste se necessario.

L’applicazione di queste tecniche avanzate nei progetti Python vi aiuterà a ottenere il massimo dall’API OpenAI garantendo un’integrazione API efficiente e scalabile.

Applicazioni pratiche: API OpenAI nei progetti reali

L’integrazione dell’API OpenAI nei vostri progetti reali può offrire numerosi vantaggi. In questa sezione, discuteremo due applicazioni specifiche: l’integrazione di ChatGPT nello sviluppo web e la costruzione di chatbot con ChatGPT e Python.

Integrazione di ChatGPT nello sviluppo web

L’API OpenAI può essere utilizzata per creare contenuti interattivi e dinamici personalizzati in base alle query o alle esigenze degli utenti. Ad esempio, potresti utilizzare ChatGPT per generare descrizioni di prodotti personalizzate, creare post di blog coinvolgenti o rispondere a domande comuni sulle tue attività. Con il potere dell’API OpenAI e un po’ di codice Python, le possibilità sono infinite.

Considera questo semplice esempio di utilizzo di una chiamata API da un backend Python:

def generate_content(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

# Utilizza questa funzione per generare contenuto
description = generate_content("Write a short description of a hiking backpack")

Quindi puoi anche scrivere codice per integrare description con il tuo HTML e JavaScript per visualizzare il contenuto generato sul tuo sito web.

Costruire chatbot con ChatGPT e Python

I chatbot alimentati dall’intelligenza artificiale stanno iniziando a svolgere un ruolo importante nel migliorare l’esperienza utente. Combinando le capacità di elaborazione del linguaggio naturale di ChatGPT con Python, puoi costruire chatbot che comprendono il contesto e rispondono in modo intelligente alle entrate degli utenti.

Considera questo esempio per elaborare l’input dell’utente e ottenere una risposta:

def get_chatbot_response(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

# Prendendo l'input dell'utente dalla linea di comando
user_input = input("Enter your prompt: ")
response = get_chatbot_response(user_input)
print(response)

Ma poiché non c’è un ciclo, lo script terminerà dopo aver eseguito una volta, quindi considera l’aggiunta di logica condizionale. Ad esempio, abbiamo aggiunto una logica condizionale basilare in cui lo script continuerà a cercare i prompt utente fino a quando l’utente non dice la frase di arresto “exit” o “quit”.

Considerando la logica menzionata, il nostro codice finale completo per eseguire un chatbot sull’endpoint dell’API OpenAI potrebbe apparire così:

from openai import OpenAI
import os
from dotenv import load_dotenv

# Caricare la chiave API dal file .env
load_dotenv()
client = OpenAI(api_key=os.environ.get("CHAT_GPT_API_KEY"))

def get_chatbot_response(prompt):
    try:
        response = client.chat.completions.create(
            model="gpt-4",
            messages=[{"role": "user", "content": prompt}]
        )
        return response.choices[0].message.content
    except Exception as e:
        return str(e)

while True:
    user_input = input("You: ")
    if user_input.lower() in ["exit", "quit"]:
        print("Chat session ended.")
        break
    response = get_chatbot_response(user_input)
    print("ChatGPT:", response)

Ecco come appare quando eseguito nella finestra del Prompt dei Comandi di Windows.

Speriamo che questi esempi ti aiutino a iniziare a sperimentare con l’AI ChatGPT. In generale, OpenAI ha aperto enormi opportunità per gli sviluppatori di creare nuovi e eccitanti prodotti utilizzando la loro API, e le possibilità sono infinite.

Limitazioni e prezzi dell’API OpenAI

Sebbene l’API OpenAI sia potente, ci sono alcune limitazioni:

  • Archiviazione dei dati. OpenAI conserva i dati dell’API per 30 giorni, e l’utilizzo dell’API implica il consenso all’archiviazione dei dati. Fai attenzione ai dati che invii.

  • Capacità del modello. I modelli di chat hanno un limite massimo di token. (Ad esempio, GPT-3 supporta 4096 token.) Se la richiesta API supera questo limite, dovrai troncare o omettere il testo.

  • Pricing. L’API OpenAI non è disponibile gratuitamente e segue il proprio schema di prezzi, separato dai costi di abbonamento ai modelli. Per maggiori informazioni sui prezzi, consultare i dettagli sui prezzi di OpenAI. (Di nuovo, GPT-4 Turbo costa tre volte meno di GPT-4!)

Conclusione

L’esplorazione del potenziale dell’API del modello ChatGPT in Python può apportare significativi miglioramenti in varie applicazioni come supporto clienti, assistenti virtuali e generazione di contenuti. Integrando questa potente API nei tuoi progetti, puoi sfruttare le capacità dei modelli GPT in modo integrato nelle tue applicazioni Python.

Se ti è piaciuto questo tutorial, potresti anche apprezzare questi:

Source:
https://www.sitepoint.com/python-build-ai-tools-openai-api/