File size: 17,804 Bytes
c75938c
6ad7f34
0d1ca06
3df65e3
4282a0d
fb7af29
4fa6b5f
fb7af29
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c75938c
 
0d1ca06
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fb7af29
83de528
fb7af29
 
 
 
 
83de528
6bc989b
fb7af29
 
 
 
78e5231
fb7af29
 
beab6ff
fb7af29
 
beab6ff
fb7af29
 
beab6ff
fb7af29
 
 
 
 
6bc989b
fb7af29
0d1ca06
 
78e5231
83de528
1519b68
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
973d924
 
83de528
 
b011ea0
83de528
 
0d1ca06
 
 
 
 
fb7af29
 
83de528
0d1ca06
1519b68
fb7af29
 
78e5231
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
import gradio as gr
import torch
import re
import os
auth_token = os.environ.get("HUGGING_FACE_HUB_TOKEN")
from unsloth import FastLanguageModel

instruction = """
From the given email, extract the following key values. The keys are explained below:
* pickup_location: Street address of the origin location of goods.
* pickup_cap: Postal code or ZIP code of the pickup location.
* pickup_port: Port of pickup, often used in international shipping.
* pickup_state: Only Country of pickup location.
* delivery_location: Street address of the destination location of goods.
* delivery_cap: Postal code or ZIP code of delivery location.
* delivery_port: Port of delivery, similar to pickup port.
* delivery_state: State or region of delivery location.
* total_quantity: Overall quantity of shipped items (e.g., pieces, boxes). Calculate the total_quantity by summing the quantity of all packages.
* total_weight: Total weight of the shipment (e.g., kg, lbs). Calculate the total_weight by summing the weights of all packages.
* total_volume: Total volume of the shipment (e.g., cubic meters, cubic feet). Calculate the total_volume by summing the volumes of all packages.
* quantity: Individual Quantity of a specific item being shipped.
* package_type: Individual Type of packaging used (e.g., pallets, cartons).
* weight: Individual Weight of a specific package.
* measures: Individual Dimensions or measurements of a package.
* stackable: Indicates whether the shipment is stackable (True or False).
* volume: Individual Volume of a specific package.
* commodity: Type of goods or commodities being shipped.
* company: Name of the email sending company, also the shipping company or carrier.
* incoterms: Choose available options: EXW, FCA, FAS, FOB, CFR, CIF, CPT, CIP, DAP, DPU, DDP.
"""



def process_output(output):
    """
    Process the output to extract the response.
    """
    # Define the regex pattern
    pattern = r'### Response:\n?(.*?)<\|endoftext\|>'
    # Search for the pattern in the output
    match = re.search(pattern, output, re.DOTALL)
    
    if match:
        # Extract the response
        response = match.group(1)
        # Remove specified symbols
        cleaned_str = re.sub(r'\\n|\\\\|\\\'', '', response)
        return cleaned_str
    else:
        return output


# Define the function for generating output based on input
def generate_output(input_text,model):
    # Prompt for the instruction
    
    output = ""
    # Initialize the FastLanguageModel
    model, tokenizer = FastLanguageModel.from_pretrained(
        model_name = model,
        max_seq_length = 4096,
        dtype = None,
        load_in_4bit = True,
    )
    FastLanguageModel.for_inference(model) # Enable native 2x faster inference

    alpaca_prompt = f"""
    Below is an instruction that describes a task, paired with an input that provides further context. Write a response that appropriately completes the request.

    ### Instruction:
    {instruction}

    ### Input:
    {input_text}

    ### Response:
    """
    # Tokenize the input text
    inputs = tokenizer([alpaca_prompt], return_tensors="pt").to("cuda")
    # Generate outputs
    outputs = model.generate(**inputs, max_new_tokens=4096, use_cache=True)
    output = tokenizer.batch_decode(outputs)
    cleaned_response = process_output(output)
    return output,cleaned_response


