Come rilevare il codice scritto dall'intelligenza artificiale con ChatGPT

Autore:

Pubblicato:

Aggiornato:

Un robot dei cartoni animati con le antenne è seduto a una scrivania ed esamina un codice sullo schermo di un computer attraverso una lente d'ingrandimento.

Nel mondo di oggi, sempre più sviluppatori utilizzano strumenti di intelligenza artificiale come ChatGPT per scrivere codice.

Questa guida vi aiuterà a capire i segni del codice scritto dall'intelligenza artificiale e a verificare se il codice è stato creato da ChatGPT o da strumenti di intelligenza artificiale simili.

Ecco un semplice prompt che si può copiare e usare con ChatGPT quando si vuole verificare se un codice è stato scritto dall'intelligenza artificiale:

Modello di prompt per il rilevamento del codice AI:

Ho bisogno che analizziate questo frammento di codice per determinare se è stato probabilmente generato da un'intelligenza artificiale:

[Incolla il codice qui]

Valutare:

  1. Struttura e modelli del codice
  2. Convenzioni di denominazione delle variabili
  3. Stile e frequenza dei commenti
  4. Approcci alla gestione degli errori
  5. Consistenza complessiva

Fornire:

  • Livello di fiducia della generazione di AI (percentuale)
  • Indicatori specifici trovati
  • Spiegazione dettagliata del ragionamento

Segni comuni del codice generato dall'intelligenza artificiale

1. Nomi di variabili troppo generici

I modelli di intelligenza artificiale utilizzano spesso nomi di variabili molto semplici come "data", "result" o "temp". Gli sviluppatori umani scelgono in genere nomi più specifici che riflettono il contenuto effettivo della variabile. Ad esempio:

Il codice scritto dall'uomo potrebbe utilizzare:

vendite_mensili_totali = calcola_vendite(dati_gennaio)

Mentre il codice generato dall'intelligenza artificiale potrebbe utilizzare:

risultato = calcola(dati)

2. Modelli di formattazione coerenti

ChatGPT tende a scrivere codice con una formattazione molto coerente. Sebbene ciò possa sembrare positivo, in realtà può essere un indizio. Gli esseri umani di solito hanno piccole variazioni nel loro stile di codifica, anche quando seguono le guide di stile. Il codice generato dall'intelligenza artificiale spesso appare "troppo perfetto" nella sua formattazione.

3. Gestione degli errori di base

I modelli di intelligenza artificiale di solito implementano una gestione degli errori molto semplice. Spesso utilizzano blocchi try-catch di base, senza tipi di errore specifici o messaggi di errore dettagliati. Gli sviluppatori umani di solito includono una gestione degli errori più dettagliata, basata sulla loro esperienza con i problemi del mondo reale.

Esempio di gestione degli errori generati dall'intelligenza artificiale:

provare:
    # fare qualcosa
eccezione:
    print("Si è verificato un errore")

Esempio di gestione degli errori scritti dall'uomo:

provare:
    # fare qualcosa
tranne FileNotFoundError:
    logger.error("File di configurazione mancante nel percorso: %s", config_path)
    raise ConfigurationError("Manca il file di configurazione richiesto")
except PermissionError:
    logger.error("Nessun permesso di accesso al file: %s", config_path)
    raise AccessDeniedError("Impossibile accedere al file di configurazione")

4. Soluzioni standard

ChatGPT spesso fornisce la soluzione più comune o standard a un problema, anche quando potrebbero esserci alternative migliori. Tende a utilizzare modelli di progettazione noti e funzioni di libreria comuni piuttosto che soluzioni creative o specifiche per la situazione.

5. Commenti limitati

Il codice generato dall'IA di solito include commenti molto semplici o troppo ovvi. Gli sviluppatori umani di solito scrivono commenti che spiegano il "perché" di una logica complessa, mentre l'intelligenza artificiale tende a commentare il "cosa" che è già chiaro dal codice.

