Assistente basato su GPT: automatizza i flussi di lavoro di ricerca

 | Intelligenza-Artificiale

introduzione

Navigare nella fitta giungla della ricerca accademica può essere un compito arduo. Con le loro argomentazioni intricate e il linguaggio specialistico, gli articoli di ricerca spesso lasciano i lettori bisognosi di aiuto per cogliere il messaggio principale. È qui che entra in gioco l’intelligenza artificiale, offrendo strumenti come l’assistente basato su GPT, un potente alleato per conquistare il panorama della ricerca.

"

obiettivi formativi

  • Comprendi come funziona OpenAI Modello linguistico GPT-3 viene sfruttato per trasformare i flussi di lavoro della ricerca attraverso riassunti e parafrasi.
  • Scopri come l’Assistente GPT aiuta i ricercatori a risparmiare tempo e fatica automatizzando attività noiose come l’estrazione di abstract e l’adattamento del testo.
  • Scopri come utilizzare le funzionalità di parafrasi personalizzabili dell’Assistente per migliorare la tua comprensione dei risultati della ricerca e comunicarli in modo efficace a un pubblico diversificato.
  • Esplora il potenziale degli strumenti di ricerca basati sull’intelligenza artificiale, tra cui il controllo dei fatti, la generazione di citazioni e i consigli personalizzati, per plasmare il futuro dell’esplorazione accademica.

Questo articolo è stato pubblicato come parte del Blogathon sulla scienza dei dati.

La sfida: decodificare il labirinto della ricerca

I ricercatori devono affrontare diversi ostacoli quando hanno a che fare con documenti di ricerca:

  1. Cogliere l’essenza: Decifrare argomenti complessi e identificare i punti chiave all’interno di un linguaggio denso può richiedere molto tempo ed essere impegnativo.
  2. Riassumendo in modo efficiente: Riassumere manualmente gli elaborati è noioso, incline a pregiudizi e spesso non riesce a catturare le sfumature del lavoro originale.
  3. Adattarsi a un pubblico diversificato: Comunicare i risultati della ricerca a pubblici diversi richiede un adattamento del tono e dello stile delle informazioni, il che può essere difficile senza comprometterne l’accuratezza.
Assistente basato su GPT

La soluzione: un assistente GPT per guidare il tuo percorso di ricerca

IL Assistente GPTbasato sull’API Assistants di OpenAI, affronta queste sfide frontalmente, offrendo una suite di funzionalità per semplificare la ricerca e sbloccare le informazioni nascoste nei documenti:

  • Estrazione astratta: Individua facilmente il messaggio principale dell’articolo, consentendoti di cogliere rapidamente la domanda principale e i risultati della ricerca.
  • Parafrasando con controllo: Adatta la lingua alle tue esigenze. Specifica il tono desiderato (accademico, creativo o anche aggressivo) e la durata dell’output (uguale, doppia o tripla rispetto all’originale) per una parafrasi personalizzata.
  • Formato di output JSON: Integra perfettamente il testo parafrasato con altri strumenti. Il formato JSON semplifica l’utilizzo delle informazioni estratte nel flusso di lavoro di ricerca.

Sotto il cofano: uno sguardo tecnico

Importazione di librerie

  • base64: per codificare dati binari come i PDF.
  • sistema: per accedere agli argomenti della riga di comando.
  • json: per l’analisi e la generazione di dati JSON.
  • openai: per accedere all’API di OpenAI.
  • asincio: per operazioni asincrone (dobbiamo utilizzare operazioni asincrone perché caricare il file, creare un agente, creare un thread ed eseguire il thread, tutti questi processi richiedono tempo e la definizione delle funzioni come asincrone ci consente di eseguire il codice senza errori in sequenza)

Definizione di funzioni asincrone

  • crea_file: Carica un file PDF su OpenAI.
  • crea_assistente: Crea un Assistente GPT con istruzioni e strumenti.
  • crea_thread: Crea un nuovo thread di conversazione.
  • creare un messaggio: Invia un messaggio all’Assistente all’interno del thread.
  • assistente_esecuzione: Avvia l’esecuzione dell’Assistente sul thread.
  • estratto_esegui: Attende il completamento dell’esecuzione dell’assistente.
  • estratto_risultato: Recupera i messaggi dal thread di conversazione.

Funzione principale

  • Prende come input il percorso del documento di ricerca.
  • Carica il file e crea un assistente corrispondente.
  • Crea un thread e invia due messaggi all’Assistente:
    • Il primo messaggio richiede l’abstract dell’articolo.
    • Il secondo messaggio richiede una versione parafrasata dell’abstract con tono e lunghezza specificati dall’utente.
  • Attende che l’Assistente termini l’elaborazione ed estrae le risposte dal thread.
  • Stampa il testo astratto e parafrasato.
  • Converte il testo parafrasato in un elenco di frasi in formato JSON.
import base64
import sys
import json
from openai import OpenAI, AsyncOpenAI
import asyncio

client = AsyncOpenAI(api_key = "")

