GPT4Readability – Non scrivere mai più un README

GPT4Readability - Never write a README again

Un pacchetto Python per ottimizzare e documentare il tuo repository di codice

Immagine generata dall'autore

Navigare in un complesso codice Python può essere un compito impegnativo, soprattutto quando il progetto manca di documentazione sufficiente. Questo è troppo spesso il caso nella vita di un programmatore. Fortunatamente, grazie agli ultimi progressi in NLP e Deep Learning, esiste uno strumento progettato per aiutarti: GPT4Readability.

GitHub – loevlie/GPT4Readability: Uno strumento potente progettato per generare automaticamente un file README.md…

Uno strumento potente progettato per generare automaticamente un file README.md e suggerire miglioramenti al codice utilizzando LLM. – GitHub…

github.com

GPT4Readability: Il tuo assistente di codifica alimentato dall’IA

GPT4Readability è un pacchetto potente che sfrutta i grandi modelli di linguaggio (LLM) e un database di vettori per generare un file README.md e suggerire miglioramenti al codice per i tuoi repository di codice Python. È come avere un assistente personale che non solo comprende e documenta il tuo codice, ma ti aiuta anche a migliorarlo.

Ma perché non posso usare semplicemente ChatGPT?

ChatGPT è uno strumento potente. Tuttavia, ha un limite quando si tratta di gestire grandi volumi di testo o codice. Puoi inserire solo una certa quantità di testo o codice in ChatGPT alla volta, il che può essere limitante quando si lavora con codebase estese.

Al contrario, GPT4Readability è progettato per gestire volumi di codice più grandi. Sebbene possa ancora avere difficoltà con codebase estremamente grandi, può gestire comodamente quelle di dimensioni normali. Ciò significa che semplicemente indicando la cartella corretta, può analizzare l’intero progetto, analizzare il contesto completo e generare un README completo o fornire suggerimenti dettagliati per il miglioramento del codice. Questo è qualcosa che ChatGPT non può fare!

Iniziare con GPT4Readability

Inizierò guidandoti nell’installazione. Prima di tutto, dovrai installare il pacchetto:

pip install GPT4Readability==0.0.3

Successivamente, dovrai creare un account su OpenAI. Questo perché GPT4Readability utilizza l’API di OpenAI per accedere a GPT-3.5 e GPT-4. In futuro, si spera anche di integrare modelli open-source da HuggingFace (rimani sintonizzato sul repository GitHub per gli aggiornamenti). Una volta creato un account sulla piattaforma OpenAI, procedi ad aggiungere un metodo di pagamento e generare una chiave API.

Ora, dovrai impostare una variabile di ambiente chiamata OPENAI_API_KEY uguale alla tua nuova chiave API. Questo consente a GPT4Readability di autenticarsi con l’API di OpenAI. Se non lo fai, ti verrà chiesto di aggiungere la chiave durante l’esecuzione di GPT4Readability.

export OPEN_API_KEY="LA TUA CHIAVE"

Utilizzare i LLM di GPT-3 e GPT-4 di OpenAI tramite l’API non è costoso. Lo sviluppo di questo strumento costa solo $1.50, il che sembra abbastanza economico rispetto ai $20/mese che gli utenti di ChatGPT Plus pagano! Tuttavia, puoi sempre tenere d’occhio l’utilizzo sul sito web di OpenAI per assicurarti di non spendere troppo.

Presentazione del tuo assistente personale di documentazione AI

Ora che hai installato GPT4Readability e hai generato una chiave API OpenAI, hai accesso alla CLI. Questo articolo si concentra sulla CLI, ma puoi anche provare l’applicazione web senza codice su HuggingFace spaces all’indirizzo: https://huggingface.co/spaces/JohanDL/GPT4Readability.

Diciamo che hai un progetto Python che ha bisogno di un README, ma non ricordi nemmeno quale fosse lo scopo del codice. Invece di passare ore cercando di capire le connessioni nel codice sorgente, lascia che GPT4Readability faccia il lavoro pesante:

gpt4readability /percorso/al/tuo/progetto --funzione readme --output_readme MyAwesomeREADME.md --modello gpt-3.5-turbo
gif generato dall'autore

Sostituisci semplicemente /percorso/al/tuo/progetto con la directory principale del tuo progetto Python. GPT4Readability genererà un file README.md completo chiamato MyAwesomeREADME.md utilizzando il modello “gpt-3.5-turbo” di OpenAI. Attualmente, ci sono due modelli disponibili che puoi utilizzare con GPT4Readability:

  1. gpt-3.5-turbo
  2. gpt-4