Esempio di commenti generati dall'IA:

# Eseguire il loop dell'array
per i in range(len(array)):
    # Aggiungere il numero corrente alla somma
    somma += array[i]

Esempio di commenti scritti dall'uomo:

# Saltare il primo elemento per evitare di contare la riga di intestazione
# Vedere il ticket PROJ-123 per il contesto
per i in range(1, len(array)):
    sum += array[i]

Modelli comuni nel codice ChatGPT

1. Piastra di base Pesante

ChatGPT ama includere un sacco di codice di base. Spesso genera strutture di classi complete e dichiarazioni di importazione, anche per semplici esempi. Questo può rendere il codice più professionale, ma anche più standardizzato e meno personalizzato per esigenze specifiche.

2. Struttura prevedibile

Il codice generato dall'intelligenza artificiale di solito segue schemi molto prevedibili nella strutturazione di funzioni e classi. Ad esempio, potrebbe mettere le variabili della classe sempre nello stesso ordine o organizzare i metodi in un modo specifico.

3. Uso limitato delle funzioni avanzate

ChatGPT tende ad attenersi alle caratteristiche di base del linguaggio e a evitare quelle più complesse o più recenti. Questo perché è stato addestrato su basi di codice più vecchie e su modelli comuni. Ad esempio, in Python potrebbe non utilizzare le funzioni più recenti, come gli operatori walrus o il pattern matching.

Metodi tecnici di rilevamento

I sistemi di rilevamento avanzati utilizzano misure di perplessità per identificare il codice creato dall'IA. Punteggi di perplessità più bassi spesso indicano la generazione di IA, poiché i modelli di IA tendono a produrre modelli di codice più prevedibili.

L'efficacia del rilevamento varia in base alla lunghezza del codice. Gli studi dimostrano che l'accuratezza del rilevamento migliora con campioni di codice più lunghi, che in genere richiedono almeno 100 token per un'analisi affidabile.

Migliori pratiche per il rilevamento

1. Analisi completa
Esaminare più aspetti del codice:

  • Riconoscimento dei modelli
  • Analisi della sintassi
  • Errori logici e incongruenze
  • Stile della documentazione

2. Considerazione del contesto

Durante l'analisi del codice, tenere conto del linguaggio di programmazione e del contesto del progetto, poiché l'accuratezza del rilevamento può variare a seconda dei linguaggi e dei framework.

Come verificare se il codice è generato dall'IA

1. Controllo della documentazione

Osservate come viene documentato il codice. La documentazione generata dall'intelligenza artificiale spesso include:

  • Descrizioni molto generiche
  • Manca il contesto del mondo reale
  • Nessun riferimento alla logica di business o a casi d'uso specifici
  • Formattazione perfetta ma superficiale

2. Cercare modelli di complessità

Il codice generato dall'intelligenza artificiale di solito mostra questi schemi:

  • Soluzioni troppo semplici per problemi complessi
  • Gestione dei casi limite mancanti
  • Considerazioni di base sulla sicurezza
  • Utilizzo di librerie standard invece di soluzioni specializzate

3. Casi di errore del test

Provare a decifrare il codice da:

  • Fornire un input inaspettato
  • Verifica dei casi limite
  • Verifica della gestione degli errori
  • Si osservi come gestisce i valori nulli o indefiniti

Il codice generato dall'intelligenza artificiale spesso fallisce in modo inaspettato quando si tratta di queste situazioni.

Migliori pratiche per l'utilizzo del codice generato dall'intelligenza artificiale

1. Rivedere e modificare sempre

Quando si lavora con il codice generato dall'intelligenza artificiale, non utilizzarlo mai senza averlo prima verificato. Prendete tempo per leggere il codice e capire cosa fa.