Passaggi per il funzionamento dell’Assistente GPT

Approfondiamo i passaggi chiave del funzionamento dell’Assistente GPT:

  • Caricamento cartaceo: Il documento di ricerca viene caricato su OpenAI come file PDF, fornendo la materia prima per l’analisi. (Per eseguire il codice con un tipo di documento di ricerca specifico “codice_python_nome_file nome_carta.pdf” nel terminale)
  • Creazione dell’assistente: Viene creato un Assistente GPT specializzato con istruzioni e strumenti specifici. Queste istruzioni guidano l’assistente su come interpretare il documento, mentre gli strumenti gli conferiscono funzionalità come il recupero del testo.
  • Filo della conversazione: Viene stabilito un canale di comunicazione tra te e l’assistente. Questo thread facilita lo scambio di richieste e risposte.
  • Interazione dell’utente: Interagisci con l’assistente attraverso il thread, richiedendo l’abstract e specificando i parametri di parafrasi desiderati.
  • Esecuzione dell’assistente: L’assistente analizza il documento, elabora le richieste e genera gli output richiesti.
  • Estrazione dei risultati: Le risposte dell’assistente, compreso l’abstract e il testo parafrasato, vengono recuperate dal thread della conversazione.
  • Conversione JSON: Il testo parafrasato è formattato come un elenco di frasi in formato JSON, rendendolo facilmente utilizzabile per ulteriori analisi o integrazione con altri strumenti.
async def create_file(paper):
    file = await client.files.create(
        file=open(paper, "rb"),
        purpose="assistants"
    )
    print("File created and uploaded, id: ", file.id)
    return file

async def create_assistant(file):
    assistant = await client.beta.assistants.create(
        name="Research Assistant 1",
        instructions="""You are a machine learning researcher. Answer 
        questions based on the research paper. Only focus on the details 
        and information mentioned in the paper and don not consider any 
        information outside the context of the research paper.""",
        model="gpt-3.5-turbo-1106",
        tools=({"type": "retrieval"}),
        file_ids=(file.id)
    )
    print("Assistant created, id: ", assistant.id)
    return assistant

async def create_thread():
    thread = await client.beta.threads.create()
    print("Thread created, id: ", thread.id)
    return thread

async def create_message(thread, content):
    message = await client.beta.threads.messages.create(
        thread_id=thread.id,
        role="user",
        content=content
    )
    print("User message sent!")

async def run_assistant(thread, assistant):
    run = await client.beta.threads.runs.create(
        thread_id=thread.id,
        assistant_id=assistant.id,
    )
    print("Assistant Running, id: ", run.id)
    return run

async def extract_run(thread, run):
    while run.status != "completed":
        run = await client.beta.threads.runs.retrieve(
            thread_id=thread.id,
            run_id=run.id
        )
        print("Extracting run, status: ", run.status)
    print("Extracted run, status: ", run.status)

async def extract_result(thread):
    messages = await client.beta.threads.messages.list(
        thread_id=thread.id
    )
    return messages
    
if __name__ == "__main__":
    async def main():
        paper = sys.argv(1)
        file = await create_file(paper)
        assistant = await create_assistant(file)
        thread = await create_thread()
        content1 = """Please provide the abstract of the research paper. 
        The abstract should be concise and to the point. Only consider the 
        context of the research paper and do not consider any information 
        not present in it."""
        message1 = await create_message(thread, content1)
        run1 = await run_assistant(thread, assistant)
        run2 = await extract_run(thread, run1)
        messages1 = await extract_result(thread)

        for message in list(messages1.data):
            if message.role == "assistant":
                print("Abstract : " + message.content(0).text.value)
                abstract = message.content(0).text.value
                break    
            else:
                continue

        tone = input("Please enter the desired tone (Academic, Creative, or Aggressive): ")
        output_length = input("Please enter the desired output length (1x, 2x, or 3x): ")
        if output_length == "1x":
            output = "SAME IN LENGTH AS"
        elif output_length == "2x":
            output = "TWO TIMES THE LENGTH OF"
        elif output_length == "3x":
            output = "THREE TIMES THE LENGTH OF"

        content2 = f"""Text: {abstract}. \nGenerate a paraphrased version of the 
        provided text in the {tone} tone. Expand on each key point and provide 
        additional details where possible. Aim for a final output that is 
        approximately {output} the original text. Ensure that the paraphrased 
        version retains the core information and meaning while offering a more 
        detailed and comprehensive explanation."""
        message2 = await create_message(thread, content2)
        run3 = await run_assistant(thread, assistant)
        run4 = await extract_run(thread, run3)
        messages2 = await extract_result(thread)
        for message in messages2.data:
            if message.role == "assistant":
                print("Paraphrased abstract : " + message.content(0).text.value)
                paraphrased_text = message.content(0).text.value
                break 
            else:
                continue   

        # Convert paraphrased text to JSON format
        paraphrased_sentences = paraphrased_text.split(". ")
        paraphrased_json = json.dumps(paraphrased_sentences)
        print("Paraphrased JSON:", paraphrased_json)
    asyncio.run(main())