examples = [
    ["""dubai", "Dear Team, ; Please quote SEA option for below inquiry ; POD :Jebel Ali . ; estimated packing details ;  3300x950x1350 mm ; 3800x1700x1350 mm ; 1900x2000x1200 mm ; 1900x2000x1200 mm ; 2600x1300x1200 mm ; 3900x1100x1350 mm ; 820x780x950 mm ; Total weight kg 5000 approx ; Not stackable ; Marrone Srl ; via Rui, 5 - Loc. Prà dei Risi ; I - 33080 Zoppola (PN) ; Warehouse: 08:00 – 12:00 / 13:00 – 16:30 ; Warehouse Handling + Free days  w.e.f  01-01-2024 ; AED 250 + vat until 10 CBM -  AED 350 + Vat 11 CBM on wards ; Free time applicable - 7 days only for General cargo from DO readiness & No free time for HAZ CARGO, post which standard storage tariff will apply. ; Important Notice ;  : Considering the ongoing circumstances, please be informed after booking confirmation the rates and schedules may undergo changes without advance notice. ; Please also expect vessel delays and changes in transit time. ; CSS will not be liable for any claims that arise due to this. ; Deepak Unnikrishnan ; Sr Sales Coordinator ; Consolidated Shipping Service L.L.C. ; Office: +971 4 883 1303 | Ext: 1163| Toll Free: 800277 | Mobile: +971501513697| ; Dubai | United Arab Emirates ; [email protected] | www.cssgroupsite.com ; Our Offices: Dubai | Abu Dhabi | Sharjah | Ras-Al-Khaimah | Bahrain | Oman | Qatar | Saudi Arabia | Kuwait | Iraq | Africa | Turkiye | India | Sri Lanka | ; Disclaimer: This email and any attachments are confidential and may also be privileged. If you are not the intended recipient, please delete all copies and notify the sender immediately. ; Please read our ; disclaimer."""],
    ["""I: LCL BUSAN   RICHIESTA QUOTAZIONE", "Buongiorno, ; Ci servirebbe cortesemente Vs quotazione per: ; PESO:  7140 ; COLLI:  7 Pallet ; MISURE: 100X120X130H (6 PLTS)   100X120X160H (1 PLT) ; La dogana verrà fatta a stabilimento, pertanto si richiede solo lo scarico bolla. ; La attendiamo ; Grazie mille ; Nicolo Esibiti ; Export Sales Department ; T +39 010 2717399 ; Casasco & Nardi S.p.A. ; Palazzo Andrea Pitto ; Piazza Fossatello, 3 ; 16124, Genova ; www.casasconardi.com ; """],
    ["""I: CIC/2324/806 // Rates Ex Italy To Chennai Port", "Dear Ceriana , ; Please quote your best rate Ex-Works Cesena Italy, By Sea to Chennai Sea Port for below given details : ; Cargo is non stackable and non tiltable, send quote accordingly. ; ITEM  -  EQUIPMENT FOR PHYSICAL EXERCISE ; Total   -   10 Packages ; Net Weight  -  1838.62 Kgs ; Total Weight  -  2291.85 Kgs ; Total Volume (m3)  -  17.36 ; Refer attached Packing List for Dimensions, etc.   ; Pick-Up Address : ; Technogym S.P.A ; Via Calcinaro, 2861 ; 47521 Cesena ( FC) ; Italy ; Thanks & Regards, ; RAKSHANA.R ; A Group of RADAR VENTURES PVT LTD. ; 6th Floor, Menon Eternity, St. Marys Road, ; Alwarpet, Chennai-600018 ; PH NO:7305888727 ; MAIL ID : ; [email protected]"""],
    ["""I: KEELUNG", "Ciao Paolo, ; Per favore mi quoti per: ; Winery: Cantina Tollo ; pick up::66010 ; POD: Keelung ; Cargo size : 120x 100x190 cm/ 2 Pallets 1581/Kg ; 210 cases ,1581kg, 2Pallets about 4.56 CBM ; Grazie ; Cordiali saluti/ Best regards ; ________________________________________________________________________________ ; Franco Raiola  – Area manager ; Cargo Compass spa ; Via Lavoria 56/L/M/N | Cenaia | Crespina Lorenzana | Pisa | 56040  | ITALY ; [email protected] | O +39.050.643133  | F +39.050.644687 | C+39.335.1277205  | www.cargocompassworld.com"""],
    ["""I: LAINATE > KEE", "Ciao Paolo / Giorgia, ; Per favore mi quotate da LAINATE (MI)  a KEELUNG ; (MOBILI) ; 5 colli – 168,7 kg ; 120x80x187 ; 265x100x78 ; 120x53x54 ; 78x82x78 ; 63x56x100 ; Grazie ciao   ; Alberto Porta ; MOBILE NUMBER + 39 3337934630 ; T: +39 0331 1090068 ; E: [email protected] ; W: www.nordestgroup.it ; Branch MXP: Via del Gregge n°100 – 21015  Lonate Pozzolo ( VA ) ; IATA code 38471480003 – PI/VAT 01327440937 – SDI M5UXCR1 ; Headquarters: Viale Ponte Rosso 19 - 33078 San Vito al Tagliamento ( PN ) ; Branch GOA: Piazza della Nunziata n°5 - 16124 Genova ( GE )"""],
    ["""I: RATE EXW FRANCE - BUENOS AIRES LCL qt3218", "Dear Davide, ; Is it possible coordinate this cargo for Genova? ; PICK UP LOCATION: ; 6 rue Désir Prévost – La grande Brénche ; 91070 Bondoufle FRANCE ; DESTINATION: BUENOS AIRES ; CARGO : ; 1 pallet / 120x80x123 cm – 124 kgs ; 1 pallet / 120x80x108 cm – 108 kgs ; Caga general ; Brgds, ; Estèfany"""],
    ["""I: Richiesta quotazione da 45030 Occhiobello (RO) / Muscat + schedule + agente", "Buongiorno a tutti, ; avremmo bisogno dei vostri costi come da oggetto per 2 pallets – 1075 kg tot – cm 120x100x165/2 ; commodity egg yolk powder ; prego gentilmente fornire, oltre ai dettagli del servizio e t/t, anche schedule con cut off e nominativo del vostro agente a destino ; grazie e buon lavoro ; Cordiali Saluti / Best Regards ; Vera Mangini ; Ocean Export/Import Customer Service ; YUHANG ITALIA S.R.L. ; Office phone: +39 02 51650641 ; Office Address: Via Zara 1, Pioltello (MI) 20096 ; Warehouse Address: Via Gorizia 4/B, Pioltello (MI) 20096 ; www.yuhang.it"""],
    ["""I: Richiesta quotazione per Chennai", "Buon pomeriggio ; Preghiamo Vs quotazione per la seguente merce: ; Merce: almond paste /pasta di mandorla ; 1 pedana cm 100x120 x 136 cm h ; 1 pedana cm 100x120 x 96 cm h ; Peso: netto 1.000 kg / peso lordo 1095 kg ; H.S. code 20071099 ; NON SOVRAPPONIBILI. ; Da ritirare a 33031 Basiliano (UD) ; POD: Chennai / India ; Grazie e saluti ; Dario Masiello ; Francesco Parisi Casa di Spedizioni S.p.A. ; Overseas and Commodities - Export Manager ; Headquarters Trieste, Italy ; Viale Miramare, 5, 34135 Trieste - Italy ; tel. +39 040 4193140 ; web site: www.francescoparisi.com<https://www.francescoparisi.com/>"""],
    ["""I: RICHIESTA OFFERTA CFR CHITTOGRAM 6 PLT 8166 KG NO ADR", "Buon pomeriggio, ; chiedo cortesemente vs offerta per ; CFR CHITTOGRAM ; n. 5 pallet – 130x110x200h ; n. 1 pallet – 130x110x50h ; kg. 8166 ; no ADR ; Ritiro in linea: VERDELLINO (BG) ; Grazie  ; Deborah Corbetta ; Sales Representative ; Savino Del Bene S.p.A. – Bergamo ; Airport Center ; Via Orio 29 d/e ; 24050 Grassobbio (BG) ; + 39 035 586 3011 int. 322 – cell. 331 6573947 ; [email protected]  ;   www.savinodelbene.com"""],
    ["""I: IN-38521 // ITALIA- MEX // LCL VAN BERKEL", "Gentilissimi, ; mio agente Messicano (Inndingo)  ha negoziato con la Vs. Messicana (Mewtral Mexico) nolo in Collect. ; Mi occorrono costi di ritiro+magazzino+operazione doganale per: ; 1plts cm 83*71*83 - 64 kg - ; Destino Veracruz CFS ; Ritiro ; Van Berkel International Srl ; C/O Interlaziale ; Via Milano 10 ; Ceriano Laghetto (MB) – 20816 ; Italia ; Orario magazzino: 8.30-12.30 / 13.30-17.00 – DA LUNEDI A VENERDI ; Flete marítimo en términos collect con mi contrato con la consolidadora Sinergy Cargo (Coloader Newtral Mexico). ; Compárteme tus costos de recolección, handling, despacho aduanal, costo de EUR-1, y costos pertinentes a este envío, así como próximas salidas, gracias! ; Se occorrono altri dati rimango a disposizione. ; Alessio"""],
    ["""gorla minore (va) + jebel ali/u.a.e.", "ciao ale ;   ; 1 plt/kg 415 ; cm 80*120*90 ;   ; prego quotami da gorla minore (va) su jebel ali ;   ; grazie ; Flavio Greco ; O.T.E. Spedizioni Internazionali S.r.l.  ; Via Pasubio 3 , 20026 Novate Milanese (Mi) ; Mb.+ 39 350.1490.834 ; I dati personali verranno gestiti ai sensi del D.Lgs 196/2003 (tutela della ; privacy)  ; Personal date supplied to us will be handled according the Italian law D.Lgs ; 196/2003 (privacy protection act) ;"""],
    ["""bizzarone (co) + yakima/u.s.a.", "ciao ale ;   ; 2 plts/totale kg 1.200 ; cm 80x120x220/cad ; .reti agricole ;   ; prego quotami da bizzarone (co) su 98903 dap yakima, wa ;   ; grazie ; Flavio Greco ; O.T.E. Spedizioni Internazionali S.r.l.  ; Via Pasubio 3 , 20026 Novate Milanese (Mi) ; Mb.+ 39 350.1490.834 ; I dati personali verranno gestiti ai sensi del D.Lgs 196/2003 (tutela della ; privacy)  ; Personal date supplied to us will be handled according the Italian law D.Lgs ; 196/2003 (privacy protection act) ; """],
    ["""SINERGY / SAN JOSE' COSTA RICA LCL", "Ciao ; Prego quotare : ; LUOGO DI CARICO: ; 31024 Ormelle TV Italy ; DATA CARICO: 07/12 ; MERCE: ; 3 PLT 100*120*220      H  NON SOVR ; + ; 1 PLT 80*120*50 H NON SOVR ; PESO: KG 2700 ; RESA CIF SAN JOSE / COSTARICA ; DOGANA NS CURA ; SCARICO BOLLA VS CURA ; VGM VS CURA ; TRANSIT TIME ; PROSSIME PARTENZE ; GRAZIE ; Best regards, ; Stefano Tonello, Sales Representative, Road, Air & Sea, Italy ; Sales ; [DSV logo]Global Transport and Logistics ; DSV S.p.A. | Corso Nuova Zelanda 8 | Padua | 35127 | Italy ; [email protected]<mailto:[email protected]>  |  Office +3= ; 9 0498692407  |  Mobile +39 3357808789 |  www.dsv.com<https://www.dsv.com/> ; DSV Standard Terms and Conditions ; All services are rendered according to the DSV Standard Terms and Condition= ; s and the Standard Trading Conditions (FEDESPEDI). In case of contradiction= ; s between the DSV Standard Terms and Conditions and the FEDESPEDI, the FEDE= ; SPEDI shall prevail. Your legal position is materially altered due to DSV's= ;  limited liability in case of loss of, damage to or delay of your cargo. DS= ; V will furthermore obtain the right of lien over your cargo and all claims = ; against DSV are time-barred after 1 year. We recommend that you review the = ; full text of the DSV Standard Terms and Conditions and the FEDESPEDI prior = ; to DSV's pick-up of your cargo - FEDESPEDI<https://docs.dsv.com/countries/i= ; taly/italy-terms-and-conditions/> - DSV Standard Terms & Conditions<https:/= ; /docs.dsv.com/group/group-legal/dsv-standard-terms-and-conditions-eng/>. ; Orders undertaken as carrier of overseas carriage are subject to conditions= ;  stipulated in the DSV Ocean Transport Bill of Lading/Sea Waybill. Your leg= ; al position is materially altered due to DSV's limited liability in case of= ;  loss of, damage to or delay of your cargo. DSV will furthermore obtain the= ;  right of lien over your cargo and all claims against DSV are time-barred a= ; fter 9 months. We recommend that you review the full version of the DSV Oce= ; an Bill of Lading before DSV's pick-up of your cargo - DSV Ocean Transport = ; B/L<https://docs.dsv.com/countries/denmark/combined-transport-bill-of-ladin= ; gpdf/> ; Orders undertaken as carrier of carriage by air are subject to conditions s= ; tipulated in DSV's House Air waybill. Your legal position is materially alt= ; ered due to DSV's limited liability in case of loss of, damage to or delay = ; of your cargo. All claims against DSV are time-barred after 2 years. We rec= ; ommend that you review the full version of the DSV House Air waybill prior = ; to DSV's pick-up of your cargo - DSV House Air Waybill<https://docs.dsv.com= ; /group/group-legal/dsv-conditions-of-contract-for-airfreight/> ; In case of discrepancy between the DSV Standard Terms and Conditions and th= ; e terms stipulated in the DSV Ocean Transport B/L or the DSV House Air Wayb= ; ill, the terms of the DSV Ocean Transport B/L or the DSV House Air Waybill = ; shall prevail. ; DSV processes your personal data according to DSV General Privacy Informati= ; on Notice<https://www.dsv.com/en/data-privacy>. ; Best regards, ; Stefano Tonello, Sales Representative, Road, Air & Sea, Italy ; [email protected]<mailto:[email protected]>  |  Office +3= ; 9 0498692407  |  Mobile +39 3357808789  |  www.dsv.com<https://www.dsv.com/= ; > ; """],
    ["""quotazione Nhava Sheva Bari", "ciao ;   ; per favore mi quoti ;   ; pod Nhava Sheva ; nolo collect ; ritiro a 70123 Bari ;   ; no.1 cassa kg 362 cm 167x86x91 ;   ; grazie ;   ; Michela Viele ; O.T.E.  ; Spedizioni Internazionali S.r.l.  ; Via Pasubio 3 , 20026 Novate Milanese ( Milano ) ; Ph. + 39 02 662471  ; I dati personali verranno gestiti ai sensi del D.Lgs 196/2003 (tutela della ; privacy) Personal date supplied to us will be handled according the Italian ; law D.Lgs 196/2003 (privacy protection act ;   ; """],
    ["""";; mi fai avere dap per tratta in oggetto.;;si tratta di tutta merce non sovrapponibile composta da;;1 cassa - kg 365 - dimensioni cm 210x145x150;1 cassa - kg 285 - dimensioni cm 290x170x115;1 cassa - kg 330 - dimensioni cm 300x180x115;;;fatemi avere costi considerando :;;- preavviso di consegna al destinatario;- sponda idraulica per la consegna a destino;;; e ;angela;;[logo firma1];;gava ifc spa;"""],
    ["""ale;; ;;2 plts/kg 420;;cm 100x175x175/cad;; ;; quotami da cernusco sul naviglio (mi) su hamad;; ;;;;"""],
    ["""export LCL Uruguay/Montevideo", "Ciao Lara, ;  ; mi puoi dare la quotazione compreso ritiro delle merci al deposito Tuscanlogistics/Montale (PT) ; merce pronta ; prego indicare le partenze navi disponibili ;  ;  POD: MONTEVIDEO / URUGUAY ; ; Quantità merce: 40 scatole di cartone in 7 pallets ; PLT 1) cm. 120 x 80 x 190 >>> kg. 224,00 ; PLT 2) cm. 120 x 80 x 190 >>> kg. 212,00 ; PLT 3) cm. 120 x 80 x 150 >>> kg. 129,00 ; PLT 4) cm. 120 x 80 x 170 >>> kg. 163,00 ; PLT 5) cm. 120 x 80 x 160 >>> kg. 233,00 ; PLT 6) cm. 120 x 80 x 160 >>> kg. 180,00 ; PLT 7) cm. 120 x 80 x 170 >>> kg. 147,00 ;  ; pallets epal fumigati ; tipo di merce abbigliamento per donna ; unico ricevitore, resa CFR Montevideo: ;  ; Indirizzo di ritiro: ; TUSCANLOGISTICS SRL ; Via Enrico Mattei, 18 ; 51037 MONTALE (PT) ; TEL. 0573 959599 ; a disposizione per ogni eventuale informazione ; grazie per l'attenzione ; cordiali saluti ; Massimiliano Bardi"""]
]



model_options = ["sxandie/llama_3_8b_4bitQ","DataIntelligenceTeam/NER-Phi-3-mini-4k-instruct"]
#,"DataIntelligenceTeam/NER-gemma-7b-bnb-4bit","DataIntelligenceTeam/llama-3-8b-Instruct-bnb-4bit","DataIntelligenceTeam/mistral-7b-instruct-v0.2-bnb-4bit"]
inputs = [
    gr.inputs.Textbox(label="Input Text"),
    gr.inputs.Dropdown(label="Model", choices=model_options, default=model_options[1])
]

outputs = [
    gr.outputs.Textbox(label="Original Output Text"),
    gr.outputs.Textbox(label="Formatted JSON")
]

# Create Gradio interface
iface = gr.Interface(fn=generate_output, 
                     inputs=inputs, 
                     outputs= outputs,
                     examples=examples,
                     title="Email Information Extraction", 
                     description="Extract key information from the provided email.")
iface.launch()