Iniziate cambiando i nomi delle variabili di base con altri che abbiano senso per il vostro progetto. Durante la revisione, osservate come il codice gestisce gli errori e miglioratelo dove necessario: aggiungete messaggi di errore chiari che vi aiuteranno a rintracciare i problemi in seguito.

I commenti sono essenziali: scrivete quelli che spiegano perché il codice funziona nel modo in cui funziona, non solo quello che fa.

Ricordate di testare il codice con diversi tipi di input per assicurarvi che funzioni in tutte le situazioni. Soprattutto, adattate il codice alle vostre specifiche esigenze aziendali, poiché l'intelligenza artificiale non conosce la vostra situazione esatta.

2. Utilizzare l'intelligenza artificiale come punto di partenza

Considerate il codice generato dall'intelligenza artificiale come una bozza o un abbozzo. È un buon punto di partenza, ma bisogna costruirci sopra.

Il codice degli strumenti di intelligenza artificiale ha spesso una gestione degli errori molto elementare, quindi è necessario migliorarlo aggiungendo controlli specifici e messaggi di errore utili.

Prendete tempo per esaminare attentamente i problemi di sicurezza e aggiungete una protezione supplementare dove necessario. Ricordate che l'intelligenza artificiale vi offre codice di uso generale, ma il vostro progetto ha bisogno di soluzioni specifiche.

Aggiungete un logging adeguato, in modo da poter tracciare ciò che accade quando il codice viene eseguito nel mondo reale, e impostate dei modi per monitorare se tutto funziona correttamente.

3. Documentare l'uso dell'IA

Una buona documentazione è fondamentale quando si lavora con il codice generato dall'IA. Aggiungere commenti all'inizio delle sezioni generate dall'IA per contrassegnarle chiaramente.

Quando apportate delle modifiche, scrivete cosa avete cambiato e perché: questo aiuta gli altri sviluppatori (o voi stessi in futuro) a capire meglio il codice.

Tenere traccia di quali parti sono state scritte dall'uomo e quali dall'intelligenza artificiale. Questo rende molto più facile la manutenzione del codice in seguito.

Scrivete come avete testato il codice e quali risultati avete ottenuto, in modo che tutti capiscano cosa fa il codice e quanto è affidabile.

Ricordate che l'intelligenza artificiale è uno strumento che vi aiuta a scrivere codice più velocemente, ma non deve sostituire un'attenta revisione e personalizzazione per le vostre esigenze specifiche. Una buona documentazione e un buon collaudo sono altrettanto importanti per il codice generato dall'IA quanto per il codice scritto dall'uomo.

Seguendo queste pratiche, otterrete i migliori risultati dall'uso dell'IA mantenendo un codice affidabile e di alta qualità.

L'autore

Ultimi messaggi

  • Come progettare un logo con ChatGPT

    Come progettare un logo con ChatGPT

    Want to make a logo but don’t want to spend a lot of money? This guide shows you how to create your own logo using ChatGPT’s help. You’ll learn simple ways to tell ChatGPT what kind of logo you want, pick the right colors, and make sure your logo looks great. Best ChatGPT Prompts for

    Read more →

  • Come utilizzare ChatGPT per le mnemotecniche

    Come utilizzare ChatGPT per le mnemotecniche

    This article will show you how to use ChatGPT to make learning easier and more fun through mnemonics. Here are the five ChatGPT prompts that will help you create memorable mnemonics: 1. Prompt: List-to-Mnemonic I need to memorize this list of [items/concepts/terms]: [Insert list] Please create: Choose the most effective method based on the content.

    Read more →

  • Come rilevare il codice scritto dall'intelligenza artificiale con ChatGPT

    Come rilevare il codice scritto dall'intelligenza artificiale con ChatGPT

    In today’s world, more and more developers are using AI tools like ChatGPT to write code. This guide will help you understand the signs of AI-written code and how to check if code was created by ChatGPT or similar AI tools. Here’s a simple prompt you can copy and use with ChatGPT when you want

    Read more →