L’Assistente GPT offre numerosi vantaggi ai ricercatori:

  • Efficienza che fa risparmiare tempo: Automatizza le attività di riepilogo e parafrasi, liberando tempo prezioso per analisi più approfondite e pensiero critico.
  • Comprensione migliorata: Cogli i punti chiave e identifica rapidamente le informazioni rilevanti con riepiloghi concisi e parafrasi personalizzate.
  • Comunicazione migliorata: Comunicare in modo efficace i risultati della ricerca a un pubblico diversificato adattando il tono e lo stile delle informazioni.
  • Integrazione senza problemi: Sfrutta il formato JSON per integrare le informazioni estratte con altri strumenti e piattaforme di ricerca.
Assistente basato su GPT

Guardando al futuro: uno sguardo al futuro dell’assistenza alla ricerca

L’Assistente GPT è solo l’inizio. COME AI la tecnologia si evolve, possiamo aspettarci funzionalità ancora più sofisticate, come:

  • Verifica dei fatti e generazione di citazioni: Garantire l’accuratezza e la credibilità delle informazioni parafrasate, generando automaticamente citazioni per i concetti estratti.
  • Modellazione automatica degli argomenti ed estrazione della conoscenza: Identificare i temi chiave, estrarre concetti rilevanti dall’articolo e creare un grafico della conoscenza per visualizzare il panorama della ricerca.
  • Raccomandazioni di ricerca personalizzate: Suggerire documenti pertinenti in base al focus e agli interessi della tua ricerca attuale, adattando il percorso di ricerca alle tue esigenze specifiche.
  • Strumenti di ricerca collaborativa: Consentire una collaborazione continua tra ricercatori, consentendo la co-creazione e la modifica in tempo reale di riassunti e parafrasi all’interno della piattaforma Assistant.

L’Assistente GPT segna un passo significativo verso la democratizzazione dell’accesso alla ricerca e la capacità dei ricercatori di muoversi nel panorama accademico in modo più efficiente e chiaro. Questo non è solo uno strumento; è un ponte tra il denso mondo della ricerca e il pubblico diversificato che cerca le sue intuizioni. Man mano che l’intelligenza artificiale continua ad evolversi, possiamo aspettarci che questo ponte diventi ancora più solido ed espansivo, aprendo la strada a un futuro in cui la ricerca non sarà solo accessibile ma realmente trasformativa.

Conclusione

  1. L’Assistente GPT è il tuo partner di ricerca basato sull’intelligenza artificiale: Attraversa il denso linguaggio accademico, estrae abstract e offre parafrasi personalizzate che ti fanno risparmiare tempo e migliorano la comprensione.
  2. Comunicazione su misura: Adatta i risultati della tua ricerca a qualsiasi pubblico con le impostazioni di tono e durata dell’Assistente, dai rapporti accademici alle presentazioni creative.
  3. Integrazione senza problemi: Il formato JSON del testo parafrasato si inserisce facilmente nel flusso di lavoro di ricerca esistente, massimizzando il valore delle informazioni estratte.
  4. Il futuro è luminoso: Questo è solo l’inizio. Per rivoluzionare il tuo percorso di ricerca, preparati a funzionalità IA ancora più avanzate, come il controllo dei fatti, la generazione di citazioni e i consigli di ricerca personalizzati.

Domande frequenti

Q1. Cosa può fare l’Assistente GPT?

A. Estrarre l’abstract di un articolo di ricerca. Parafrasare l’abstract in diversi toni accademici. Converti il ​​testo parafrasato in un formato JSON per una facile integrazione con altri strumenti.

Q2. Come funziona l’Assistente?

R. Carichi un documento di ricerca come PDF. L’Assistente analizza l’articolo e genera l’abstract degli output richiesti. Ricevi i risultati in un formato thread di conversazione.

Q3. Quali sono i vantaggi dell’utilizzo dell’Assistente?

A. Risparmia tempo automatizzando il riepilogo e la parafrasi cartacea. Migliora la comprensione attraverso riassunti concisi e parafrasi personalizzate. Migliora la comunicazione adattando la lingua a pubblici diversi. Si integra perfettamente con altri strumenti di ricerca tramite il formato JSON.

Q4. Quali sono i limiti dell’Assistente?

R. Attualmente estrae solo abstract e parafrasa documenti esistenti. Fa affidamento sull’accuratezza del documento caricato; potrebbero non identificare errori o pregiudizi. Le opzioni di parafrasi creative sono ancora in fase di sviluppo.

Q5. Cosa riserva il futuro all’Assistente?

R. Le funzionalità di verifica dei fatti e di generazione di citazioni sono in cantiere. Sono in fase di studio la modellazione automatica degli argomenti e le capacità di estrazione della conoscenza. Raccomandazioni di ricerca personalizzate e strumenti di ricerca collaborativa sono potenziali aggiunte future.

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

Fonte: www.analyticsvidhya.com

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *