top of page

Risultati Ricerca Intelligenza Artificiale Italia

461 risultati trovati per "intelligenza artificiale aziendale"

  • Elaborazione dei dati in tempo reale

    Le aziende utilizzano i dati in tempo reale per l'azienda per migliorare il servizio clienti, la gestione Oggi, tuttavia, gran parte dell'elaborazione dei dati viene eseguita utilizzando algoritmi di intelligenza artificiale e machine learning (ML). Elaborazione: i dati grezzi vengono elaborati e manipolati utilizzando l'intelligenza artificiale (AI Questo è anche chiamato business intelligence o intelligence operativa.

  • Cosa fa un data scientist?

    artificiale (AI) e l'analisi statistica. Ciò significa che le aziende utilizzano la scienza dei dati per prendere decisioni aziendali più valide Esistono numerosi altri titoli di lavoro che dipendono dall'anzianità, dall'organizzazione aziendale, Analista di affari Gli analisti aziendali si concentrano sul reporting, proprio come gli analisti di Ciò comporta l'ingegneria di software e algoritmi di intelligenza artificiale che faranno funzionare

  • Cosa sono i Big data

    vantaggi dell'utilizzo dei Big Data possono essere suddivisi in tre categorie principali: Vantaggi aziendali Apprendimento automatico e intelligenza artificiale: l'apprendimento automatico e l'intelligenza artificiale I data scientist spesso lavorano a stretto contatto con altri professionisti, come analisti aziendali Una delle tendenze chiave nel futuro dei Big Data è il crescente utilizzo delle tecnologie di intelligenza artificiale (AI) e machine learning (ML).

  • Release 2.0 per BrainControl AAC: l’IA al servizio dell’interazione tra pazienti e il mondo esterno

    BrainControl AAC*, la gamma di dispositivi medici basati sull’Intelligenza Artificiale, è da oggi presente BrainControl è un marchio di proprietà di LiquidWeb Srl, azienda nata a Siena nel 2010 e operativa nel Siamo un’azienda giovane e dinamica, orgogliosi del lavoro che portiamo avanti e profondamente motivati

  • Come costruire il tuo portfolio da data scientist

    Prerequisiti : Se non sai cosa è un datas cientist, clicca qui Se non sai come diventare data scientist freelance , clicca qui Se non conosci le librerie più usate nella data science, clicca qui Se non sai come diventare Data Scientist, clicca qui Completa piccoli progetti mirati e dimostra le tue abilità Un portfolio viene in genere utilizzato da web designer e architetti per mostrare esempi di lavori precedenti a potenziali clienti e datori di lavoro. Design, arte e fotografia sono esempi in cui il prodotto del lavoro è creativo ed empirico, dove dire a qualcuno che puoi farlo non ha lo stesso valore di mostrarlo. In questo post, ti convincerò che la creazione di un portfolio di machine learning ha valore per te, per gli altri e per la community. Scoprirai cos'è esattamente un portfolio di machine learning , i tipi di progetti che possono essere inclusi e come fare in modo che il tuo portfolio funzioni davvero per te. Noi del Team di I.A. Italia vogliamo sottolineare quanto sia importante avere una bacheca progetti, da inserire anche nel curriculum, quindi segui attentamente la guida. Vantaggi dell'avere portfolio di Data Science o Machine Learning Se hai appena iniziato come principiante nell'apprendimento automatico o sei un veterano incallito, un portfolio di apprendimento automatico può tenerti in carreggiata e dimostrare le tue abilità. La creazione di un portfolio di machine learning è un esercizio prezioso per te e per gli altri. Portfolio di Data Science : Vantaggi per te La creazione di una raccolta di progetti di apprendimento automatico completati può mantenerti concentrato, motivato e sfruttare i progetti futuri. Focus : ogni progetto ha uno scopo e un punto finale ben definiti. I piccoli progetti limitati negli sforzi e nelle risorse possono mantenere alta la velocità. Base di conoscenza : il corpus di progetti completati fornisce una base di conoscenza su cui riflettere e sfruttare mentre si spinge in progetti più lontani dalle zone di comfort. Traiettoria : ci sono così tante cose brillanti su cui indagare, ricordando a te stesso che stai cercando una raccolta coerente, i progetti possono essere usati come leva per tenerti in carreggiata. Portfolio di Data Science : Vantaggi per gli altri Un portafoglio di progetti completati può essere utilizzato da altri come indicatore di abilità specifiche, capacità di comunicare e dimostrazione di impulso. Competenze : un progetto può dimostrare le tue capacità in relazione a un dominio specifico del problema, uno strumento, uno stack tecnologico di libreria o un algoritmo. Comunicazione : un progetto deve essere compreso almeno in termini di scopo e risultati. La cura di un buon portfolio richiede ottime capacità comunicative che dimostrino tautologicamente la tua capacità di comunicare bene argomenti tecnici. Motivazione : lavorare e completare progetti collaterali, indipendentemente dalle dimensioni dell'ambito, richiede un certo livello di autodisciplina. Il fatto che tu sia riuscito a mettere insieme un portfolio è un monumento al tuo interesse per l'argomento e alla capacità di gestire il tuo tempo. Portfolio di Data Science : Vantaggi per la Comunità La condivisione dei tuoi progetti in pubblico estende i vantaggi alla più ampia comunità di machine learning. Coinvolgimento : un progetto pubblico può ottenere feedback da terze parti che possono fornire estensioni e miglioramenti da cui sia tu che la comunità stessa potete imparare. Punto di partenza : un progetto di portfolio pubblico può fornire il punto di partenza da cui gli altri possono imparare e costruire, magari per il loro piccolo progetto o qualcosa di serio. Caso di studio : un progetto pubblico può fornire un punto di studio forse per un comportamento di un algoritmo unico o interessante o per la scomposizione di un problema, la vera fonte di innovazione. Spero di averti convinto che la creazione di un portfolio di machine learning ha alcuni vantaggi che ti interessano. Successivamente, esamineremo cos'è esattamente un portfolio di machine learning. Come creare un portfolio di Data science o machine learning Un portfolio di data science è una raccolta di progetti indipendenti completati, ognuno dei quali utilizza in qualche modo l'apprendimento automatico. Il folio presenta la raccolta di progetti e consente la revisione dei singoli progetti. Cinque proprietà di un efficace portfolio di machine learning includono: Accessibile : sostengo di rendere pubblico il portfolio sotto forma di una pagina Web pubblicamente accessibile o di una raccolta di repository di codice pubblico. Vuoi che le persone trovino, leggano, commentino e utilizzino il tuo lavoro, se possibile. Piccolo : ogni progetto dovrebbe avere una portata ridotta in termini di impegno, risorse e, soprattutto, tempo (10-20 ore). Sei impegnato ed è difficile mantenere la concentrazione. Vedi la mia metodologia per i piccoli progetti. Completato : i piccoli progetti ti aiutano ad avere progetti finiti. Stabilisci un obiettivo di progetto modesto e raggiungilo. Come i mini-esperimenti, presenti i risultati dei tuoi successi e dei tuoi fallimenti, sono tutti insegnamenti utili. Indipendente : ogni progetto dovrebbe essere indipendente in modo che possa essere compreso isolatamente. Questo non significa che non puoi sfruttare il lavoro precedente, significa che il progetto ha senso da solo come pezzo di lavoro autonomo. Comprensibile : ogni progetto deve comunicare in modo chiaro ed efficace il suo scopo e i suoi risultati (almeno). Dedica un po' di tempo e assicurati che un nuovo paio di occhi capisca cosa hai fatto e perché è importante. Quattro tipi di idee per piccoli progetti che potrebbero ispirarti includono: Esaminare una proprietà di uno strumento di apprendimento automatico o di una libreria. Indagare il comportamento di un algoritmo di apprendimento automatico. Indagare e caratterizzare un set di dati o un problema di apprendimento automatico. Implementa un algoritmo di apprendimento automatico nel tuo linguaggio di programmazione preferito. Alcune idee per progetti che probabilmente non pensavi fossero pezzi di portfolio includono: Lavori del corso : la presentazione chiara degli appunti e dei compiti per un corso relativo all'apprendimento automatico (come un MOOC). Revisione del libro : la presentazione chiara degli appunti dalla lettura e dalla revisione di un libro di apprendimento automatico. Revisione del software : la tua presentazione chiara ed esempi funzionanti per l'utilizzo di uno strumento o una libreria software relativi all'apprendimento automatico. Partecipazione alla competizione : vengono presentati chiaramente note e risultati per la partecipazione a una competizione di apprendimento automatico, come Kaggle . Commento : un saggio in risposta a un post sul blog a tema di apprendimento automatico o la tua risposta dettagliata a una domanda relativa all'apprendimento automatico su un sito di domande e risposte come Quora o sul nostro forum Ora che sai cos'è un portfolio di machine learning e hai alcune idee sui progetti, diamo un'occhiata a come dare vita a cose straordinarie nel tuo portfolio. Come Rendere fantastico il tuo portfolio da datascientist Per far brillare il tuo portfolio, devi fare un po' di marketing leggero. Non preoccuparti, non è niente di viscido, è solo il buon vecchio stile che passa la voce. portafolio Data science : Utilizza un Archivio per il del codice Prendi in considerazione l'utilizzo di un repository di codice sorgente pubblico come GitHub o BitBucket che elenca naturalmente i tuoi progetti pubblici. Questi siti ti incoraggiano a fornire un file readme nella radice di ogni progetto che descriva di cosa tratta il progetto. Utilizzare questa funzione per descrivere chiaramente lo scopo e i risultati di ciascun progetto. Non aver paura di includere immagini, grafici, video e link. Fornire istruzioni univoche per scaricare il progetto e ricreare i risultati (se sono coinvolti codice o sperimentazione). Vuoi che le persone eseguano nuovamente il tuo lavoro, lo rendano il più semplice possibile (cioè digita questo per scaricare, quindi digita questo per compilarlo ed eseguirlo). portafolio Data science : Progetti curati Puoi mettere insieme qualsiasi vecchio progetto su GitHub, ma includere solo il tuo lavoro migliore, più chiaro e interessante nel tuo portfolio di machine learning. Cura i tuoi progetti come una galleria. Scegli quelli che dimostrano al meglio le tue capacità, interessi e capacità. Mostra quello che sai fare e quello che hai fatto. Queste idee di autopromozione possono alimentare i progetti che potresti voler affrontare. Sii chiaro nella tua visione, dove vuoi essere e quali progetti vuoi affrontare che ti aiuteranno ad arrivarci. portafolio Data science : Risultati presenti Dedica molto tempo a scrivere i risultati. Spiega come si relazionano con gli obiettivi del progetto. Spiega l'impatto che hanno o potrebbero avere nel dominio. Elenca le opportunità per le estensioni che vorresti o potresti esplorare se avessi un altro mese o un anno per approfondire il progetto. Crea tabelle, grafici e qualsiasi altra bella immagine che ti aiuti a raccontare la tua storia. Scrivi le tue scoperte come un post sul blog. Per i punti bonus, crea un breve cast dello schermo che mostra come hai ottenuto i risultati e una piccola presentazione in power point per cosa significa, pubblicalo su YouTube. Questo video può essere incorporato nel tuo post sul blog e collegato al file readme del repository del tuo progetto. A seconda dei risultati che hai e di quanto sono importanti per te (come fare bene in una competizione Kaggle), puoi considerare di creare un rapporto tecnico e caricarlo su scribd e caricare le tue diapositive su SlideShare. portafolio Data science : Promuovi il tuo lavoro Puoi condividere i dettagli di ogni progetto mentre lo finisci. Potresti completarne uno a settimana a seconda del numero di ore libere che puoi trovare per studio e/o lavoro. La condivisione di link sui social media è un buon inizio, come twitter, facebook e Google+. Ti esorto ad aggiungere ogni progetto (o solo i tuoi migliori progetti) come " progetti " su LinkedIn. Esempi di Portfolio da data scientist Che tu sia un analista di dati appena qualificato o un esperto di dati, avrai bisogno di un portafoglio che si apre. Sebbene i portafogli di analisi dei dati tradizionalmente mettano in risalto il tuo lavoro, devono anche mostrare la tua personalità, le tue capacità comunicative e il tuo marchio personale. Abbiamo per questo raccolto quelli che secondo noi sono i migliori portfolio di vari Data Scientist : Claudia ten Hoope Harrison Jansma Naledi Hollbruegge Tim Hopper Ger Inberg James Le Yan Holtz Anubhav Gupta Jessie-Raye Bauer Ti basterà cercarli su google per vedere sempre il loro portfolio aggiornato Il futuro dei Data scientist freelance L'idea di un portfolio di codici non è nuova, è stata inserita in GitHub. Ciò che è interessante è che nelle recenti interviste con data scientist e manager , vengono richiesti portfolio anche desiderati insieme alla partecipazione a concorsi di machine learning e al completamento della formazione online. Come il codice di esempio nelle interviste di programmazione, i portafogli di Machine Learning stanno diventando una parte seria delle assunzioni. Cerca esempi di portfolio di apprendimento automatico validi (o almeno compilati). Cerca persone che ottengono buoni risultati nelle competizioni di apprendimento automatico, in genere hanno una straordinaria raccolta di progetti descritti sui loro blog e nei loro repository di codice pubblici. Cerca collaboratori per progetti di apprendimento automatico open source, possono avere tutorial, applicazioni ed estensioni straordinarie per il software sui loro blog e repository di codice pubblico. Inizia ora. Scava tra i tuoi progetti e mettili insieme in una storia che spieghi le tue conoscenze, interessi o abilità che possiedi nell'apprendimento automatico. Grazie per la lettura Hai completato un progetto di machine learning o hai un portfolio di progetti? Lascia un commento e mostrali.

  • Come usare l’IA per imparare nuove lingue in modo facile e divertente

    La risposta potrebbe essere l’intelligenza artificiale (IA). L’IA è la capacità delle macchine di svolgere compiti che normalmente richiedono intelligenza umana, MosaChat-AI: MosaChat-AI è il nostro tutor linguistico con intelligenza artificiale, che ti aiuta a imparare

  • Cos'è il Machine Learning in 3 minuti! Spiegato in modo semplice

    Una sotto area dell'Intelligenza Artificiale , ed è definito come la capacità di una macchina di imitare il modo umano intelligente di apprendere dai dati. ( Noi utilizziamo il cervello biologico, le macchine

  • Crea il tuo ChatGPT per i PDF con Langchain

    In soli sei mesi, ChatGPT di OpenAI è diventato parte integrante delle nostre vite. Non è più solo limitato alla tecnologia; persone di tutte le età e professioni, dagli studenti agli scrittori, lo utilizzano ampiamente. Questi modelli di chat eccellono per accuratezza, velocità e conversazioni simili a quelle umane. Sono pronti a svolgere un ruolo significativo in vari campi, non solo nella tecnologia. Sono emersi strumenti open source come AutoGPTs, BabyAGI e Langchain, sfruttando la potenza dei modelli linguistici. Automatizza le attività di programmazione con i prompt, collega i modelli linguistici alle origini dati e crea applicazioni AI più velocemente che mai. Langchain è uno strumento di domande e risposte abilitato per ChatGPT per i PDF, che lo rende uno sportello unico per la creazione di applicazioni AI. Obiettivi formativi Crea un'interfaccia chatbot utilizzando Gradio Estrai testi da pdf e crea embedding Memorizza gli embedding nel database dei vettori Chroma Invia query al back-end (catena Langchain) Esegui ricerche semantiche sui testi per trovare fonti di dati pertinenti Invia dati a LLM (ChatGPT) e ricevi risposte sul chatbot Il Langchain semplifica l'esecuzione di tutti questi passaggi in poche righe di codice. Dispone di wrapper per più servizi, inclusi modelli di embedding, modelli di chat e database vettoriali. Scarica ora tutto il codice python del progetto ! Cos'è Langchain? Langchain è uno strumento open source scritto in Python che aiuta a connettere dati esterni a Large Language Models. Rende i modelli di chat come GPT-4 o GPT-3.5 più agentici e sensibili ai dati. Quindi, in un certo senso, Langchain fornisce un modo per fornire agli LLM nuovi dati su cui non è stato addestrato. Langchain fornisce molte catene che astraggono le complessità nell'interazione con i modelli linguistici. Abbiamo anche bisogno di molti altri strumenti, come i modelli per la creazione di incorporamenti di vettori e database di vettori per memorizzare i vettori. Prima di procedere oltre, diamo una rapida occhiata agli Embedding di testo. Cosa sono e perché sono importanti? Embedding di testo. Gli Embedding di testo sono il cuore e l'anima di Large Language Operations. Tecnicamente, possiamo lavorare con i modelli linguistici con il linguaggio naturale, ma l'archiviazione e il recupero del linguaggio naturale è altamente inefficiente. Ad esempio, in questo progetto, dovremo eseguire operazioni di ricerca ad alta velocità su grandi blocchi di dati. È impossibile eseguire tali operazioni sui dati in linguaggio naturale. Per renderlo più efficiente, dobbiamo trasformare i dati di testo in forme vettoriali. Esistono modelli ML dedicati per la creazione di incorporamenti o embedding da testi. I testi vengono convertiti in vettori multidimensionali. Una volta incorporati, possiamo raggruppare, ordinare, cercare e altro su questi dati. Possiamo calcolare la distanza tra due frasi per sapere quanto sono strettamente correlate. E la parte migliore è che queste operazioni non si limitano solo a parole chiave come le tradizionali ricerche nel database, ma catturano piuttosto la vicinanza semantica di due frasi. Questo lo rende molto più potente, grazie al Machine Learning. Strumenti Langchain Langchain ha wrapper per tutti i principali database vettoriali come Chroma, Redis, Pinecone, Alpine db e altri. E lo stesso vale per gli LLM, insieme ai modelli OpeanAI, supporta anche i modelli di Cohere, GPT4ALL, un'alternativa open source per i modelli GPT. Per gli incorporamenti, fornisce wrapper per gli incorporamenti OpeanAI, Cohere e HuggingFace. Puoi anche utilizzare i tuoi modelli di incorporamento personalizzati. Quindi, in breve, Langchain è un meta-strumento che elimina molte complicazioni dell'interazione con le tecnologie sottostanti, il che rende più facile per chiunque creare rapidamente applicazioni AI. In questo articolo, utilizzeremo il modello di incorporamento OpeanAI per la creazione di incorporamenti. Se desideri distribuire un'app AI per gli utenti finali, considera l'utilizzo di qualsiasi modello Opensource, come i modelli Huggingface o il codificatore di frasi universale di Google. Per archiviare i vettori, utilizzeremo Chroma DB , un database di archiviazione di vettori open source. Sentiti libero di esplorare altri database come Alpine, Pinecone e Redis. Langchain ha wrapper per tutti questi negozi vettoriali. Per creare una catena Langchain, utilizzeremo ConversationalRetrievalChain (), ideale per conversazioni con modelli di chat con cronologia (per mantenere il contesto della conversazione). Controlla la loro documentazione ufficiale relativa alle diverse catene LLM. Configurare l'ambiente di sviluppo per langchain Ci sono parecchie librerie che useremo. Quindi, installali in anticipo. Per creare un ambiente di sviluppo fluido e ordinato, utilizza gli ambienti virtuali o Docker . gradio = "^3.27.0" openai = "^0.27.4" langchain = "^0.0.148" chromadb = "^0.3.21" tiktoken = "^0.3.3" pypdf = "^3.8.1" pymupdf = "^1.22.2" Scarica ora tutto il codice python del progetto ! Ora, importa queste librerie import gradio as gr from langchain.embeddings.openai import OpenAIEmbeddings from langchain.text_splitter import CharacterTextSplitter from langchain.vectorstores import Chroma from langchain.chains import ConversationalRetrievalChain from langchain.chat_models import ChatOpenAI from langchain.document_loaders import PyPDFLoader import os import fitz from PIL import Image Costruisci l'interfaccia di chat L'interfaccia dell'applicazione avrà due funzionalità principali, una è un'interfaccia di chat e l'altra rende la pagina pertinente del PDF come un'immagine. Oltre a questo, una casella di testo per accettare le chiavi API OpenAI dagli utenti finali. L'articolo discute gli aspetti fondamentali di Gradio. Prenderemo in prestito molte cose da questo articolo. La classe Gradio Blocks ci consente di creare un'app Web. Le classi Row e Columns consentono di allineare più componenti nell'app Web. Li useremo per personalizzare l'interfaccia web. with gr.Blocks() as demo: # Create a Gradio block with gr.Column(): with gr.Row(): with gr.Column(scale=0.8): api_key = gr.Textbox( placeholder='Enter OpenAI API key', show_label=False, interactive=True ).style(container=False) with gr.Column(scale=0.2): change_api_key = gr.Button('Change Key') with gr.Row(): chatbot = gr.Chatbot(value=[], elem_id='chatbot').style(height=650) show_img = gr.Image(label='Upload PDF', tool='select').style(height=680) with gr.Row(): with gr.Column(scale=0.70): txt = gr.Textbox( show_label=False, placeholder="Enter text and press enter" ).style(container=False) with gr.Column(scale=0.15): submit_btn = gr.Button('Submit') with gr.Column(scale=0.15): btn = gr.UploadButton("📁 Upload a PDF", file_types=[".pdf"]).style() L'interfaccia è semplice con pochi componenti. Scarica ora tutto il codice python del progetto ! Esso ha: Un'interfaccia di chat per comunicare con il PDF. Un componente per il rendering di pagine PDF pertinenti. Una casella di testo per accettare la chiave API e un pulsante di modifica della chiave. Una casella di testo per porre domande e un pulsante di invio. Un pulsante per caricare i file. Ecco uno screshot di come dovresti vederel 'interfaccia utente web. La parte frontend della nostra applicazione è completa. Passiamo al backend. Backend di ChatGPT per i PDF con Langchain Innanzitutto, delineamo i processi con cui ci occuperemo. Gestisci il PDF caricato e la chiave API OpenAI Estrai testi da PDF e crea incorporamenti di testo utilizzando gli incorporamenti OpenAI. Memorizza gli incorporamenti vettoriali nell'archivio vettoriale ChromaDB. Crea una catena di recupero conversazionale con Langchain. Crea incorporamenti di testo interrogato ed esegui una ricerca per somiglianza su documenti incorporati. Invia i documenti pertinenti al modello di chat OpenAI (gpt-3.5-turbo). Recupera la risposta e riproducila in streaming sull'interfaccia utente della chat. Renderizza la pagina PDF pertinente sull'interfaccia utente Web. Queste sono la panoramica della nostra applicazione. Iniziamo a costruirlo. Gestione eventi principali di ChatGPT per i PDF con Langchain Quando viene eseguita un'azione specifica sull'interfaccia utente Web, questi eventi vengono attivati. Quindi, gli eventi rendono la web app interattiva e dinamica. Gradio ci permette di definire eventi con codici Python. Gradio Events utilizza le variabili dei componenti che abbiamo definito in precedenza per comunicare con il backend. Definiremo alcuni eventi di cui abbiamo bisogno per la nostra applicazione. Questi sono Invia evento chiave API : premendo Invio dopo aver incollato la chiave API si attiverà questo evento. Cambia chiave : questo ti permetterà di fornire una nuova chiave API Inserisci query : invia query di testo al chatbot Carica file : consente all'utente finale di caricare un file PDF with gr.Blocks() as demo: # Create a Gradio block with gr.Column(): with gr.Row(): with gr.Column(scale=0.8): api_key = gr.Textbox( placeholder='Enter OpenAI API key', show_label=False, interactive=True ).style(container=False) with gr.Column(scale=0.2): change_api_key = gr.Button('Change Key') with gr.Row(): chatbot = gr.Chatbot(value=[], elem_id='chatbot').style(height=650) show_img = gr.Image(label='Upload PDF', tool='select').style(height=680) with gr.Row(): with gr.Column(scale=0.70): txt = gr.Textbox( show_label=False, placeholder="Enter text and press enter" ).style(container=False) with gr.Column(scale=0.15): submit_btn = gr.Button('Submit') with gr.Column(scale=0.15): btn = gr.UploadButton("📁 Upload a PDF", file_types=[".pdf"]).style() # Set up event handlers # Event handler for submitting the OpenAI API key api_key.submit(fn=set_apikey, inputs=[api_key], outputs=[api_key]) # Event handler for changing the API key change_api_key.click(fn=enable_api_box, outputs=[api_key]) # Event handler for uploading a PDF btn.upload(fn=render_first, inputs=[btn], outputs=[show_img]) # Event handler for submitting text and generating response submit_btn.click( fn=add_text, inputs=[chatbot, txt], outputs=[chatbot], queue=False ).success( fn=generate_response, inputs=[chatbot, txt, btn], outputs=[chatbot, txt] ).success( fn=render_file, inputs=[btn], outputs=[show_img] ) Finora non abbiamo definito le nostre funzioni chiamate all'interno dei gestori di eventi di cui sopra. Successivamente, definiremo tutte queste funzioni per creare un'app Web funzionale. Scarica ora tutto il codice python del progetto ! Gestisci le chiavi API La gestione delle chiavi API di un utente è importante poiché l'intera cosa funziona secondo il principio BYOK (Bring Your Own Key). Ogni volta che un utente invia una chiave, la casella di testo deve diventare immutabile con un prompt che suggerisce che la chiave è impostata. E quando viene attivato l'evento "Cambia chiave", la scatola deve essere in grado di ricevere input. Per fare ciò, definire due variabili globali. enable_box = gr.Textbox.update(value=None,placeholder= 'Upload your OpenAI API key',interactive=True) disable_box = gr.Textbox.update(value = 'OpenAI API key is Set',interactive=False) Definiamo le funzioni def set_apikey(api_key): os.environ['OPENAI_API_KEY'] = api_key return disable_box def enable_api_box(): return enable_box La funzione set_apikey accetta un input di stringa e restituisce la variabile disable_box, che rende la casella di testo immutabile dopo l'esecuzione. Nella sezione Gradio Events, abbiamo definito l'api_key Submit Event, che chiama la funzione set_apikey. Impostiamo la chiave API come variabile di ambiente utilizzando la libreria del sistema operativo. Facendo clic sul pulsante Cambia chiave API viene restituita la variabile enable_box, che abilita nuovamente la mutabilità della casella di testo. Creiamo la catena di Langchain Questo è il passo più importante. Questo passaggio comporta l'estrazione di testi e la creazione di incorporamenti e la loro memorizzazione in archivi vettoriali. Grazie a Langchain, che fornisce wrapper per più servizi semplificando le cose. Quindi, definiamo la funzione. def process_file(self,file): loader = PyPDFLoader(file.name) documents = loader.load() pattern = r"/([^/]+)$" match = re.search(pattern, file.name) file_name = match.group(1) return documents, file_name def build_chain(self, file): documents, file_name = self.process_file(file) #Load embeddings model embeddings = OpenAIEmbeddings(openai_api_key=self.OPENAI_API_KEY) pdfsearch = Chroma.from_documents(documents, embeddings, collection_name= file_name,) chain = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0.0, openai_api_key=self.OPENAI_API_KEY), retriever=pdfsearch.as_retriever(search_kwargs={"k": 1}),return_source_documents=True,) return chain Creato un controllo se la chiave API è impostata o meno. Ciò genererà un errore sul front-end se la chiave non è impostata. Funzione Carica il file PDF usando PyPDFLoader Funzionalità di incorporamento definita con OpenAIEmbeddings. Creato un archivio vettoriale dall'elenco di testi dal PDF Definita una catena con chatOpenAI (per impostazione predefinita ChatOpenAI usa gpt-3.5-turbo) e un base retriever (usa una ricerca per similarità). Genera le risposte Una volta creata la catena, chiameremo la catena e invieremo le nostre query. Invia una cronologia della chat insieme alle query per mantenere il contesto delle conversazioni e trasmettere le risposte all'interfaccia della chat. Definiamo la funzione. def generate_response(history, query, btn): if not file: raise gr.Error(message='Upload a PDF') chain = app(file) result = chain({"question": query, 'chat_history':app.chat_history},return_only_outputs=True) app.chat_history += [(query, result["answer"])] app.N = list(result['source_documents'][0])[1][1]['page'] for char in result['answer']: history[-1][-1] += char yield history,'' Genera un errore se non è stato caricato alcun PDF. Chiama la funzione process_file solo una volta. Invia query e cronologia chat alla catena Recupera il numero di pagina della risposta più pertinente. Rendi le risposte al front-end. Scarica ora tutto il codice python del progetto ! Renderizza l'immagine di un file PDF Il passaggio finale consiste nel rendere l'immagine del file PDF con la risposta più pertinente. Possiamo usare le librerie PyMuPdf e PIL per renderizzare le immagini del documento. def render_file(file): global N# Open the PDF document using fitz doc = fitz.open(file.name)# Get the specific page to render page = doc[N]# Render the page as a PNG image with a resolution of 300 DPI pix = page.get_pixmap(matrix=fitz.Matrix(300/72, 300/72))# Create an Image object from the rendered pixel data image = Image.frombytes('RGB', [pix.width, pix.height], pix.samples)# Return the rendered imagereturn image Apri il file con Fitz di PyMuPdf. Ottieni la pagina pertinente. Ottieni la mappa dei pixel per la pagina. Crea l'immagine dalla classe Image di PIL. Questo è tutto ciò che dobbiamo fare per un'app Web funzionale per chattare con qualsiasi PDF. Scarica ora tutto il codice python del progetto ! Mettiamo tutto insieme from typing import Any import gradio as gr from langchain.embeddings.openai import OpenAIEmbeddings from langchain.vectorstores import Chroma from langchain.chains import ConversationalRetrievalChain from langchain.chat_models import ChatOpenAI from langchain.document_loaders import PyPDFLoader import fitz from PIL import Image import chromadb import re import uuid enable_box = gr.Textbox.update(value=None,placeholder= 'Upload your OpenAI API key',interactive=True) disable_box = gr.Textbox.update(value = 'OpenAI API key is Set',interactive=False) def set_apikey(api_key): app.OPENAI_API_KEY = api_key return disable_box def enable_api_box(): return enable_box def add_text(history, text): if not text: raise gr.Error('enter text') history = history + [(text,'')] return history class my_app: def __init__(self, OPENAI_API_KEY= None ) -> None: self.OPENAI_API_KEY = OPENAI_API_KEY self.chain = None self.chat_history = [] self.N = 0 self.count = 0 def __call__(self, file) -> Any: if self.count==0: print('This is here') self.build_chain(file) self.count+=1 return self.chain def chroma_client(self): #create a chroma client client = chromadb.Client() #create a collecyion collection = client.get_or_create_collection(name="my-collection") return client def process_file(self,file): loader = PyPDFLoader(file.name) documents = loader.load() pattern = r"/([^/]+)$" match = re.search(pattern, file.name) file_name = match.group(1) return documents, file_name def build_chain(self, file): documents, file_name = self.process_file(file) #Load embeddings model embeddings = OpenAIEmbeddings(openai_api_key=self.OPENAI_API_KEY) pdfsearch = Chroma.from_documents(documents, embeddings, collection_name= file_name,) chain = ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0.0, openai_api_key=self.OPENAI_API_KEY), retriever=pdfsearch.as_retriever(search_kwargs={"k": 1}), return_source_documents=True,) return chain def get_response(history, query, file): if not file: raise gr.Error(message='Upload a PDF') chain = app(file) result = chain({"question": query, 'chat_history':app.chat_history},return_only_outputs=True) app.chat_history += [(query, result["answer"])] app.N = list(result['source_documents'][0])[1][1]['page'] for char in result['answer']: history[-1][-1] += char yield history,'' def render_file(file): doc = fitz.open(file.name) page = doc[app.N] #Render the page as a PNG image with a resolution of 300 DPI pix = page.get_pixmap(matrix=fitz.Matrix(300/72, 300/72)) image = Image.frombytes('RGB', [pix.width, pix.height], pix.samples) return image def render_first(file): doc = fitz.open(file.name) page = doc[0] #Render the page as a PNG image with a resolution of 300 DPI pix = page.get_pixmap(matrix=fitz.Matrix(300/72, 300/72)) image = Image.frombytes('RGB', [pix.width, pix.height], pix.samples) return image,[] app = my_app() with gr.Blocks() as demo: state = gr.State(uuid.uuid4().hex) with gr.Column(): with gr.Row(): with gr.Column(scale=0.8): api_key = gr.Textbox(placeholder='Enter OpenAI API key', show_label=False, interactive=True).style(container=False) with gr.Column(scale=0.2): change_api_key = gr.Button('Change Key') with gr.Row(): chatbot = gr.Chatbot(value=[], elem_id='chatbot').style(height=650) show_img = gr.Image(label='Upload PDF', tool='select' ).style(height=680) with gr.Row(): with gr.Column(scale=0.60): txt = gr.Textbox( show_label=False, placeholder="Enter text and press enter", ).style(container=False) with gr.Column(scale=0.20): submit_btn = gr.Button('submit') with gr.Column(scale=0.20): btn = gr.UploadButton("📁 upload a PDF", file_types=[".pdf"]).style() api_key.submit(fn=set_apikey, inputs=[api_key], outputs=[api_key,]) change_api_key.click(fn= enable_api_box,outputs=[api_key]) btn.upload(fn=render_first, inputs=[btn], outputs=[show_img,chatbot],) submit_btn.click(fn=add_text, inputs=[chatbot,txt], outputs=[chatbot, ], queue=False).success(fn=get_response,inputs = [chatbot, txt, btn], outputs = [chatbot,txt]).success(fn=render_file,inputs = [btn], outputs=[show_img]) demo.queue() demo.launch() Ora che abbiamo configurato tutto, lanciamo la nostra applicazione. È possibile avviare l'applicazione in modalità debug con il seguente comando gradio app.py Altrimenti, puoi anche semplicemente eseguire l'applicazione con il comando Python. Di seguito è riportato il risultato finale. Scarica ora tutto il codice python del progetto !

  • AutoEncoder cosa sono e come funzionano

    Mentre il mondo si sviluppa rapidamente con i progressi nell'apprendimento automatico e nell'intelligenza artificiale , presto ci troveremo ad affrontare una situazione di aumento incontrollabile dei dati.

  • Modelli di Machine Learning per Principianti con codice python

    Alimentati dai dati, i modelli di machine learning (ML) sono i motori matematici dell'intelligenza artificiale Ad esempio, un modello ML per la visione artificiale potrebbe essere in grado di identificare automobili

  • TensorFlow la libreria Python per il Deep Learning

    Conclusione su TensorFlow la libreria Python per il Deep Learning TensorFlow è uno strumento di intelligenza artificiale di primo piano e se vuoi lavorare nell'intelligenza artificiale o nell'apprendimento automatico L'apprendimento automatico e l'intelligenza artificiale sono due esempi di applicazioni tecnologiche

  • Esempi di Algebra Lineare nel Machine Learning o Apprendimento Automatico

    e Fotografie Forse sei più abituato a lavorare con immagini o fotografie in applicazioni di visione artificiale In molti metodi che coinvolgono coefficienti, come i metodi di regressione e le reti neurali artificiali Apprendimento profondo Le reti neurali artificiali sono algoritmi di apprendimento automatico non lineari Il deep learning è la recente rinascita nell'uso di reti neurali artificiali con metodi più recenti e Letture consigliate su " Esempi di algebra lineare nell'apprendimento automatico " : Intelligenza Artificiale

  • Migliori tecniche di analisi dei dati

    che si occupa di estrarre informazioni dai dati raccolti e di utilizzarle per supportare le decisioni aziendali Ti mostreremo come queste tecniche possono essere utilizzate per risolvere problemi aziendali specifici Poiché le aziende prosperano sotto l'influenza di molti progressi tecnologici, l'analisi dei dati gioca

  • Cos'è la Statistica e che Correlazione c'è con il Machine Learning ?

    preliminare primitiva come si può vedere in questa citazione dal ampiamente letto " Programmazione dell'Intelligenza

  • Prevedere i tempi di consegna con python e il deep learning

    Queste aziende utilizzano algoritmi di Machine Learning o Deep Learning per prevedere i tempi di consegna

bottom of page