Miglioramenti del codice: uno strumento didattico per tutti

GPT4Readability non serve solo per aggiornare i codebase che mancano della documentazione che meritano. È anche uno straordinario strumento didattico per sviluppatori di tutti i livelli. Per generare suggerimenti sulle funzioni nel tuo codebase, utilizza lo strumento suggerimenti come mostrato di seguito:

gpt4readability /percorso/al/tuo/progetto --funzione suggerimenti --output_suggerimenti CodeImprovements.md --modello gpt-3.5-turbo

Esempio di suggerimento ottenuto eseguendo GPT4Readability sul mio primo progetto Python:

Funzione originale:

def Get_props(file):    """ Questa funzione recupera le informazioni dalla cella di proprietà del notebook"""    no_prop = True    nb = nbformat.read(file,as_version=4)    for i in nb['cells']:        if i['cell_type'] == 'code':            if i['source'].startswith('%%properties'):                Metal_A = i['source'].split('\n')[1].split()[-1]                Metal_B = i['source'].split('\n')[2].split()[-1]                Max_H = float(i['source'].split('\n')[3].split()[-1])                result = {'Metal_A':Metal_A,'Metal_B':Metal_B,'Max_H':Max_H}                no_prop = False    if no_prop:        result = None        return result

Suggerimento:

def Get_props(file):    """ Questa funzione recupera le informazioni dalla cella di proprietà del notebook"""    nb = nbformat.read(file, as_version=4)    for i in nb['cells']:        if i['cell_type'] == 'code' and i['source'].startswith('%%properties'):            Metal_A, Metal_B, Max_H = i['source'].split('\n')[1:4]            result = {'Metal_A': Metal_A.split()[-1], 'Metal_B': Metal_B.split()[-1], 'Max_H': float(Max_H.split()[-1])}            return result    return None

Spiegazione:

  1. Rimosso la variabile non necessaria no_prop e il suo flag associato. Invece, possiamo restituire direttamente None se non vengono trovate proprietà.
  2. Combinato le istruzioni di assegnazione per Metal_A, Metal_B e Max_H in una singola riga per una migliore leggibilità.
  3. Rimosso il controllo di no_prop dopo il loop poiché possiamo restituire direttamente None se non vengono trovate proprietà.
  4. Semplificata la creazione del dizionario assegnando direttamente i valori alle chiavi.

Questi cambiamenti migliorano la leggibilità del codice riducendo le variabili superflue e semplificando la logica. Non vi è alcun impatto significativo sulle prestazioni o sulla complessità dello spazio.

Sostituisci semplicemente /percorso/al/tuo/progetto con la directory principale del tuo progetto Python. GPT4Readability analizzerà il tuo codice e genererà un file chiamato CodeImprovements.md con suggerimenti per miglioramenti. I suggerimenti sono sempre formattati allo stesso modo:

  1. Percorso del file
  2. Nome della funzione
  3. Funzione originale
  4. Cambiamento suggerito
  5. Spiegazione del motivo per cui il cambiamento è stato suggerito

È importante aggiungere una spiegazione agli aggiustamenti del codice suggeriti perché ciò può aumentare la trasparenza e anche essere un’opportunità di apprendimento. Rivedendo queste suggerimenti, non stai solo migliorando il tuo codice, potresti anche migliorare come sviluppatore.

Conclusione

GPT4Readability è uno strumento molto utile per comprendere e migliorare i tuoi progetti Python!

Se GPT4Readability ti fa risparmiare tempo o se hai qualche domanda, non esitare a contattarmi (puoi utilizzare uno dei link nella sezione sottostante). Inoltre, considera di dare una stella al repository GitHub!! Se trovi un bug o hai un suggerimento per migliorare GPT4Readability, non esitare ad aprire un problema sulla pagina delle Issues di GitHub.

Connettiti con me!

Sono un ricercatore di deep learning in erba che attualmente lavora come Ingegnere di Visione Artificiale presso KEF Robotics a Pittsburgh! Connettiti con me e sentiti libero di contattarmi per parlare di tutto ciò che riguarda l’apprendimento automatico!

  • Seguimi su VoAGI
  • Twitter
  • LinkedIn
  • GitHub
  • Offrimi un caffè?