import streamlit as st import requests import pandas as pd import io import re from io import StringIO def queryMistral(payload): response = requests.post(API_URLMistral, headers=headersMistral, json=payload) return response.json() def queryGemma(payload): return requests.post(API_URLGemma, headers=headersGemma, json=payload).json() #post and get #Upload csv uploaded_file = st.file_uploader("Choose a file") if uploaded_file is not None: # To read file as bytes: bytes_data = uploaded_file.getvalue() #st.write(bytes_data) my_df = pd.read_csv(uploaded_file) st.write(my_df) token = st.secrets["HF_TOKEN"] modello1 = "Gemma-1.1-7b-it" API_URLGemma = "https://api-inference.huggingface.co/models/google/gemma-1.1-7b-it" headersGemma = {"Authorization": "Bearer " + token } #accesso a Mistral tramite Token realizzare dataset_semplice csv:( nome del campo, descrizione) modello2 = "Mistral-7B-Instruct-v0.2" API_URLMistral = "https://api-inference.huggingface.co/models/mistralai/Mistral-7B-Instruct-v0.2" headersMistral = {"Authorization": "Bearer " + token } #Stampa delle colonne del cvs ( my df) ti da una lista delle colonne colonne = "" for col in my_df.columns: colonne =colonne + col + "," print(col) #colonne.pop() print(colonne) contesto = "dati di impianti industriali." # Dividi la stringa in righe righe = colonne.strip().split(',') #--> questo ritorna una lista # Estrai i valori e crea il DataFrame df = pd.DataFrame(righe, columns=['campo']) print(df.shape) print("===========================") print(df["campo"][1]) try: df.insert(1,"descrizioneGemma","") except: pass try: df.insert(1,"descrizioneMistral","") except: pass "Descrivi il campo di una tabella che contiene dati di un impianto industriale. Il nome del campo è id_plant. Il formato desiderato è descrizione: <>" for i in range(0,4): rispostaGemma = queryGemma({ "inputs": "Descrivi il campo di una tabella che contiene" + contesto+ ". Il nome del campo è " + df["campo"][i] + " Il formato desiderato è descrizione: <>", }) df["descrizioneGemma"][i] = rispostaGemma[0]["generated_text"] rispostaMistral = queryMistral({ "inputs": "Descrivi il campo di una tabella che contiene" + contesto+ ". Il nome del campo è " + df["campo"][i] + " Il formato desiderato è descrizione: <>", }) df["descrizioneMistral"][i] = rispostaMistral[0]["generated_text"] #TASK 23/MAGG/ per prossima sett inizio giugno #FARE UN ALTRA REGEX ( SISTEMARLA IN MODO CHE RITORNI LA RISPOSTA, OVVERO LA DESCRIZIONE PULITA) #CICLARLO SU TUTTI I CAMPI, ANCHE PER MISTRAL # + UNA TERZA AI GRATUTITA #OBBIETTIVO: OTENERE UN DATAFRAME CON SCRITTE PULITE ALL INTERNO #COME PASSARE UNA VARIABILE (CONTESTO) INVECE CHE SCRUBVERLA COME OGGETTO DI STREAMLIT , la scriviamo a mano quando runiamo il programma print("!!!!!!!!!!!") print(rispostaGemma[0]["generated_text"]) print("!!!!!!!!!!!") #PULIZIA STRINGA # La stringa fornita #for i in df.shape()[0]: input_string = df["descrizioneGemma"][0] # Utilizzo di un'espressione regolare per estrarre la descrizione description_pattern = r'<<(.*?)>>' # Cerca la descrizione nella stringa match = re.search(description_pattern, input_string) if match: description = match.group(1) print(description) df["descrizioneGemma"][0] = description else: print("Descrizione non trovata.") print("RISPOSTA DOPO REGEX:" + df["descrizioneGemma"][0]) ## le letterea a caso sono le descrizioni dei campi che DEVE generare l AI print("============") #caricamento descrizioni Gemma risposteGemma = [] for col in my_df.columns: risposteGemma = queryGemma({ "inputs": "Descrivi il seguente camo industriale: " + col # + ".Esempio formato-risposta: 'il campo contiene dati di ' .Il nome del campo è " + df["campo"][i], }) #Aggiungo alla liste delle stringhe pulite. risposteGemma.append(rispostaMistral[0]["generated_text"]) print(risposteGemma) df['descrizioneMistral'] = [rispostaMistral[0]["generated_text"] ,"bb","cc","dd","ee","ff"] print(df) st.table(df) #stringa = "To create a schema for a table in an industrial plant, I'd suggest the following:\n\n1. Product_Table\n\nThis table keeps records of all the products manufactured or processed within the industrial plant.\n\n| Field | Data Type | Description |\n| ------------- | --------- | ------------------------------------------------ |\n| id | INT | Unique identifier for each product record |\n| product_name | VARCHAR " #print(stringa)